Skip to content

Commit 7825aa7

Browse files
chakra-coderningyu1
authored andcommitted
support nacos registry (#91)
1 parent 5fbadb6 commit 7825aa7

File tree

5 files changed

+47
-14
lines changed

5 files changed

+47
-14
lines changed

pom.xml

+20-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<groupId>io.github.ningyu</groupId>
2121
<artifactId>jmeter-plugins-dubbo</artifactId>
2222
<version>${revision}</version>
23-
23+
2424
<properties>
2525
<revision>2.7.3</revision>
2626
<java.version>1.8</java.version>
@@ -32,6 +32,7 @@
3232
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
3333

3434
<dubbo.version>${revision}</dubbo.version>
35+
<nacos.version>1.1.3</nacos.version>
3536
<!--<dubbo.version>2.7.2</dubbo.version>-->
3637
<jorphan.version>3.0</jorphan.version>
3738
<avalon.framework.version>4.1.4</avalon.framework.version>
@@ -101,6 +102,22 @@
101102
<groupId>de.ruedigermoeller</groupId>
102103
<artifactId>fst</artifactId>
103104
</dependency>
105+
<!-- nacos -->
106+
<dependency>
107+
<groupId>org.apache.dubbo</groupId>
108+
<artifactId>dubbo-registry-nacos</artifactId>
109+
<version>${dubbo.version}</version>
110+
</dependency>
111+
<dependency>
112+
<groupId>com.alibaba.nacos</groupId>
113+
<artifactId>nacos-api</artifactId>
114+
<version>${nacos.version}</version>
115+
</dependency>
116+
<dependency>
117+
<groupId>com.alibaba.nacos</groupId>
118+
<artifactId>nacos-client</artifactId>
119+
<version>${nacos.version}</version>
120+
</dependency>
104121
<!-- slf4j -->
105122
<dependency>
106123
<groupId>org.slf4j</groupId>
@@ -166,7 +183,7 @@
166183
</plugin>
167184
</plugins>
168185
</build>
169-
186+
170187
<developers>
171188
<developer>
172189
<name>ningyu</name>
@@ -175,4 +192,4 @@
175192
</developer>
176193
</developers>
177194
<url></url>
178-
</project>
195+
</project>

src/main/java/io/github/ningyu/jmeter/plugin/dubbo/gui/DubboCommonPanel.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public JPanel drawRegistrySettingsPanel() {
8080
//Protocol
8181
JPanel ph = new HorizontalPanel();
8282
JLabel protocolLable = new JLabel("Protocol:", SwingConstants.RIGHT);
83-
registryProtocolText = new JComboBox<String>(new String[]{"","none", "zookeeper", "multicast", "redis", "simple"});
83+
registryProtocolText = new JComboBox<String>(new String[]{"","none", "zookeeper", "nacos", "multicast", "redis", "simple"});
8484
registryProtocolText.setToolTipText("\"none\" is direct connection");
8585
protocolLable.setLabelFor(registryProtocolText);
8686
ph.add(protocolLable);

src/main/java/io/github/ningyu/jmeter/plugin/dubbo/sample/DubboSample.java

+12-4
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@
4545
* DubboSample
4646
*/
4747
public class DubboSample extends AbstractSampler implements Interruptible {
48-
48+
4949
private static final Logger log = LoggingManager.getLoggerForClass();
5050
private static final long serialVersionUID = -6794913295411458705L;
51-
51+
5252

5353
public static ApplicationConfig application = new ApplicationConfig("DubboSample");
5454

@@ -94,7 +94,7 @@ private String getSampleData() {
9494
sb.append("Attachment Args: ").append(Constants.getAttachmentArgs(this).toString());
9595
return sb.toString();
9696
}
97-
97+
9898
@SuppressWarnings({"unchecked", "rawtypes"})
9999
private Object callDubbo(SampleResult res) {
100100
// This instance is heavy, encapsulating the connection to the registry and the connection to the provider,
@@ -124,6 +124,14 @@ private Object callDubbo(SampleResult res) {
124124
reference.setRegistry(registry);
125125
reference.setProtocol(rpcProtocol);
126126
break;
127+
case Constants.REGISTRY_NACOS:
128+
registry = new RegistryConfig();
129+
registry.setProtocol(Constants.REGISTRY_NACOS);
130+
registry.setGroup(registryGroup);
131+
registry.setAddress(address);
132+
reference.setRegistry(registry);
133+
reference.setProtocol(rpcProtocol);
134+
break;
127135
case Constants.REGISTRY_MULTICAST:
128136
registry = new RegistryConfig();
129137
registry.setProtocol(Constants.REGISTRY_MULTICAST);
@@ -249,7 +257,7 @@ private Object callDubbo(SampleResult res) {
249257
res.setSuccessful(false);
250258
return ErrorCode.MISS_METHOD.getMessage();
251259
}
252-
260+
253261
// The registry's address is to generate the ReferenceConfigCache key
254262
ReferenceConfigCache cache = ReferenceConfigCache.getCache(Constants.getAddress(this), new ReferenceConfigCache.KeyGenerator() {
255263
@Override

src/main/java/io/github/ningyu/jmeter/plugin/dubbo/sample/ProviderService.java

+9-2
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,12 @@ public Map<String, URL> findByService(String serviceName) {
5959
}
6060

6161
public List<String> getProviders(String protocol, String address, String group) throws RuntimeException {
62-
if (protocol.equals("zookeeper") || protocol.equals("redis")){
62+
if (protocol.equals("zookeeper") || protocol.equals("nacos") || protocol.equals("redis")){
6363
return executeRegistry(protocol, address, group);
6464
// } else if (protocol.equals("none")) {
6565
// return executeTelnet();
6666
} else {
67-
throw new RuntimeException("Registry Protocol please use zookeeper or redis!");
67+
throw new RuntimeException("Registry Protocol please use zookeeper or nacos or redis!");
6868
}
6969
}
7070

@@ -85,6 +85,13 @@ private List<String> executeRegistry(String protocol, String address, String gro
8585
registry.setAddress(address);
8686
reference.setRegistry(registry);
8787
break;
88+
case Constants.REGISTRY_NACOS:
89+
registry = new RegistryConfig();
90+
registry.setProtocol(Constants.REGISTRY_NACOS);
91+
registry.setGroup(group);
92+
registry.setAddress(address);
93+
reference.setRegistry(registry);
94+
break;
8895
case Constants.REGISTRY_REDIS:
8996
registry = new RegistryConfig();
9097
registry.setProtocol(Constants.REGISTRY_REDIS);

src/main/java/io/github/ningyu/jmeter/plugin/util/Constants.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,15 @@
2828
* Constants
2929
*/
3030
public class Constants {
31-
31+
3232
//Registry Protocol
3333
public static final String REGISTRY_NONE = "none";
3434
public static final String REGISTRY_ZOOKEEPER = "zookeeper";
35+
public static final String REGISTRY_NACOS = "nacos";
3536
public static final String REGISTRY_MULTICAST = "multicast";
3637
public static final String REGISTRY_REDIS = "redis";
3738
public static final String REGISTRY_SIMPLE = "simple";
38-
39+
3940
//RPC Protocol
4041
public static final String RPC_PROTOCOL_DUBBO = "dubbo";
4142
public static final String RPC_PROTOCOL_RMI = "rmi";
@@ -45,10 +46,10 @@ public class Constants {
4546
public static final String RPC_PROTOCOL_THRIFT = "thrift";
4647
public static final String RPC_PROTOCOL_MEMCACHED = "memcached";
4748
public static final String RPC_PROTOCOL_REDIS = "redis";
48-
49+
4950
public static final String ASYNC = "async";
5051
public static final String SYMBOL = "://";
51-
52+
5253
public static final int INT_DEFAULT = 0;
5354
public static final double DOUBLE_DEFAULT = 0.0d;
5455
public static final boolean BOOLEAN_DEFAULT = false;

0 commit comments

Comments
 (0)