SpringBoot整合zookeeper和dubbo

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

        
        
            com.alibaba.boot
            dubbo-spring-boot-starter
            0.1.0
        

        
        
            com.github.sgroschupf
            zkclient
            0.1
        

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();
}

你可能感兴趣的:(SpringBoot整合zookeeper和dubbo)