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

2021/6/14 18:22:22

本文主要是介绍『互联网架构』软件架构-企业级dubbo应用(下),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

>上次说到dubbo有阿里自己的后台管理工具,这里就介绍下阿里这个后台管理工具,dubbo-admin。源码:https://github.com/limingios/netFuture/tree/master/源码/『互联网架构』软件架构-掌握dubbo常规应用(下)(41)/dubbo-study ![](https://upload-images.jianshu.io/upload_images/11223715-2a9e67918f60b6f1.png?imageMogr2/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?imageMogr2/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?imageMogr2/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?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![](https://upload-images.jianshu.io/upload_images/11223715-d2ff2a644dfafefa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) * 启动java项目 provider 和 cosumber ![](https://upload-images.jianshu.io/upload_images/11223715-89d3b64df414b2cd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![](https://upload-images.jianshu.io/upload_images/11223715-eb0555c367cd8f7f.png?imageMogr2/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?imageMogr2/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?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![](https://upload-images.jianshu.io/upload_images/11223715-dd509e40e6435762.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![](https://upload-images.jianshu.io/upload_images/11223715-ad5154f5ccb6642c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) #### (三)dubbu-admin介绍 * 服务 ![](https://upload-images.jianshu.io/upload_images/11223715-d8221681b6c2d657.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) * 具体的服务信息 >所有的信息都是基于这个url,进行的展示的,url可以看到前面部分包含调用的协议,调用的ip,端口,通过后面部分定位到具体的服务,接口的基本信息,属于什么应用,重试的次数,线程池,不管用任何的注册中心,都是基于这个url对提供者进行描述的。 ![](https://upload-images.jianshu.io/upload_images/11223715-37bf36c31d387109.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) * 动态的控制权限 ![](https://upload-images.jianshu.io/upload_images/11223715-78a6978d9ed1536c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) * 负载均衡 >点击新增,可以进行选择方法进行控制,这个作用比较大。 ![](https://upload-images.jianshu.io/upload_images/11223715-5a8b60a853edcd54.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![](https://upload-images.jianshu.io/upload_images/11223715-1ccb8c4f3edba214.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) >其实dubbo-admin的管理工具的内核就是url里面的参数,修改的话就是修改redis或者zookeeper里面有个config的值。客户端consumer拿的时候就将url的值和config的值进行一下合并。不是直接改里面的值,provider里面的值会动态刷新的,改了直接就直接刷新掉了,dubbo-admin改也是白改,肯定是合并。 #### (四)dubbo支持的注册中心 * Redis 1.采用K/V 形式进行存储 2.并基于 Redis 的 Publish/Subscribe 事件通知数据变更 >订阅模型 ![](https://upload-images.jianshu.io/upload_images/11223715-b1b9d806242a8e6b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) >推送变更 ![](https://upload-images.jianshu.io/upload_images/11223715-f6cdcc2c87dd8764.png?imageMogr2/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?imageMogr2/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?imageMogr2/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种注册中心,比较常用的还是redis和zookeeper,建议就使用这两个,别使用其他的因为比较使用人数少,出现问题不容易解决。下次说说dubbo的底层原理。

这篇关于『互联网架构』软件架构-企业级dubbo应用(下)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程