2、dubbo简单配置
示例:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<dubbo:application name="hello-world-app" />
<dubbo:registry address="multicast://224.5.6.7:1234" />
<dubbo:protocol name="dubbo" port="20880" />
<dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoServiceLocal" />
<dubbo:reference id="demoServiceRemote" interface="com.alibaba.dubbo.demo.DemoService" />
</beans>
自定义参数配置:
<dubbo:protocol name="jms">
<dubbo:parameter key="queue" value="your_queue" />
</dubbo:protocol>
XML配置
dubbo:protocol:协议配置,用于配置提供服务的协议,协议由提供方定义,dubbo、rmi
dubbo:service:服务配置,用于配置暴露的服务,一个服务可以指定多个协议,也可以指定多个服务注册中心。
dubbo:reference:引用配置,用于配置一个远程代理服务,可以指定多个服务注册中心。
dubbo:application:应用配置,用于配置应用信息,提供方和消费方都可以使用。
dubbo:module:模块配置,用于配置模块。
dubbo:registry:注册配置,用于配置连接注册中心。
dubbo:monitor:监控统计 ,用于配置连接监控中心相关信息。
dubbo:provider:提供方配置,用于配置ServcieConfig和ProtocolConfig的缺省值。
dubbo:consumer:消费方配置,用于配置ReferenceConfig的缺省值
dubbo:method:方法配置,可以指定方法级别的配置。
dubbo:argument:指定方法参数配置。
属性配置
加载方式:自动加载classpath:dubbo.properties
规则:标签名.属性名=xxx
示例:
dubbo.registry.address=multicast://224.0.0.1:1234–>
<dubbo:registry address=“multicast://224.0.0.1:1234”></dubbo:registry>
dubbo.protocol.rmi.port=1234–>
<dubbo:protocol id=“rmi” name=“rmi” port=“1234” />
参数优先级,从高到低
JVM(-Ddubbo.protocol.port=2181)–>dubbo.xml–>classpath:dubbo.properteis(可以通过JVM Ddubbo.properties.file设置配置路径)
API配置
提供者:设置ApplicationConfig、RegistryConfig、ProtocolConfig、ServiceConfig
//应用配置信息
ApplicationConfig applicationConfig = new ApplicationConfig();
applicationConfig.setName("provider");
//注册中心信息
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress("multicast://224.0.0.1:1234");
//注册中心不存在是否抛出异常
registryConfig.setCheck(true);
//服务提供者协议配置
ProtocolConfig protocolConfig = new ProtocolConfig();
//设置协议名称
protocolConfig.setName("dubbo");
protocolConfig.setPort(2181);
//方法配置设置
List<MethodConfig> methodConfigs = new ArrayList<MethodConfig>();
MethodConfig methodConfig = new MethodConfig();
methodConfig.setName("hello");
//执行时间
methodConfig.setTimeout(1000);
methodConfigs.add(methodConfig);
//服务提供者暴露服务配置
ServiceConfig<IHelloWorld> serviceConfig = new ServiceConfig<IHelloWorld>();
serviceConfig.setInterface(IHelloWorld.class);
serviceConfig.setRef(new HelloWorldImpl());
serviceConfig.setApplication(applicationConfig);
serviceConfig.setRegistry(registryConfig);
serviceConfig.setProtocol(protocolConfig);
serviceConfig.setMethods(methodConfigs);
//暴露及注册服务
serviceConfig.export();
消费者:ApplicationConfig、RegistryConfig、ReferenceConfig
//应用信息
ApplicationConfig applicationConfig = new ApplicationConfig();
applicationConfig.setName("consumer");
//连接注册中心配置
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress("multicast://224.0.0.1:1234");
registryConfig.setPort(2181);
//引用远程服务配置
ReferenceConfig<IHelloWorld> referenceConfig = new ReferenceConfig<IHelloWorld>();
referenceConfig.setApplication(applicationConfig);
referenceConfig.setRegistry(registryConfig);
referenceConfig.setInterface(IHelloWorld.class);
referenceConfig.setId("helloWorld");
IHelloWorld helloWorld = referenceConfig.get();
helloWorld.hello();
点对点直连
//这里设置的是服务提供方中协议配置的url,path默认是接口类的全名
referenceConfig.setUrl("dubbo://127.0.0.1:2181/com.dubbo.api.IHelloWorld");