天天看点

SpringBoot整合Zookeepr+Dubbo实现服务注册和发现

关于​​Zookeeper和Dubbo​​的原理在此略,请参考链接。默认已在本地安装了Zookeeper

1)新建一个SpringBoot的项目,导入依赖

2)在yml配置dubbo相关信息

由于dubbo是用于远程调用的,故需配置服务注册中心的相关信息

3)新建User实体类

注意:若要在dubbo中传递对象,那么此对象必须进行序列化,否则会报错。

4)新建service类,用于业务逻辑的接口类

这里以模拟查询用户信息为例。

5)新建实现类,实现业务接口类

需要注意是的,这里用了两个@Service注解,但各自有作用。重要的是要引入dubbo的@service注解。只有使用此注解的类,才会被注册到zk中。因此需要使用远程调用的类再加上dubbo的@service注解即可,不需要远程调用的直接使用原来的@Service注解。

6)新建controller层,测试业务接口

这个controller的作用除了测试业务接口外,还可与服务消费者端的controller进行对比。

7)给启动类添加注解@EnableDubbo

SpringBoot整合Zookeepr+Dubbo实现服务注册和发现

这里只需要配置zk的地址和dubbo的应用名称。

3)新建service类

此类必须和服务提供者中添加dubbo的@Service注解的接口类一致,包名也要一致,要调用的方法也需保持一致。这些服务都会注册到zk中,dubbo通过名称去查找并调用。

5)新建controller层,测试服务接口

在注入服务时使用的是dubbo的@Reference注解,只有通过这个注解才能调用到服务。

5)给启动类添加注解@EnableDubbo

SpringBoot整合Zookeepr+Dubbo实现服务注册和发现

6)先启动zk服务,再启动服提供者,最后启动服务消费者,先访问http://localhost:8001/get,返回正确信息:

SpringBoot整合Zookeepr+Dubbo实现服务注册和发现

 调用http://localhost/test也会返回正确的信息,至此服务注册与调用已完成。