分布式

分布式

什么是分布式系统?
在《分布式系统原理与泛型》中如下定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”

分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据

分布式系统是简历在网络之上的软件系统

Dubbo文档

随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对分布式服务架构以及流动计算架构势在必行,急需一个治理系统确保架构有条不紊的演进

在这里插入图片描述

RPC

什么是RPC?
是指远程过程调用,是一种进程间通信方式,他是一种技术的思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不是程序员显示编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同

在这里插入图片描述

RPC就是要想调用本地的函数一样去调用远程函数

两个核心模块:通讯和序列化
序列化:数据传输需要转换

Dubbo概念

什么是dubbo?
apache Dubbo是一款高性能、轻量级的开源java RPC框架,提供了三大核心能力:面向接口的远程方法调用,只能容错和负载均衡以及服务自动注册和发现
在这里插入图片描述
在这里插入图片描述

Zookeeper

官网:zookeeper官网

下载安装可以查考一下
https://blog.csdn.net/zlbdmm/article/details/109669049

在客户端测试:
先创建一个文件,并且得到这个值
在这里插入图片描述
安装dubbo-admin
在这里插入图片描述
3.在项目目录下打包dubbo-admin
mvn clean package -Dmaven.test.skip=true

4.执行dubbo-admin\target下的dubbo-admin-0.0.1-SNAPSHOT.jar
java -jar dubbo-admin-0.0.1-SNAPSHOT.jar

注意:同时打开zookeeper的服务,否则会报错

5.进入localhost:7001/,登录 默认是root /root

zookeeper:注册中心
dubbo-admin:是一个监控管理后台·查看我们注册了哪些服务,哪些服务被消费
dubbo:jar包

写一个买票程序

引入dubbo和zookeeper之后写必须要导入的依赖+

服务提供者

1、将服务提供者注册到注册中心,我们需要整合Dubbo和zookeeper,所以需要导包

我们从dubbo官网进入github,看下方的帮助文档,找到dubbo-springboot,找到依赖包

<!-- Dubbo Spring Boot Starter -->
<dependency>
   <groupId>org.apache.dubbo</groupId>
   <artifactId>dubbo-spring-boot-starter</artifactId>
   <version>2.7.3</version>
</dependency>    
zookeeper的包我们去maven仓库下载,zkclient;

<!-- https://mvnrepository.com/artifact/com.github.sgroschupf/zkclient -->
<dependency>
   <groupId>com.github.sgroschupf</groupId>
   <artifactId>zkclient</artifactId>
   <version>0.1</version>
</dependency>
【新版的坑】zookeeper及其依赖包,解决日志冲突,还需要剔除日志依赖;

<!-- 引入zookeeper -->
<dependency>
   <groupId>org.apache.curator</groupId>
   <artifactId>curator-framework</artifactId>
   <version>2.12.0</version>
</dependency>
<dependency>
   <groupId>org.apache.curator</groupId>
   <artifactId>curator-recipes</artifactId>
   <version>2.12.0</version>
</dependency>
<dependency>
   <groupId>org.apache.zookeeper</groupId>
   <artifactId>zookeeper</artifactId>
   <version>3.4.14</version>
   <!--排除这个slf4j-log4j12-->
   <exclusions>
       <exclusion>
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-log4j12</artifactId>
       </exclusion>
   </exclusions>
</dependency>

步骤:
1.提供者提供服务
1.导入依赖
2.配置注册中心的地址,以及服务发现名,和要扫描的额包
3.在想要被注册的服务上~增加一个注解@Service
2.消费者如何消费
1。导入依赖
2。配置注册中心的地址,配置自己的服务名
3.从远程注入服务~@DubboReference

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值