前面讲述了Dubbo 与Spring,Dubbo与SpringBoot 的直连环境的集成演示,今天我们讲述如与注册中心进行集成
与zookeeper集成,其实很简单,我们只需要简单的几步就可以完成,现在我们需要先将我们需要的zookeeper准备好
1)下载zookeeper就不具体演示了,大家可以去官网下载,下载下来是一个压缩包,我们解压即可。
解压之后,我们需要找到我们项目的conf文件,然后找到【zoo_sample.cfg】,重新命名为【zoo.cfg】;我们这里只是简单的演示注册中心的功能,所以配置基本不需要任何改动,一切使用默认即可
然后找到我们的【bin】目录,window操作系统双击【zkServer.cmd】即可启动;linux操作系统运行【zkServer.sh】文件,启动之后效果:
默认端口2181
接下来我们分别演示spring+dubbo环境的修改和springboot+dubbo环境的修改
2)修改我们之前的项目 (spring+dubbo),关于项目的创建请看【Dubbo 之 Spring 直连提供者的使用】;
首先修改我们的provider端:
修改配置文件:
<!--应用名称-->
<dubbo:application name="dubbo-provider" />
<!--dubbo协议暴露在20880端口-->
<dubbo:protocol name="dubbo" port="20880" />
<!--使用zookeeper注册中心-->
<dubbo:registry address="zookeeper://localhost:2181"/>
<!--spring中配置bean-->
<bean id="serviceImpl" class="com.lf.dubbo.impl.ServiceAPIImpl"></bean>
<!--声明需要暴露的服务接口-->
<dubbo:service interface="com.lf.dubbo.ServiceAPI"
ref="serviceImpl" />
<!--下面是使用直连环境的配置,方便与注册中心的方式做个对比-->
<!--<!–应用名称–>
<dubbo:application name="dubbo-provider" />
<!–dubbo协议暴露在20880端口–>
<dubbo:protocol name="dubbo" port="20880" />
<!–spring中配置bean–>
<bean id="serviceImpl" class="com.lf.dubbo.impl.ServiceAPIImpl"></bean>
<dubbo:service registry="N/A"
interface="com.lf.dubbo.ServiceAPI"
ref="serviceImpl" />-->
主要是添加了注册中心的配置【<dubbo:registry address="zookeeper://localhost:2181"/>】
然后修改我们的consumer端
修改配置文件:
<!--使用zookeeper注册中心-->
<dubbo:registry address="zookeeper://localhost:2181"/>
<!--应用名称-->
<dubbo:application name="dubbo-consumer" />
<!--声明需要暴露的服务接口-->
<dubbo:reference id="consumerService"
interface="com.lf.dubbo.ServiceAPI"/>
<!--下面是使用直连环境的配置,方便与注册中心的方式做个对比-->
<!--<!–应用名称–>
<dubbo:application name="dubbo-consumer" />
<!–声明需要暴露的服务接口–>
<dubbo:reference id="consumerService"
interface="com.lf.dubbo.ServiceAPI"
url="dubbo://localhost:20880" />-->
两端修改完毕之后,重启,然后看我们的zookeeper,已经成功注册进来;
控制台输入【大家好】,调用成功,配置完成
3)修改我们之前的项目 (springboot+dubbo),关于项目的创建请看【Dubbo 之 SpringBoot 直连提供者的使用】;
依然第一步修改我们的provider端
这里需要我们引入相关的依赖,因为spring环境所有jar早已准备好,所以省略了这一步;
引入【zkclient】
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
修改配置文件:
#注册中心模式
spring.application.name=dubbo-spring-boot-starter
spring.dubbo.server=true
spring.dubbo.registry=zookeeper://localhost:2081
#直连模式配置
#spring.application.name=dubbo-spring-boot-starter
#spring.dubbo.server=true
#spring.dubbo.registry=N/A
完毕
然后修改我们的consumer端
同样映入依赖:
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
修改配置文件:
spring.application.name=dubbo-spring-boot-consumer-starter
#注册中心模式
spring.dubbo.registry=zookeeper://localhost:2081
修改我们的【ConsumerImpl】类
@Component
public class ConsumerImpl {
/**
* 直连环境时候的配置
* @Reference(url = "dubbo://localhost:20880")
*/
/**
* z注册中心模式的配置
*/
@Reference(interfaceClass = ServiceAPI.class)
ServiceAPI serviceAPI;
public String sendMessage(String msg){
return serviceAPI.getMessage(msg);
}
}
启动项目,看到控制台输出日志
项目配置成功