【Dubbo3终极特性】「流量治理体系」一文教你如何搭建Dubbo3的控制台服务Dubbo-Admin

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 【Dubbo3终极特性】「流量治理体系」一文教你如何搭建Dubbo3的控制台服务Dubbo-Admin

Dubbo Admin

Dubbo Admin 是一个控制台,为 Dubbo 集群提供更好可视化服务。Admin 支持 Dubbo3 并很好的兼容 2.7.x、2.6.x 和 2.5.x。


Dubbo Admin的部署方式

接下来我们主要会介绍有四种Dubbo Admin部署到生产环境的方式

  • 基于 Helm 运行 Admin
  • 基于 Kubernetes 运行 Admin
  • 基于 Docker 运行 Admin
  • 基于源码打包运行 Admin

基于 Helm 运行 Admin

通过 Helm运行Admin有两种方式,它们起到相同的效果,因此可以选择以下任意一种。

基于 Chart 源文件运行 Admin

下载 chart 源文件

克隆 Dubbo Admin仓库源码:

shell

复制代码

$ git clone https://github.com/apache/dubbo-admin.git

从仓库根目录切换到以下目录 deploy/helm/dubbo-admin

shell

复制代码

$ cd dubbo-admin/deploy/helm/dubbo-admin

安装 helm chart

ruby

复制代码

$ helm install dubbo-admin .

如果你想定制 Admin 的启动参数,以便让 Admin 连接到真实的生产环境注册中心或配置中心,可以通过以下 -f helm 参数指定自定义配置文件:

properties.xml

properties

复制代码

properties: |
  admin.registry.address=zookeeper://30.221.144.85:2181
  admin.config-center=zookeeper://30.221.144.85:2181
  admin.metadata-report.address=zookeeper://30.221.144.85:2181

zookeeper://30.221.144.85:2181 是可以在 Kubernetes 集群内被访问到的真实地址。

properties

复制代码

$ helm install dubbo-admin -f properties.yaml .

properties字段指定的内容将会覆盖 Admin 镜像中application.properties 指定的默认配置,除了properties之外,还可以定制 Admin helm chart 定义的其他属性,这里是可供使用的完整参数。

application.properties的配置信息

properties

复制代码

server.port=38080
dubbo.protocol.port=30880
dubbo.application.qos-port=32222
# centers in dubbo2.7, if you want to add parameters, please add them to the url
admin.registry.address=zookeeper://127.0.0.1:2181
admin.config-center=zookeeper://127.0.0.1:2181
admin.metadata-report.address=zookeeper://127.0.0.1:2181
# nacos config, add parameters to url like username=nacos&password=nacos
#admin.registry.address=nacos://127.0.0.1:8848?group=DEFAULT_GROUP&namespace=public
#admin.config-center=nacos://127.0.0.1:8848?group=dubbo
#admin.metadata-report.address=nacos://127.0.0.1:8848?group=dubbo
#group (Deprecated it is recommended to use URL to add parameters,will be removed in the future)
#admin.registry.group=dubbo
#admin.config-center.group=dubbo
#admin.metadata-report.group=dubbo
#namespace used by nacos. (Deprecated it is recommended to use URL to add parameters,will be removed in the future)
#admin.registry.namespace=public
#admin.config-center.namespace=public
#admin.metadata-report.namespace=public
admin.root.user.name=root
admin.root.user.password=root
#session timeout, default is one hour
admin.check.sessionTimeoutMilli=3600000
# apollo config
# admin.config-center = apollo://localhost:8070?token=e16e5cd903fd0c97a116c873b448544b9d086de9&app.id=test&env=dev&cluster=default&namespace=dubbo
# (Deprecated it is recommended to use URL to add parameters,will be removed in the future)
#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
#token timeout, default is one hour
admin.check.tokenTimeoutMilli=3600000
#Jwt signingKey
admin.check.signSecret=86295dd0c4ef69a1036b0b0c15158d77
#dubbo config
dubbo.application.name=dubbo-admin
dubbo.registry.address=${admin.registry.address}
# mysql
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#spring.datasource.url=jdbc:mysql://localhost:3306/dubbo-admin?characterEncoding=utf8&connectTimeout=1000&socketTimeout=10000&autoReconnect=true
#spring.datasource.username=root
#spring.datasource.password=mysql
# h2
spring.datasource.url=jdbc:h2:mem:~/dubbo-admin;MODE=MYSQL;
spring.datasource.username=sa
spring.datasource.password=
# id generate type
mybatis-plus.global-config.db-config.id-type=none
dubbo.application.logger=slf4j
访问 Admin

Dubbo Admin现在应该已经成功安装,运行以下命令获得访问地址:

arduino

复制代码

$ kubectl --namespace default port-forward service/dubbo-admin 38080:38080

或者,你可以参考执行 helm 安装后给出的提示命令,类似如下:

arduino

复制代码

export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=dubbo-admin,app.kubernetes.io/instance=dubbo-admin" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:38080 to use your application"
kubectl --namespace default port-forward $POD_NAME 38080:$CONTAINER_PORT

打开浏览器并访问 http://127.0.0.1:38080,默认的 username 和 password 是 root。

基于 Chart 仓库运行 Admin

添加 helm chart 仓库 (暂时不可用)

ruby

复制代码

$ helm repo add dubbo-charts https://dubbo.apache.org/dubbo-charts
$ helm repo update
安装 helm chart

shell

复制代码

$ helm install dubbo-admin dubbo-charts/dubbo-admin

基于 Chart 源文件运行 Admin 中相应环节了解如何定制安装参数

shell

复制代码

$ helm install dubbo-admin -f properties.yaml dubbo-charts/dubbo-admin
访问 Dubbo Admin

Dubbo Admin 现在应该已经成功安装,运行以下命令获得访问地址:

arduino

复制代码

$ kubectl --namespace default port-forward service/dubbo-admin 38080:38080

打开浏览器并访问 http://127.0.0.1:38080,默认的 username 和 password 是 root

使用 Kubernetes 运行

克隆 Dubbo Admin仓库源码:

shell

复制代码

$ git clone https://github.com/apache/dubbo-admin.git

切换到 deploy/k8s 目录可以看到Admin kubernetes资源文件

shell

复制代码

$ cd /dubbo-admin/deploy/k8s

部署 Dubbo Admin

首先,请参照application.properties修改configmap.yml 中的参数配置,只定义要覆盖参数即可,如下图所示。


ini

复制代码

application.properties: |
    admin.registry.address=zookeeper://127.0.0.1:2181
    admin.config-center=zookeeper://127.0.0.1:2181
    admin.metadata-report.address=zookeeper://127.0.0.1:2181
  • 修改admin.registry.address
  • 修改admin.config-center
  • 修改admin.metadata-report.address

执行以下命令:

ruby

复制代码

$ kubectl apply -f ./

访问 Admin

ruby

复制代码

$ kubectl port-forward service dubbo-admin 38080:38080

打开浏览器并访问 http://localhost:38080, 默认 username 和 password 是 root。

使用 Docker 运行

预先定义的 Admin 镜像托管在:

hub.docker.com/repository/…

可以直接运行镜像来部署 Admin,并通过绑定宿主机上的 application.properties 文件定制镜像默认参数,如注册中心、配置中心地址等。

shell

复制代码

$ docker run -it --rm -v /the/host/path/containing/properties:/config -p 38080:38080 apache/dubbo-admin

将 /the/host/path/containing/properties 替换为宿主机上包含 application.properties 文件的实际路径(必须是一个有效目录的绝对路径)。

打开浏览器并访问 http://localhost:38080, 默认 username 和 password 是 root

通过源码打包运行

下载代码: git clone github.com/apache/dubb…

在 dubbo-admin-server/src/main/resources/application.properties中指定注册中心地址

构建

ini

复制代码

mvn clean package -Dmaven.test.skip=true

启动

bash

复制代码

mvn --projects dubbo-admin-server spring-boot:run 或者
cd dubbo-admin-distribution/target; java -jar dubbo-admin-${project.version}.jar

访问 http://localhost:38080

核心重点配置

application.properties配置项说明

admin.config-center

推荐使用,配置中心地址,比如:admin.config-center="zookeeper://127.0.0.1:2181" 需要在配置中心中,配置注册中心和元数据中心地址配置格式如下:

ini

复制代码

zookeeper:
     path: /dubbo/config/dubbo/dubbo.properties
     content:
        dubbo.registry.address=zookeeper://127.0.0.1:2181
        dubbo.metadata-report.address=zookeeper://127.0.0.1:2181
admin.registry.address

不推荐使用,老版本的配置中心地址,比如:

ini

复制代码

admin.registry.address="zookeeper://127.0.0.1:2181"

如使用该配置,Dubbo Admin会将其作为注册中心和配置中心使用,元数据中心将无法使用,会影响服务测试等功能。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
11月前
|
SpringCloudAlibaba JavaScript Dubbo
【SpringCloud Alibaba系列】Dubbo dubbo-admin安装教程篇
本文介绍了 Dubbo-Admin 的安装和使用步骤。Dubbo-Admin 是一个前后端分离的项目,前端基于 Vue,后端基于 Spring Boot。安装前需确保开发环境(Windows 10)已安装 JDK、Maven 和 Node.js,并在 Linux CentOS 7 上部署 Zookeeper 作为注册中心。
3319 1
【SpringCloud Alibaba系列】Dubbo dubbo-admin安装教程篇
|
监控 Dubbo Java
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
这篇文章详细介绍了如何将Spring Boot与Dubbo和Zookeeper整合,并通过Dubbo管理界面监控服务注册情况。
938 0
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
|
Dubbo IDE Java
dubbo学习二:下载Dubbo-Admin管理控制台,并分析在2.6.1及2.6.1以后版本的变化
这篇文章是关于如何下载和部署Dubbo管理控制台(dubbo-admin)的教程,并分析了2.6.1版本及以后版本的变化。
921 0
dubbo学习二:下载Dubbo-Admin管理控制台,并分析在2.6.1及2.6.1以后版本的变化
|
JSON Dubbo Java
【Dubbo协议指南】揭秘高性能服务通信,选择最佳协议的终极攻略!
【8月更文挑战第24天】在分布式服务架构中,Apache Dubbo作为一款高性能的Java RPC框架,支持多种通信协议,包括Dubbo协议、HTTP协议及Hessian协议等。Dubbo协议是默认选择,采用NIO异步通讯,适用于高要求的内部服务通信。HTTP协议通用性强,利于跨语言调用;Hessian协议则在数据传输效率上有优势。选择合适协议需综合考虑性能需求、序列化方式、网络环境及安全性等因素。通过合理配置,可实现服务性能最优化及系统可靠性提升。
341 3
|
C# 开发者 Windows
勇敢迈出第一步:手把手教你如何在WPF开源项目中贡献你的第一行代码,从选择项目到提交PR的全过程解析与实战技巧分享
【8月更文挑战第31天】本文指导您如何在Windows Presentation Foundation(WPF)相关的开源项目中贡献代码。无论您是初学者还是有经验的开发者,参与这类项目都能加深对WPF框架的理解并拓展职业履历。文章推荐了一些适合入门的项目如MvvmLight和MahApps.Metro,并详细介绍了从选择项目、设置开发环境到提交代码的全过程。通过具体示例,如添加按钮点击事件处理程序,帮助您迈出第一步。此外,还强调了提交Pull Request时保持专业沟通的重要性。参与开源不仅能提升技能,还能促进社区交流。
170 0
|
Dubbo Java 应用服务中间件
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo:微服务通信的高效解决方案
【10月更文挑战第15天】随着信息技术的发展,微服务架构成为企业应用开发的主流。Spring Cloud Dubbo结合了Dubbo的高性能RPC和Spring Cloud的生态系统,提供高效、稳定的微服务通信解决方案。它支持多种通信协议,具备服务注册与发现、负载均衡及容错机制,简化了服务调用的复杂性,使开发者能更专注于业务逻辑的实现。
259 2
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
在 Apache Dubbo 突破 4w Star 之际,Apache Dubbo 团队正式宣布,Dubbo 3.3 正式发布!作为全球领先的开源微服务框架,Dubbo 一直致力于为开发者提供高性能、可扩展且灵活的分布式服务解决方案。此次发布的 Dubbo 3.3,通过 Triple X 的全新升级,突破了以往局限,实现了对南北向与东西向流量的全面支持,并提升了对云原生架构的友好性。
367 106
|
Dubbo Java 应用服务中间件
💥Spring Cloud Dubbo火爆来袭!微服务通信的终极利器,你知道它有多强大吗?🔥
【8月更文挑战第29天】随着信息技术的发展,微服务架构成为企业应用开发的主流模式,而高效的微服务通信至关重要。Spring Cloud Dubbo通过整合Dubbo与Spring Cloud的优势,提供高性能RPC通信及丰富的生态支持,包括服务注册与发现、负载均衡和容错机制等,简化了服务调用管理并支持多种通信协议,提升了系统的可伸缩性和稳定性,成为微服务通信领域的优选方案。开发者仅需关注业务逻辑,而无需过多关心底层通信细节,使得Spring Cloud Dubbo在未来微服务开发中将更加受到青睐。
206 0
|
8月前
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
145 0