Dubbo—Admin 整体架构与安装步骤
回顾 Dubbo 服务治理体系的总体架构,Admin 是服务治理控制面中的一个核心组件,负责微服务集群的服务治理、可视化展示等。
Admin 部署架构
总体上来说,Admin 部署架构分为以下几个部分:
- Admin 主进程,包括服务发现元数据管理、可视化控制台、安全认证策略管控、其他定制化服务治理能力等组件。
- 强依赖组件,包括 Mysql 数据库、注册/配置/元数据中心(可以是 Kubernetes、Nacos、Zookeeper 等)
- 可选依赖组件,包括 Prometheus、Grafana、Zipkin 等
安装 Admin
Dubboctl 安装
Download
当前Dubboctl未正式发行,可按以下方式进行尝试。 拉取Dubbo Admin并编译Dubboctl
git clone https://github.com/apache/dubbo-admin.git
cd dubbo-admin/cmd/dubboctl
go build -o dubboctl .
将 dubboctl 放入可执行路径
ln -s dubbo-admin/cmd/dubboctl/dubboctl /usr/local/bin/dubboctl
Install
安装过程会依次:
- 将用户自定义的配置profile以及set参数覆盖于默认profile,得到最终的profile
# default profile
apiVersion: dubbo.apache.org/v1alpha1
kind: DubboOperator
metadata:namespace: dubbo-system
spec:profile: defaultnamespace: dubbo-systemcomponentsMeta:admin:enabled: truegrafana:enabled: truerepoURL: https://grafana.github.io/helm-chartsversion: 6.52.4nacos:enabled: truezookeeper:enabled: truerepoURL: https://charts.bitnami.com/bitnamiversion: 11.1.6prometheus:enabled: truerepoURL: https://prometheus-community.github.io/helm-chartsversion: 20.0.2skywalking:enabled: truerepoURL: https://apache.jfrog.io/artifactory/skywalking-helmversion: 4.3.0zipkin:enabled: truerepoURL: https://openzipkin.github.io/zipkinversion: 0.3.0
建议使用自定义profile进行配置,在componentsMeta中开启或关闭组件,在components下配置各组件。其中components下各组件的配置值都是helm chart的values,各组件的具体配置请参考: Grafana: https://github.com/grafana/helm-charts/blob/main/charts/grafana/README.md Zookeeper: https://github.com/bitnami/charts/tree/main/bitnami/zookeeper/#installing-the-chart Prometheus: https://github.com/prometheus-community/helm-charts/tree/main/charts Skywalking: https://github.com/apache/skywalking-kubernetes/blob/master/chart/skywalking/README.md Zipkin: https://github.com/Financial-Times/zipkin-helm
# customization profile
apiVersion: dubbo.apache.org/v1alpha1
kind: DubboOperator
metadata:namespace: dubbo-system
spec:profile: defaultnamespace: dubbo-systemcomponentsMeta:admin:enabled: truegrafana:enabled: trueversion: 6.31.0prometheus:enabled: falsecomponents:admin:replicas: 3grafana:testFramework:enabled: false
- 根据profile拉取所需组件并生成manifest,目前Admin,Nacos已在本地,无需拉取;Grafana,Zookeeper,Prometheus,Skywalking,Zipkin将从官方chart库拉取,具体地址和版本可见上方default profile
- 将manifest应用于k8s集群
dubboctl manifest install # 使用默认 manifests 安装# ordubboctl manifest generate | kubectl apply -f -
dubboctl install --set spec.components.admin.replicas=2 # 设置组件的配置
dubboctl install --set spec.componentsMeta.admin.enabled=true, spec.componentsMeta.grafana.enabled=false
# 开启或关闭组件
dubboctl install --set spec.componentsMeta.grafana.repoURL=https://grafana.github.io/helm-charts, spec.componentsMeta.grafana.version=6.31.0
# 设置需远程拉取组件的仓库地址与版本
检查安装效果
kubectl get pod -n dubbo-system
打开 Admin 控制台
kubectl port-forward svc/dubbo-admin -n dubbo-system 38080:38080
打开浏览器,访问: http://127.0.0.1:38080/
Helm 安装
获取图表
helm repo add https://charts.bitnami.com/bitnami
helm repo add https://prometheus-community.github.io/helm-charts
helm repo add https://grafana.github.io/helm-charts
helm repo add https://apache.jfrog.io/artifactory/skywalking-helm
helm repo add https://openzipkin.github.io/zipkin
安装 zookeeper
helm install zookeeper bitnami/zookeeper -n dubbo-system
安装 prometheus
helm install prometheus prometheus-community/prometheus -n dubbo-system
安装 grafana
helm install grafana grafana/grafana -n dubbo-system
安装 skywalking
helm install skywalking skywalking/skywalking -n dubbo-system
安装 zipkin
helm install zipkin openzipkin/zipkin -n dubbo-system
检查安装状态
helm ls -n dubbo-system ;kubectl get pods -n dubbo-system --output wide
VM 安装
Download
下载 Dubbo Admin 发行版本
curl -L https://dubbo.apache.org/installer.sh | VERSION=0.1.0 sh -
# Admin 要组织好发行版本
将 dubboctl 放入可执行路径
ln -s dubbo-admin-0.1.0/bin/dubbo-admin /usr/local/bin/dubbo-admin
Run
dubbo-admin run -f override-configuration.yml
配置手册 (Configuration)
配置用于控制 dubbo-admin 的行为
# Environment type. Available values are: "kubernetes" or "universal"
environment: universal # ENV: DUBBO_ENVIRONMENT
# Mode in which Dubbo CP is running. Available values are: "standalone", "global", "zone"
mode: standalone # ENV: DUBBO_MODE# Resource Store configuration
store:# Type of Store used in the Control Plane. Available values are: "kubernetes", "postgres" or "memory"type: memory # ENV: DUBBO_STORE_TYPE# Kubernetes Store configuration (used when store.type=kubernetes)kubernetes:# Namespace where Control Plane is installed to.systemNamespace: dubbo-system # ENV: DUBBO_STORE_KUBERNETES_SYSTEM_NAMESPACE# Postgres Store configuration (used when store.type=postgres)mysql:# Host of the Postgres DBhost: 127.0.0.1 # ENV: DUBBO_STORE_POSTGRES_HOST# Port of the Postgres DBport: 15432 # ENV: DUBBO_STORE_POSTGRES_PORT# User of the Postgres DBuser: dubbo # ENV: DUBBO_STORE_POSTGRES_USER# Password of the Postgres DBpassword: dubbo # ENV: DUBBO_STORE_POSTGRES_PASSWORD# Database name of the Postgres DBdbName: dubbo # ENV: DUBBO_STORE_POSTGRES_DB_NAME# Connection Timeout to the DB in secondsconnectionTimeout: 5 # ENV: DUBBO_STORE_POSTGRES_CONNECTION_TIMEOUT# Maximum number of open connections to the database# `0` value means number of open connections is unlimitedmaxOpenConnections: 50 # ENV: DUBBO_STORE_POSTGRES_MAX_OPEN_CONNECTIONS# Maximum number of connections in the idle connection pool# <0 value means no idle connections and 0 means default max idle connectionsmaxIdleConnections: 50 # ENV: DUBBO_STORE_POSTGRES_MAX_IDLE_CONNECTIONS# TLS settingstls:# Mode of TLS connection. Available values are: "disable", "verifyNone", "verifyCa", "verifyFull"mode: disable # ENV: DUBBO_STORE_POSTGRES_TLS_MODE# Path to TLS Certificate of the client. Used in verifyCa and verifyFull modescertPath: # ENV: DUBBO_STORE_POSTGRES_TLS_CERT_PATH# Path to TLS Key of the client. Used in verifyCa and verifyFull modeskeyPath: # ENV: DUBBO_STORE_POSTGRES_TLS_KEY_PATH# Path to the root certificate. Used in verifyCa and verifyFull modes.caPath: # ENV: DUBBO_STORE_POSTGRES_TLS_ROOT_CERT_PATH# MinReconnectInterval controls the duration to wait before trying to# re-establish the database connection after connection loss. After each# consecutive failure this interval is doubled, until MaxReconnectInterval# is reached. Successfully completing the connection establishment procedure# resets the interval back to MinReconnectInterval.minReconnectInterval: "10s" # ENV: DUBBO_STORE_POSTGRES_MIN_RECONNECT_INTERVAL# MaxReconnectInterval controls the maximum possible duration to wait before trying# to re-establish the database connection after connection loss.maxReconnectInterval: "60s" # ENV: DUBBO_STORE_POSTGRES_MAX_RECONNECT_INTERVAL
server:port: 38080
registry:address: xxx
metadata-center:address: xxx
config-center:address: xxx
external-services:prometheus:# Prometheus service name is "metrics" and is in the "telemetry" namespace# http://prometheus.<dubbo_namespace_name>:9090url: "http://metrics.telemetry:9090/"tracing:# Enabled by default. Kiali will anyway fallback to disabled if# Jaeger is unreachable.enabled: true# Jaeger service name is "tracing" and is in the "telemetry" namespace.# Make sure the URL you provide corresponds to the non-GRPC enabled endpoint# if you set "use_grpc" to false.in_cluster_url: 'http://tracing.telemetry:16685/jaeger'use_grpc: true# Public facing URL of Jaegerurl: 'http://my-jaeger-host/jaeger'grafana:enabled: true# Grafana service name is "grafana" and is in the "telemetry" namespace.in_cluster_url: 'http://grafana.telemetry:3000/'# Public facing URL of Grafanaurl: 'http://my-ingress-host/grafana'# 更多配置
打开 Admin 控制台
打开浏览器,访问: http://127.0.0.1:38080/
相关文章:
Dubbo—Admin 整体架构与安装步骤
回顾 Dubbo 服务治理体系的总体架构,Admin 是服务治理控制面中的一个核心组件,负责微服务集群的服务治理、可视化展示等。 Admin 部署架构 总体上来说,Admin 部署架构分为以下几个部分: Admin 主进程,包括服务发现…...
C++11打断线程的几种方式
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pthread_cancel1.代码演示2.两个重要方法1.pthread_setcancelstate2.pthread_setcanceltype 3.资源回收 二、Boost1.看代码2.资源泄露2.资源回收 总结 前言…...
如何提升网站排名和用户体验:优化网站速度
网站的排名和用户满意度直接受到站点内容的加载速度影响深远。通过精心的网站优化,您不仅可以提高排名,还可以提供更出色的用户体验,尽管用户可能不会察觉到您的网站加载得更快,但这是一个非常有意义的改进。在这篇文章中…...
【Redis】Hash 哈希内部编码方式
Hash 哈希内部编码方式 哈希的内部编码有两种: ziplist(压缩列表):当哈希类型元素个数⼩于hash-max-ziplist-entries配置(默认512个)、同时所有值都⼩于hash-max-ziplist-value配置(默认64字节…...
JUC第二十八讲:JUC工具类: Semaphore详解
JUC工具类: Semaphore详解 本文是JUC第二十八讲,JUC工具类: Semaphore详解。Semaphore底层是基于AbstractQueuedSynchronizer来实现的。Semaphore称为计数信号量,它允许n个任务同时访问某个资源,可以将信号量看做是在向外分发使用资源的许可证…...
vue3组合式API实现父组件触发子组件中的方法 | vue3中ref的用法 | defineExpose的使用场景
vue3组合式API实现父组件触发子组件中的方法 | vue3中ref的用法 | defineExpose的使用场景 目录 vue3组合式API实现父组件触发子组件中的方法 | vue3中ref的用法 | defineExpose的使用场景一、问题背景二、解决方法三、示例 一、问题背景 代码环境:vue3 ࿰…...
【Qt之QTableWidget和QTreeWidget】树悬停、选择样式及表格表头和首行间隔线
QTableWidget设置表头与首行间隔线 win10 实例化QTableWidget后,表格表头和首行中间无间隔线,以下是通过样式表进行设置: // 设置横向表格头的间隔线,可设置四个方向的间隔线,不需要间隔线的可以设置为0px// border-left:0px sol…...
使用余弦算法计算向量相似性
import pandas as pd import numpy as np import openaifrom openai.embeddings_utils import get_embedding, cosine_similarityopenai.api_key sk-???? embedding_model "text-embedding-ada-002" embedding_encoding "cl100k_base" # this the …...
存档&改造【06】Apex-Fancy-Tree-Select花式树的使用误删页数据还原(根据时间节点导出导入)
之前一直想实现厂区-区域-产线之间的级联选取,于是导入插件Apex-Fancy-Tree-Select花式树 存档&改造【03】Apex-Fancy-Tree-Select花式树的导入-CSDN博客 现在则是在Oracle Apex中的应用 花式书级联列表展示厂区-区域-产线 想要实现的效果 由厂区>…...
OpenCV7-copyTo截取ROI
OpenCV7-copyTo截取ROI copyTo截取感兴趣区域 copyTo截取感兴趣区域 有时候,我们只对一幅图像中的部分区域感兴趣,而原图像又十分大,如果带着非感兴趣区域一次处理,就会对程序的内存造成负担,因此我们希望从原始图像中…...
OpenCV10-图像直方图:直方图绘制、直方图归一化、直方图比较、直方图均衡化、直方图规定化、直方图反射投影
OpenCV10-图像直方图:直方图绘制、直方图归一化、直方图比较、直方图均衡化、直方图规定化、直方图反射投影 1.直方图的绘制2.直方图归一化3.直方图比较4.直方图均衡化5.直方图规定化(直方图匹配)6.直方图反向投影 1.直方图的绘制 图像直方图…...
线性回归模型进行特征重要性分析
目的 线性回归是很常用的模型;在局部可解释性上也经常用到。 数据归一化 归一化通常是为了确保不同特征之间的数值范围差异不会对线性模型的训练产生过大的影响。在某些情况下,特征归一化可以提高模型的性能,但并不是所有情况下都需要进行归一…...
hadoop -hive 安装
1.下载hive http://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz2.解压/usr/app 目录 tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /usr/app3.设置软连接 ln -s /usr/app/apache-hive-3.1.3-bin /usr/app/hive4.修改/usr/app/hive/conf/hive-env.…...
小迈物联网网关对接串口服务器[Modbus RTU]
很多工控现场,方案中会使用串口服务器采集Modbus RTU的设备,这种情况下一般会在PC机上装上串口服务器厂家的软件来进行数据采集。如果现场不需要PC机,而是通过网关将数据传输到软件平台,如何实现呢? 本文简要介绍小迈网…...
Java版本+企业电子招投标系统源代码+支持二开+招投标系统+中小型企业采购供应商招投标平台
功能模块: 待办消息,招标公告,中标公告,信息发布 描述: 全过程数字化采购管理,打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力,为外部供…...
Vue3中reactive, onMounted, ref,toRaw,conmpted 使用方法
import { reactive, onMounted, ref,toRaw,conmpted } from vue; vue3中 reactive ,ref , toRaw,watch,conmpted 用法 toRaw 返回原响应式对象 用法: const rowList toRaw(row) reactive:ref: ref和reactive都是V…...
有哪些免费的PPT模板网站,推荐这6个PPT模板免费下载网站!
混迹职场的打工人,或是还在校园的学生党,在日常的工作汇报或课程作业中,必然少不了PPT的影子,而每当提到做PPT,许多人首先会想到:有哪些免费的PPT模板下载网站? 本着辛苦自己,造福所…...
剧院建筑三维可视化综合管控平台提高安全管理效率
随着数字孪生技术的高速发展,智慧楼宇也被提上日程,以往楼宇管理存在着设备故障排查困难、能源浪费与管理不足、安全性和风险高等问题,而智慧楼宇数字孪生可视化中控平台,打造智慧楼宇管理一张图,实现了智慧建筑和楼宇…...
“过度炒作”的大模型巨亏,Copilot每月收10刀,倒赔20刀
大模型无论是训练还是使用,都比较“烧钱”,只是其背后的成本究竟高到何处?已经推出大模型商用产品的公司到底有没有赚到钱?事实上,即使微软、亚马逊、Adobe 这些大厂,距离盈利之路还有很远!同时…...
顺序表经典的OJ题
题目一 移除元素: 题目要求: 给你一个数组 nums 和一个值 val。你需要 原地 除所有数值等于 val 的素,并返回移除后数组的新长度.不要使用额外的数组空间。你必须仅使用 0(1) 额外空间并 原地 修改输入数组元素的顺序可以改变。你不需要考虑数…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
