上次说到dubbo有阿里自己的后台管理工具,这里就介绍下阿里这个后台管理工具,dubbo-admin。源码:https://github.com/limingios/netFuture/tree/master/源码/『互联网架构』软件架构-掌握dubbo常规应用(下)(41)/dubbo-study
(一)安装准备
这里我还用docker的方式来进行安装,手动来安装的话太麻烦了,直接看官网也有。没有什么技术含量,通过docker的方式更爽。
- 设置dns
vi /etc/resolv.conf
#修改成:nameserver 8.8.8.8
- 添加docker加速器
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
service docker restart
- zookeeper的安装容器
docker pull zookeeper
docker run --privileged=true -d --name zookeeper --publish 2181:2181 -d zookeeper:latest
- 启动java项目 provider 和 cosumber
(二)安装dubbo admin
zookeeper已经安装好了,直接通过命令的方式安装dubbo-admin
- dubbo-admin容器
docker run -d \
-p 8080:8080 \
-e dubbo.registry.address=zookeeper://192.168.70.100:2181 \
-e dubbo.admin.root.password=root \
-e dubbo.admin.guest.password=guest \
chenchuxin/dubbo-admin
- dubbo-admin容器
运行成功后,稍等一下,访问ip:port即可。
默认账号密码是
- 管理员:root:root
- 游客:guest:guest
(三)dubbu-admin介绍
-
服务
-
具体的服务信息
所有的信息都是基于这个url,进行的展示的,url可以看到前面部分包含调用的协议,调用的ip,端口,通过后面部分定位到具体的服务,接口的基本信息,属于什么应用,重试的次数,线程池,不管用任何的注册中心,都是基于这个url对提供者进行描述的。
- 动态的控制权限
- 负载均衡
点击新增,可以进行选择方法进行控制,这个作用比较大。
其实dubbo-admin的管理工具的内核就是url里面的参数,修改的话就是修改redis或者zookeeper里面有个config的值。客户端consumer拿的时候就将url的值和config的值进行一下合并。不是直接改里面的值,provider里面的值会动态刷新的,改了直接就直接刷新掉了,dubbo-admin改也是白改,肯定是合并。
(四)dubbo支持的注册中心
- Redis
1.采用K/V 形式进行存储
2.并基于 Redis 的 Publish/Subscribe 事件通知数据变更
订阅模型
推送变更
调用过程
1.服务提供方启动时,向 Key:/dubbo/XXXServer/providers 下,添加当前提供者的地址。
2.并向 Channel:/dubbo/com.idig8.BarService/providers 发送 register 事件。
3.服务消费方启动时,从 Channel:/dubbo/com.idig8.UserService/providers 订阅 register 和 unregister 事件。
4.并向 Key:/dubbo/com.idig8.UserService/providers 下,添加当前消费者的地址。
5.服务消费方收到 register 和 unregister 事件后,从 Key:/dubbo/com.idig8.UserService/providers 下获取提供者地址列表。
- Zookeper
是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,并推荐使用。
流程说明
1.服务提供者启动时: 向 /dubbo/com.foo.BarService/providers 目录下写入自己的 URL 地址。
2.服务消费者启动时: 订阅 /dubbo/com.foo.BarService/providers 目录下的提供者 URL 地址。并向 /dubbo/com.foo.BarService/consumers 目录下写入自己的 URL 地址
3.监控中心启动时: 订阅 /dubbo/com.foo.BarService 目录下的所有提供者和消费者 URL 地址。
- Multicast
不需要启动任何中心节点,只要广播地址一样,就可以互相发现。组播受网络结构限制,只适合小规模应用或开发阶段使用。
组播地址段: 224.0.0.0 - 239.255.255.255
- Simple
此SimpleRegistryService只是简单实现,不支持集群,可作为自定义注册中心的参考,但不适合直接用于生产环境。
(五)注意点配置
1.group
一定要用单个单词,不要使用 com.idig8 类似这种中间加点的。dubbo-admin无法查看
2.check=false
对于互相依赖的情况,一定要设置false,不让启动就报错了。这个意思就是检查依赖关系是否存在。
PS:这次主要说了dubbo-admin的功能,通过docker的方式进行安装,毕竟是自我学习,如果想生产中安装直接通过官网安装就可以了,自我学习安装应用优选docker。也说了下dubbo的注册中心,一共4种注册中心,比较常用的还是redis和zookeeper,建议就使用这两个,别使用其他的因为比较使用人数少,出现问题不容易解决。下次说说dubbo的底层原理。