SpringBoot整合Dubbo+zookeeper初体验

	随着微服务日趋流行,相信越来越多的公司开始使用微服务架构。下面我使用zookeeper作为注册中心,初步使用Dubbo完成系统之间服务的调用。

1.安装zookeeper,并启动。推荐使用docker安装,统一管理镜像,具体方法可自行查阅。

2.创建一个SpringBoot 项目provider-ticket, 添加依赖

		<dependency>
			<groupId>com.alibaba.boot</groupId>
			<artifactId>dubbo-spring-boot-starter</artifactId>
			<version>0.1.0</version>
		</dependency>
		<dependency>
			<groupId>com.101tec</groupId>
			<artifactId>zkclient</artifactId>
			<version>0.11</version>
		</dependency>

创建一个接口和实现类,即我们需要提供给消费者使用的方法。

public interface TicketService {
    public String getTicket();
}


@EnableDubbo  //开启springboot Dubbo自动装配
@Component  // 这个类作为组件注册到Spring容器管理
@Service //这里的service为com.alibaba.dubbo.config.annotation.Service;意思就是将这方法作为dubbo的服务
public class TicketServiceImpl implements TicketService {
    @Override
    public String getTicket() {

        return "我来了-";
    }
}

在application.properties 中添加配置文件,主要是将服务注册到zookeeper上

dubbo.application.name=provider-ticket
dubbo.registry.address=zookeeper://172.17.19.145:2181
//扫描的接口
dubbo.scan.base-packages=com.example.TicketService

至此,我们的生产端已经写好,接下来我们需要编写消费端的代码。

再创建一个SpringBoot项目,consumer-user .添加zk和Dubbo的依赖,和上面一样。
在application.properties 中添加配置文件,主要是将服务注册到zookeeper上

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

server.port=8082

创建一个接口,包名类名和provider-ticket中的TicketService 相同,这里主要是为了使用方便,项目中一般会将生产者打成jar包来使用。

public interface TicketService {
    public String getTicket();
}

最后一步,使用生产者提供的方法。


@Service
public class UserService {
    @Reference  //这里是dubbo的注解,目的在于表明使用的是服务端的TicketService 服务
    TicketService ticketService;

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

ok,到这里我们的服务端和消费端代码都编写完成。我们可以开始测试了,编写一个测试类

@RunWith(SpringRunner.class)
@SpringBootTest
public class ConsumerUserApplicationTests {
	@Autowired
	UserService userService;
	@Test
	public void contextLoads() {
		userService.hello();
	}

}

看到我们的输出效果

买到票了--我来了-   

达到预期的效果,至此我们使用SpringBoot 整合Dubbo+zookeeper 的方法全部完成,当然这只是个简单的demo,如果有什么问题留言或者私信,谢谢。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值