dubbo实战之四:管理控制台dubbo-admin

欢迎访问我的GitHub

https://github.com/zq2599/blog_demos

内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;

《dubbo实战》系列导航

  1. 准备和初体验
  2. 与SpringBoot集成
  3. 使用Zookeeper注册中心
  4. 管理控制台dubbo-admin

本篇概览

  • 本文是《dubbo实战》系列的第四篇,内容是部署和启动dubbo管理控制台服务,该服务在开发、测试、生产等环节都非常重要,接下来一起通过实战学习和了解它,官方GitHub地址:https://github.com/apache/dubbo-admin
  • 整篇文章由以下内容构成:
  1. 准备工作(注册中心、服务提供者、服务消费者);
  2. 准备工作(配置信息);
  3. 体验docker版;
  4. 下载源码自行构建;

准备工作(注册中心、服务提供者、服务消费者)

  1. 所谓准备工作,就是准备一个相对完整的dubbo环境,里面有注册中心、服务提供者、服务消费者;
  2. 在上一篇《dubbo实战之三:使用Zookeeper注册中心》,咱们已经创建和验证了服务提供者和消费者,并且以zookeeper作为注册中心,现在请把这些服务全部启动起来,我这边的服务情况如下所示:
服务 IP 端口 项目名称 作用
zookeeper 192.168.50.43 2181 注册中心、配置中心 作用
springboot-zk-provider 192.168.50.12 8080 springbootzkprovider 服务提供者
springboot-zk-consumer 192.168.50.12 8081 springbootzkconsumer 服务消费者
  1. 确保zookeeper、服务提供者、服务消费者全部启动且功能正常;

准备工作(配置信息)

  1. 接下来要准备配置信息,首选要强调的是dubbo-admin有三个重要的配置项:admin.config-center(配置中心),admin.registry.address(注册中心)、admin.metadata-report.address(元数据中心);
  2. 如果在配置文件中只有admin.registry.address(旧版本的做法),此时dubbo-admin会将admin.registry.address的值作为注册中心和配置中心使用,元数据中心将无法使用,因此官方不推荐这样的配置;
  3. 官方推荐的做法:在配置文件中只有admin.config-center,此配置的值是zookeeper地址,在zookeeper服务中有个节点,路径是/dubbo/config/dubbo/dubbo.properties,内容是admin.registry.address和admin.metadata-report.address的配置,如下所示:
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.metadata-report.address=zookeeper://127.0.0.1:2181
  1. 简单地说,就是只有配置中心的地址放在本地配置文件中,等到dubbo-admin连接到配置中心后,从配置中心取得其他配置信息,画了个简图辅助理解,如下:
在这里插入图片描述
  1. 基于上述分析,咱们要先在zookeeper中创建好节点/dubbo/config/dubbo/dubbo.properties,以便dubbo-admin使用,请登录zookeeper所在服务器,进入zookeeper的bin目录;
  2. 由于前面的文章已经使用过zookeeper作为注册中心,因此"/dubbo/config/"目录已经存在,下面的命令会创建/dubbo/config/dubbo节点:
./zkCli.sh create /dubbo/config/dubbo ""
  1. 再创建/dubbo/config/dubbo/dubbo.properties节点:
./zkCli.sh create /dubbo/config/dubbo/dubbo.properties "dubbo.registry.address=zookeeper://192.168.50.43:2181
dubbo.metadata-report.address=zookeeper://192.168.50.43:2181"
  1. 最后,查看是否创建成功,输入和响应如下所示,可见节点创建成功,值也是预期的:
root@zookeeper:/opt/zookeeper-3.4.13/bin# ./zkCli.sh get /dubbo/config/dubbo/dubbo.properties
Connecting to localhost:2181
2020-10-25 03:47:50,512 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 04:05 GMT
environment:user.home=/root
2020-10-25 03:47:50,526 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/opt/zookeeper-3.4.13/bin
2020-10-25 03:47:50,529 [myid:] - INFO  [main:ZooKeeper@442] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@674e5e21
2020-10-25 03:47:50,584 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1029] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
WATCHER::

WatchedEvent state:SyncConnected type:None path:null
dubbo.registry.address=zookeeper://192.168.50.43:2181
dubbo.metadata-report.address=zookeeper://192.168.50.43:2181
cZxid = 0x6b5
ctime = Sun Oct 25 03:47:30 UTC 2020
mZxid = 0x6b5
mtime = Sun Oct 25 03:47:30 UTC 2020
pZxid = 0x6b5
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 114
numChildren = 0
  1. 至此,准备工作全部完成,可以部署和尝试dubbo-admin了,先从官方推荐的快速体验方式开始,即docker版;

体验docker版

  1. 请确保docker已部署并正常运行;
  2. 官方Github建议通过docker镜像快速体验管理控制台,如下图,咱们就按照官方的建议先用docker镜像试试:
在这里插入图片描述
  1. 下载镜像(此步骤可以不执行,我这是想看看下载镜像要多久):
docker pull apache/dubbo-admin
  1. 执行以下命令启动docker容器:
docker run \
-p 8083:8080 \
-e admin.config-center=zookeeper://192.168.50.43:2181 \
--rm \
apache/dubbo-admin
  1. 用上述命令启动的容器是一次性的,如果用Ctrl+C中断控制台,容器就会自动销毁,另外容器的8080端口被映射到了宿主机的8083端口;
  2. 用浏览器访问宿主机的8083端口,如下图所示,dubbo-admin已经启动了:
在这里插入图片描述
  1. 点击下图红框1中的服务查询菜单,即可看到整个分布式环境中所有已经暴露的服务(即红框2),此时点击右侧的DETAIL按钮,就能看到此服务的详情:
在这里插入图片描述
  1. 服务详情如下图,基础信息、提供者、消费者都有,但遗憾的是元数据无法正常展示:
在这里插入图片描述
  1. 以上就是官方提供的体验版,算是让咱们对管理控制台有了基本了解,但这仅是用于体验的镜像,实际生产环境中,首先未必会用docker,并且可能需要有对应的源码以便学习和分析问题,甚至有可能用源码做进一步定制,因此这个docker版本就不适合了,接下来一起下载dubbo-admin源码自行编译构建;
  2. 在启动docker容器的控制台执行Ctrl+C,刚才创建的容器就会自动销毁;

下载源码自行构建

  1. 下载官方源码:
git clone https://github.com/apache/dubbo-admin.git
  1. 修改配置文件dubbo-admin/dubbo-admin-server/src/main/resources/application.properties ,如下所示,只配置admin.registry.address的值,将admin.registry.address和admin.metadata-report.address注释掉,如果要修改端口,也在此添加server.port的配置,我这里配置的是8083端口:
server.port=8083
# centers in dubbo2.7
#admin.registry.address=zookeeper://127.0.0.1:2181
admin.config-center=zookeeper://192.168.50.43:2181
#admin.metadata-report.address=zookeeper://127.0.0.1:2181

admin.root.user.name=root
admin.root.user.password=root
#group
admin.registry.group=dubbo
admin.config-center.group=dubbo
admin.metadata-report.group=dubbo

admin.apollo.token=e16e5cd903fd0c97a116c873b448544b9d086de9
admin.apollo.appId=test
admin.apollo.env=dev
admin.apollo.cluster=default
admin.apollo.namespace=dubbo

#compress
server.compression.enabled=true
server.compression.mime-types=text/css,text/javascript,application/javascript
server.compression.min-response-size=10240
  1. 在dubbo-admin目录执行以下命令,开始编译:
mvn clean compile -U
  1. 不出意外的话会编译成功,如下:
[INFO] --- maven-compiler-plugin:3.7.0:compile (default-compile) @ dubbo-admin-test ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 6 source files to /Users/zhaoqin/temp/202010/24/dubbo-admin/dubbo-admin-test/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for dubbo-admin 0.2.0-SNAPSHOT:
[INFO]
[INFO] dubbo-admin ........................................ SUCCESS [  1.997 s]
[INFO] dubbo-admin-ui ..................................... SUCCESS [ 44.322 s]
[INFO] dubbo-admin-server ................................. SUCCESS [  4.731 s]
[INFO] dubbo-admin-distribution ........................... SUCCESS [  0.850 s]
[INFO] dubbo-admin-test ................................... SUCCESS [  0.815 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  53.105 s
[INFO] Finished at: 2020-10-25T16:24:27+08:00
[INFO] ------------------------------------------------------------------------
[WARNING] The requested profile "nexus" could not be activated because it does not exist.
  1. 启动服务:
mvn --projects dubbo-admin-server spring-boot:run
  1. 启动成功后,在浏览器访问登录页面:http://localhost:8083/#/login ,(一定要先登录),如下图,账号密码都是root,这是application.properties文件中配置的:
在这里插入图片描述
  1. 登录后可见主页,如下图,和之前的docker体验版还是有些不同的:
在这里插入图片描述
  1. 点击上图的测试按钮,可以在页面上测试该服务的方法:
在这里插入图片描述
  1. 再次进入服务详情页,可见元数据也能正常显示了:
在这里插入图片描述

小结

至此,管理控制台dubbo-admin的编译、部署、基本操作都实战完成了,网页上更多功能您可以自行尝试,(建议部署更多的服务和实例),回顾整个过程其实都很简单,唯一要注意的就是服务的配置那里,本地只有配置中心的地址,其他信息都放在配置中心;

你不孤单,欣宸原创一路相伴

  1. Java系列
  2. Spring系列
  3. Docker系列
  4. kubernetes系列
  5. 数据库+中间件系列
  6. DevOps系列

欢迎关注公众号:程序员欣宸

微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界...
https://github.com/zq2599/blog_demos

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容