Parcourir la Source

修改由于参数错误导致的bug,建议dubbo的端口、主机ip、注册方式均使用命令行参数方式。

weihf 7 ans auparavant
Parent
commit
3115e252f8

+ 4 - 2
ipu-service-demo/doc/注册配置.md

@ -1,15 +1,17 @@
1 1
dubbo服务注册支持zookeeper、redis、multicast、simple。需要在生产者(provider/服务端)和消费者(consumer/客户端)配置文件中采用相同的注册方式。配置方式类似,
2 2
配置语法为:
3
<dubbo:registry protocol="zookeeper/redis/multicast/dubbo" address="ip:port" client="zkclient/curator" username="root" password="1234">
3
1)<dubbo:registry protocol="zookeeper/redis/multicast/dubbo" address="ip:port" client="zkclient/curator" username="root" password="1234">
4 4
<dubbo:parameter key="unicast"value="false"/>
5 5
</dubbo:registry>
6 6

7
也可以在address里带上协议类型:
7

8
2)也可以在address里带上协议类型:
8 9
<dubbo:registry address="zookeeper://121.42.183.206:2181?client=curator" />
9 10
<dubbo:registry address="redis://121.42.183.206:11111" />
10 11
<dubbo:registry address="multicast://224.5.6.7:9999?unicast=false" />
11 12
<dubbo:registry address="127.0.0.1:20880" />
12 13

14
建议使用2),便于在命令行替换。
13 15
zookeeper还支持cluster,多个地址可以用英文逗号符号分隔.redis支持使用1主多从,但是配置到dubbo里时,provider/服务端应连接主redis,多个consumer/客户端可以分别连到从redis。
14 16

15 17
还支持自定义注册扩展,参见官方文档《http://dubbo.apache.org/books/dubbo-dev-book/impls/registry.html》

+ 15 - 4
ipu-service-demo/readme.md

@ -1,5 +1,5 @@
1
1。dubbo服务注册支持zookeeper、redis、multicast、single和jvm,本地开发调试可以推荐使用single,服务器部署推荐使用zookeeper。具体说明见doc/注册配置.md
2
2。对于大量重复查询,建议使用服务缓存。具体说明见doc/服务缓存.md
1
1。dubbo服务注册支持zookeeper、redis、multicast、single和jvm,本地开发调试可以推荐使用single,服务器部署推荐使用zookeeper。具体说明见doc/注册配置.md
2
2。对于大量重复查询,建议使用服务缓存。具体说明见doc/服务缓存.md
3 3
3。尽量不要复用用于暴露服务的接口.一个接口有不同实现时,建议分组:
4 4
provider/服务端:
5 5
<dubbo:service group="feedback" interface="com.xxx.IndexService" />
@ -9,5 +9,16 @@ consumer/客户端:
9 9
<dubbo:reference id="memberIndexService" group="member" interface="com.xxx.IndexService" />
10 10
4。本地做代码调试时,请在consumer/客户端的配置文件里配置合适的超时时间。配置方法:
11 11
<dubbo:consumer retries="0" timeout="20000"/>
12
5。由于dubbo取消了通过jvm参数方式设置dubbo服务接口,新增程序入参设置dubbo服务接口
13
-dubbo.protocal.port=8080
12
5。建议通过jvm参数方式设置dubbo服务接口:
13
-Ddubbo.protocol.port="20880"
14
6.建议通过jvm参数方式设置dubbo服务ip:
15
-Ddubbo.protocol.host="10.1.1.1"
16
7。建议通过jvm参数方式设置dubbo注册方式及地址:
17
方式2修改:
18
-Ddubbo.registry.address="multicast://224.5.6.7:9999"
19
方式1修改:
20
-Ddubbo.registry.protocol="multicast"
21
-Ddubbo.registry.address="224.5.6.7:9999"
22
。。。
23

24
方式1、方式2参见doc/《注册配置.md》

+ 0 - 25
ipu-service-demo/src/main/java/com/ai/ipu/service/DubboServiceStart.java

@ -1,12 +1,7 @@
1 1
package com.ai.ipu.service;
2 2

3
import java.util.Map;
4
import java.util.Map.Entry;
5

6 3
import org.springframework.context.support.ClassPathXmlApplicationContext;
7 4

8
import com.alibaba.dubbo.config.ProtocolConfig;
9

10 5
public class DubboServiceStart {
11 6
    public final static String MODE = "simple";
12 7
    public final static String DUBBO_PROVIDER_CONFIG = "dubbo-provider-" + MODE + ".xml";
@ -16,27 +11,7 @@ public class DubboServiceStart {
16 11
    public static void main(String[] args) throws Exception {
17 12
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
18 13
                new String[] {DUBBO_PROVIDER_CONFIG});
19
        for (String arg:args)
20
        {
21
        	if (arg.contains("-dubbo.protocal.port"))
22
        	{
23
        		String partPort = arg.trim().substring(arg.indexOf("-dubbo.protocal.port")+20);
24
        		int port = Integer.parseInt(partPort.substring(partPort.indexOf("=")+1).trim());
25
        		context = modifyBubboPort(context, port);
26
        	}
27
        }
28 14
        context.start();
29 15
        System.in.read(); // press any key to exit
30 16
    }
31
    
32
    private static ClassPathXmlApplicationContext modifyBubboPort(ClassPathXmlApplicationContext context, int newPort)
33
    {
34
    	Map<String, ProtocolConfig> beansOfType = context.getBeansOfType(ProtocolConfig.class);  
35
        for (Entry<String, ProtocolConfig> item : beansOfType.entrySet()) {  
36
        	System.out.println("##################properties file###########################"+item.getValue().getPort());  
37
            System.out.println("##################use sure###########################"+newPort);
38
            item.getValue().setPort(newPort);
39
        }
40
        return context;
41
    }
42 17
}