上次说到dubbo有阿里自己的后台管理工具,这里就介绍下阿里这个后台管理工具,dubbo-admin。源码:https://github.com/limingios/netFuture/tree/master/源码/『互联网架构』软件架构-掌握dubbo常规应用(下)(41)/dubbo-study

『互联网架构』软件架构-企业级dubbo应用(下)_zookeeper

(一)安装准备

这里我还用docker的方式来进行安装,手动来安装的话太麻烦了,直接看官网也有。没有什么技术含量,通过docker的方式更爽。

  • 设置dns
vi /etc/resolv.conf 
#修改成:nameserver 8.8.8.8

『互联网架构』软件架构-企业级dubbo应用(下)_docker_02

  • 添加docker加速器
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

service docker restart 

『互联网架构』软件架构-企业级dubbo应用(下)_ide_03

  • zookeeper的安装容器
docker pull zookeeper
docker run --privileged=true -d --name zookeeper --publish 2181:2181  -d zookeeper:latest

『互联网架构』软件架构-企业级dubbo应用(下)_zookeeper_04

『互联网架构』软件架构-企业级dubbo应用(下)_docker_05

  • 启动java项目 provider 和 cosumber

『互联网架构』软件架构-企业级dubbo应用(下)_docker_06

『互联网架构』软件架构-企业级dubbo应用(下)_zookeeper_07

(二)安装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应用(下)_其他_08

  • dubbo-admin容器

运行成功后,稍等一下,访问ip:port即可。
默认账号密码是

  • 管理员:root:root
  • 游客:guest:guest

『互联网架构』软件架构-企业级dubbo应用(下)_zookeeper_09

『互联网架构』软件架构-企业级dubbo应用(下)_其他_10

『互联网架构』软件架构-企业级dubbo应用(下)_其他_11

(三)dubbu-admin介绍

  • 服务
    『互联网架构』软件架构-企业级dubbo应用(下)_ide_12

  • 具体的服务信息

所有的信息都是基于这个url,进行的展示的,url可以看到前面部分包含调用的协议,调用的ip,端口,通过后面部分定位到具体的服务,接口的基本信息,属于什么应用,重试的次数,线程池,不管用任何的注册中心,都是基于这个url对提供者进行描述的。

『互联网架构』软件架构-企业级dubbo应用(下)_其他_13

  • 动态的控制权限

『互联网架构』软件架构-企业级dubbo应用(下)_ide_14

  • 负载均衡

点击新增,可以进行选择方法进行控制,这个作用比较大。

『互联网架构』软件架构-企业级dubbo应用(下)_docker_15

『互联网架构』软件架构-企业级dubbo应用(下)_其他_16

其实dubbo-admin的管理工具的内核就是url里面的参数,修改的话就是修改redis或者zookeeper里面有个config的值。客户端consumer拿的时候就将url的值和config的值进行一下合并。不是直接改里面的值,provider里面的值会动态刷新的,改了直接就直接刷新掉了,dubbo-admin改也是白改,肯定是合并。

(四)dubbo支持的注册中心

  • Redis
    1.采用K/V 形式进行存储
    2.并基于 Redis 的 Publish/Subscribe 事件通知数据变更

订阅模型

『互联网架构』软件架构-企业级dubbo应用(下)_其他_17

推送变更

『互联网架构』软件架构-企业级dubbo应用(下)_docker_18

调用过程

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 服务的注册中心,工业强度较高,可用于生产环境,并推荐使用。

『互联网架构』软件架构-企业级dubbo应用(下)_ide_19

流程说明

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

『互联网架构』软件架构-企业级dubbo应用(下)_ide_20

  • Simple

此SimpleRegistryService只是简单实现,不支持集群,可作为自定义注册中心的参考,但不适合直接用于生产环境。

(五)注意点配置

1.group

一定要用单个单词,不要使用 com.idig8 类似这种中间加点的。dubbo-admin无法查看

2.check=false

对于互相依赖的情况,一定要设置false,不让启动就报错了。这个意思就是检查依赖关系是否存在。

PS:这次主要说了dubbo-admin的功能,通过docker的方式进行安装,毕竟是自我学习,如果想生产中安装直接通过官网安装就可以了,自我学习安装应用优选docker。也说了下dubbo的注册中心,一共4种注册中心,比较常用的还是redis和zookeeper,建议就使用这两个,别使用其他的因为比较使用人数少,出现问题不容易解决。下次说说dubbo的底层原理。