/**
- dubbo
- rpc:远程过程调用
- http:
- 优势:性能高, 稳定性, 门槛低
- 入门开发步骤:
- 1.搭建注册中心
- 2.搭建监控中心:前后的分离项目
-
前端 工程:dubbo-admin-ui nodejs +vuejs
-
npm install
-
npm start
-
访问 地址 :http://localhost:8081
-
后台服务:dubbo-admin-server.springboot工程
-
配置:需要配置zookeeper注册中心的地址
-
打包: mvn clean package -Dmaven.skip.test=ture
-
切换到target 目录启动 java-jar xxx.jar
- zookeeper
- 分布式协调服务
- 作用 统一命名服务 ,注册中心, 分布式锁
-
配置管理 , 配置中心
-
集群管理
- zookeeper安装,1. 解压
-
2,conf 下
-
3.bin目录下
-
4.进入客户端
-
集群 zoo.cfg:zk的端口号 (2182),
-
配置数据目录
-
zk服务列表 server.1=ip
-
data/myid:配置服务的编号
-
选主机制: 全新集群 启动顺序 34152
-
非全新集群,数据id, 每次执行写操作,数据id就递增1
-
数据id大的是新主
-
leadId: 服务的编号, 编号大大师新主
-
逻辑时钟 :每次选举逻辑时钟递增1
-
逻辑时钟小的选举会被忽略
-
zk集群的服务都是奇数台
-
zookeeper基本命令 help
-
查看子节点也可以查看当前节点的状态信息
-
创建节点 create /path"内容"
-
更新节点内容 set/path "内容"
-
删除节点 delete :删除没有子节点的
-
rmr/path:可以递归删除带子节点的节点
-
查看节点状态 stat/path
-
创建事务id,创建时间, 更新事务id,更新时间, 子节点版本号, 数据版本
-
子节点数量, 数据长度, 是否临时节点
-
查看节点内容及状态 get/path
-
Znode节点 zk本质 是一个小的文件系统, 树状结构
-
所有的节点都是/这个 根节点 的子节点
-
节点类型 永久节点 create/path
-
临时节点 create -e/path ,生命周期是当前客户端会话
-
永久序列化节点 create -s/path"内容" 当创建节点是,会在节点名称上 自动追加一个从0递增序列化号
-
临时序列化节点 create -e -s /path "内容"
-
zookeeper监听
-
客服端可以监听一个znode节点, 节点一旦发生变化, 监听的客户端就会异步监听到服务端的状态变化
-
注册监听 : ls , ls2 , get ,stat,链接
-
触发监听 : create , set delete, 链接状态的变化
-
特点:一次性监听, 异步监听, 监听当前节点或子节点
-
java 客户端
-
获取链接:zookeeper= new zookeeper (connection String , timeOut,new Watch )
-
关闭链接, zookeeper.close()
-
创建节点:create
-
删除节点:delete
-
查看子节点: getChildren 获取子节点
-
查看节点的内容,getData方法,
-
查看节点状态 exists
-
dubbo入门程序
-
依赖:
-
1.dubbo的springboot启动器
-
2.dubbo整合zookeeper 依赖
-
3.zookeeper 客服端
-
-
配置:
-
1dubbo.application.name=dubbo 的应用名
-
2.dubbo.registry.address=zookeeper://ip:port
-
3.dubbo.regitry.protocol=zookeeper
-
4.dubbo.protocal.name=dubbo 提供方
-
5 dubbo.protocol.port=20880 提供方
-
6.监控中心 dubbo.minitor.protocol=registry
-
注解
-
@EnableDubbo 在启动类上 添加该注解
-
@Service 服务提供方 service 的实现类上,通过该注解暴露service服务
-
@Reference 服务的消费方 ,通过该注解 注入提供方 的service服务
-
前提
-
1.搭建 zookeeper 注册中心
-
2.搭建好监控中心, 前段, 后端服务 node+vue(npm install,start )
-
后端 springboot服务 ,1.先获取application.properties的zookeeper地址
-
2. package:mvn clean package -Dmaven.skip.test=true;
-
3.切换到target目录,启动, java
-
注册中心:eureka nacos zookeeper
-
负载均衡组件 ribbon(默认就是 轮询算法)
-
熔断组件 :hystrix(有缺陷)
-
分布式 流控 组件: sentinel
-
服务调用组件:feign (RestTemplate, ribbon ,默认继承hystrix )
-
网关组件 :gateway (zuul网关)
-
配置中心组件:异变 的组件 nacos , config , Apollo(携程,功能稳定,性能成熟)
-
链路追踪组件 :sleuth
- 浏览发送一个请求
-
gateway 网关: 统一拦截, 身份认证, 权限验证, 服务路由, 负载均衡,限流...
-
服务路由,把不同的请求分发给不同的访问,
-
负载均衡 ,把很多相同的请求分发给相同服务 的不同服务器
-
feign(集成 ribbon, hystrix)
-
由于用户的请求具有不可预测性, 响应限流组件, sentinel
-
限流的参考:需要链路追踪组件 sleuth
-
一般情况下, 两个组件可以配合使用 ,
*Zookeeper本质是 一个分布式 的小文件存储系统, 提供类似于文件系统的目录树的数据存储, 并且可以对树中的节点 进行有效管理,
- 从而用来维护和监控你存储的数据状态变化 , 通过监控这些数据状态 的辩护啊, 从而可以达到基于数据的集群管理
*主要作用:统一命名服务:zk会生成类似于文件系统的树状结构, 可以生成不重复唯一名称, 列如注册中心, 分布式锁
- 配置管理
- 集群 管理 :维护当前集群中服务状态, 选出总管来管理集群