SpringBoot整合zookeeper和dubbo

1.分别创建服务提供者和消费者。引入dubbo和zookeeper客户端相关依赖。

        <!--引入SpringBoot-dubbo的依赖-->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.1.0</version>
        </dependency>

        <!--引入zookeeper客户端工具-->
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>

2.在服务提供者中创建Service和其实现类,并且在实现类中添加@Service注解将服务发布出去,注意这里需要引入的Service包为com.alibaba.dubbo.config.annotation包下面的。

@Component //加载到Spring容器中
@Service //将服务发布出去(注意引入的是com.alibaba.dubbo下的Service包)
public class TicketServiceImpl implements TicketService {

    @Override
    public String getTicket() {
        return "《西游记》";
    }
}

3.在application.properties中添加配置项。

#dubbo应用名称
dubbo.application.name=provider-ticket
#注册中心地址
dubbo.registry.address=zookeeper://47.107.185.209:2181
#扫描包文件
dubbo.scan.base-package=com.wunian.ticket.service

4.在消费者中的application.properties中添加配置项。

dubbo.application.name=consumer-user
dubbo.registry.address=zookeeper://47.107.185.209:2181

5.将服务提供者中的Service所在的包以及Service实现类拷贝到消费者项目中。
6.在service中使用@Reference注解调用zookeeper中已经注册的Service实例。

@Service  //这里使用的是Spring的Service
public class UserService {

    @Reference  //根据全类名去匹配配置中心发布的Service
    TicketService ticketService;

    public void hello(){
        String ticket=ticketService.getTicket();
        System.out.println("买到票了,"+ticket);
    }
}

7.在测试类中测试远程调用。

@Autowired
UserService userService;
@Test
public void testHello(){
  //测试消费者远程调用服务提供者服务方法
  userService.hello();
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容