>上次说到
dubbo有阿里自己的
后台管理工具,这里就介绍下阿里这个
后台管理工具,
dubbo-admin。源码:https://github.com/limingios/netFuture/tree/master/源码/『互联网架构』软件架构-掌握
dubbo常规应用(下)(41)/
dubbo-study
![](https://upload-images.jianshu.io/upload_images/11223715-2a9e67918f60b6f1.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### (一)安装准备
>这里我还用docker的方式来进行安装,手动来安装的话太麻烦了,直接看官网也有。没有什么技术含量,通过docker的方式更爽。
* 设置dns
``` bash
vi /etc/resolv.conf
#
修改成:nameserver 8.8.8.8
```
![](https://upload-images.jianshu.io/upload_images/11223715-93bf205f46e09157.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
*
添加docker加速器
``` bash
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
service docker restart
```
![](https://upload-images.jianshu.io/upload_images/11223715-b228b55488a93c40.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
* zookeeper的安装容器
``` bash
docker pull zookeeper
docker run --privileged=true -d --name zookeeper --publish 2181:2181 -d zookeeper:latest
```
![](https://upload-images.jianshu.io/upload_images/11223715-4a9abf3c96777f84.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://upload-images.jianshu.io/upload_images/11223715-d2ff2a644dfafefa.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
* 启动java项目 provider 和 cosumber
![](https://upload-images.jianshu.io/upload_images/11223715-89d3b64df414b2cd.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://upload-images.jianshu.io/upload_images/11223715-eb0555c367cd8f7f.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### (二)安装
dubbo admin
> zookeeper已经安装好了,直接通过命令的方式安装
dubbo-admin
*
dubbo-admin容器
``` bash
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
```
![](https://upload-images.jianshu.io/upload_images/11223715-edb25525a8e504e4.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
*
dubbo-admin容器
>运行成功后,稍等一下,访问ip:port即可。
>
默认账号密码是
>-
管理员:root:root
>- 游客:guest:guest
![](https://upload-images.jianshu.io/upload_images/11223715-78809625d64684c0.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://upload-images.jianshu.io/upload_images/11223715-dd509e40e6435762.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://upload-images.jianshu.io/upload_images/11223715-ad5154f5ccb6642c.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### (三)
dubbu-admin介绍
* 服务
![](https://upload-images.jianshu.io/upload_images/11223715-d8221681b6c2d657.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
* 具体的服务信息
>所有的信息都是基于这个url,进行的展示的,url可以看到前面部分包含
调用的协议,
调用的ip,端口,通过后面部分定位到具体的服务,接口的基本信息,属于什么应用,重试的
次数,线程池,不管用任何的
注册中心,都是基于这个url对提供者进行描述的。
![](https://upload-images.jianshu.io/upload_images/11223715-37bf36c31d387109.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
* 动态的控制权限
![](https://upload-images.jianshu.io/upload_images/11223715-78a6978d9ed1536c.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
*
负载均衡
>点击新增,可以进行选择
方法进行控制,这个作用比较大。
![](https://upload-images.jianshu.io/upload_images/11223715-5a8b60a853edcd54.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://upload-images.jianshu.io/upload_images/11223715-1ccb8c4f3edba214.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
>其实
dubbo-admin的管理工具的内核就是url里面的参数,
修改的话就是
修改re
dis或者zookeeper里面有个con
fig的值。客户端consumer拿的时候就将url的值和con
fig的值进行一下合并。不是直接改里面的值,provider里面的值会动态刷新的,改了直接就直接刷新掉了,
dubbo-admin改也是白改,肯定是合并。
#### (四)
dubbo
支持的
注册中心
* Re
dis
1.采用K/V 形式进行存储
2.并基于 Re
dis 的 Publish/Subscribe 事件
通知数据变更
>
订阅模型
![](https://upload-images.jianshu.io/upload_images/11223715-b1b9d806242a8e6b.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
>推送变更
![](https://upload-images.jianshu.io/upload_images/11223715-f6cdcc2c87dd8764.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
>
调用过程
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 服务的
注册中心,工业强度较高,可用于生产环境,并推荐使用。
![](https://upload-images.jianshu.io/upload_images/11223715-a63a526e16ac8068.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
>流程说明
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
![](https://upload-images.jianshu.io/upload_images/11223715-058f3db77ce54751.png?image
mogr2/auto-orient/strip%7CimageView2/2/w/1240)
* Simple
>此SimpleRegistryService只是简单实现,
不支持集群,可作为
自定义注册中心的参考,但不适合直接用于生产环境。
#### (五)注意点配置
1.group
>一定要用单个单词,不要使用 com.idig8 类似这种中间加点的。
dubbo-admin无法查看
2.check=false
>对于互相依赖的情况,一定要设置false,不让启动就报错了。这个意思就是检查依赖关系是否存在。
PS:这次主要说了
dubbo-admin的
功能,通过docker的方式进行安装,毕竟是自我学习,如果想生产中安装直接通过官网安装就可以了,自我学习安装应用优选docker。也说了下
dubbo的
注册中心,一共4种
注册中心,比较常用的还是re
dis和zookeeper,建议就使用这两个,别使用其他的因为比较使用人数少,出现问题不容易
解决。下次说说
dubbo的底层原理。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。