【SpringBoot】最通俗易懂的分布式学习(一)SpringBoot整合dubbo、zookeeper

注:本文章基于尚硅谷Springboot高级特性相关视频及资料进行编写,代码简单,较容易理解,若有问题或者源码资料获取可以在评论区留言或者联系作者!



导引

分布式应用:在分布式系统中,国内常用zookeeper+dubbo的组合,而SpringBoot推荐使用全栈的Spring,SpringBoot+Spring Cloud。

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,他是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护,域名服务,分布式同步,组服务等等

Dubbo是Alibaba开源的分布式服务框架,即可以作为ZooKeeper的服务框架,最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合。

一、doker安装Zookeeper

(1)linux系统使用doker安装Zookeper镜像:
docker pull registry.docker-cn.com/library/zookeeper
在这里插入图片描述

(2)使用docker run --name zk01 -p 2181:2181--restart always -d {zookeeper的镜像id} 命令启动zookeeper
在这里插入图片描述

(3)使用doker ps命令查看zookeeper是否正常运行
在这里插入图片描述


二、SpringBoot、Dubbo、Zookeeper整合

将服务提供者注册到注册中心(配置提供者)
(1)创建SpringBoot工程,加入Web依赖
(2)创建一个TickService的接口类。并定义一个返回票数的方法;

public interface TickService(){
public String getTicket();
}

(2)编写上面接口的实现方法TicketServiceImpl implements TicketService()

@Compnent
@Service  //注意这里是dubbo的service注解,将此服务发布出去
public class TicketServiceImpl implements TicketService(){
return "《厉害了,我的国》";

(3)再创建一个工程,选择Web模块作为消费者:
在这里插入图片描述
(5)创建一个UserService
(6)引入springboot的dubbo依赖,和zookeeper的客户端工具;

 <!-- 引入dubbo依赖 -->
  <!-- https://mvnrepository.com/artifact/com.alibaba/dubbo -->
  <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>dubbo</artifactId>
      <version>2.6.2</version>
  </dependency>

<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency> 

(7)配置application.propertoces中的一些相关属性;

dubbo.application.name=provider-ticket  //当前项目的名字
dubbo.registry.address=zookeeper://{zookeeper服务的地址}:2181
dubbo.scan.base.package=com.atguigu.ticket.service //发布服务的地址

配置服务消费者
(8).在消费者项目中引入和提供者一样的依赖(同上)
(9)配置消费者配置文件:

dubbo.application.name=comsumer-user //当前项目的名字
dubbo.registry.address=zookeeper://{zookeeper服务的地址}:2181

(9)在消费者项目中引入提供者项目的TicketService文件;
在这里插入图片描述
(10)在UserServise文件中使用@Reference注解进行TickService方法注入;

@Service
public class UserSevice{
@Reference
TicketService ticketService;

public void hello(){
String ticket =ticketService.getTicket();
system.out.println();
}
}

(11)在测试文件中进行测试

public class ConsumerUserApplicationTests{
@Autowired
UserService userService;

@Test
public void contextLoads(){
userService.hello();
}
}

(12)在提供者运行的情况下,运行消费者测试文件,运行结果如下所示
在这里插入图片描述


总结:

这节学习了SpringBoot的分布式架构,了解了分布式架构的一些原理,并了解了SpringBoot如何整合Dubbo和zookeeper,下一节将学习分布式的另一种方式SpringBoot整合Spring Cloud;


如果感觉内容写的还不错的话,一键三连不迷路!!!!
后面将会更新更多学习内容,一起学习吧!!!!!!
在这里插入图片描述

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PoJo123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值