微服务实战系列之玩转Docker(十七)

导览

  • 前言
  • Q:如何实现etcd数据的可视化管理
  • 一、创建etcd集群
    • 1. 节点定义
    • 2. 集群成员
      • 2.1 docker ps
      • 2.2 docker exec
      • 2.3 etcdctl member list
  • 二、发布数据
    • 1. 添加数据
    • 2. 数据共享
  • 三、可视化管理
    • 1. ETCD Keeper入门
      • 1.1 简介
      • 1.2 安装
        • 1.2.1 定义compose.yml
        • 1.2.2 启动keeper
    • 2. 数据管理
      • 2.1 打开etcdkeeper
      • 2.2 数据操作
  • 结语
  • 系列回顾

前言

etcd容器云常用的分布式数据存储工具,它采用经典的RAFT协议实现数据的一致性。为进一步加深对etcd集群的了解和使用,博主快马加鞭,再续新篇。本篇重点介绍如何实现etcd数据的可视化管理,请紧随博主的步伐,Let’s go~

在这里插入图片描述

Q:如何实现etcd数据的可视化管理

一、创建etcd集群

1. 节点定义

基于上篇文章(快捷入口),我们延续原集群的定义,即3个node

节点名称节点IP端口
etcd-node110.11.12.44:2380
etcd-node210.11.12.45:2380
etcd-node310.11.12.46:2380

2. 集群成员

启动每个node后,我们可以通过三步操作,查看成员列表。

2.1 docker ps

登录任意一个node,比如etcd-node1,查看etcd容器是否已启动(status=Up):
在这里插入图片描述
如上所示,代表成功,next

2.2 docker exec

访问etcd-node1容器内部,执行如下命令:

docker exec -it etcd-node1  /bin/bash

运行结果如下:
在这里插入图片描述
如上所示,代表成功,next

2.3 etcdctl member list

查看当前etcd-node1节点所在的集群成员列表:

etcdctl member list

运行结果如下:
在这里插入图片描述
如上所示,代表集群运行正常。

二、发布数据

集群正常工作后,我们正式开启数据发布之旅,比如添加一个K-V。

1. 添加数据

按照 2.2 说明执行操作,我们先进入etcd-node1容器内部(当然你也可以选择另外2个node,博主以node1为例):
在这里插入图片描述
保持当前连接状态,我们继续next。

# 添加一个key为`etcd`的值:"Hello etcd~"
etcdctl put etcd "Hello etcd~"

执行完成后,你可以观察当前key('etcd')是否已添加(出现“OK”字样):
在这里插入图片描述
如上所示,代表此key添加成功。

2. 数据共享

通过etcd-node1节点完成添加key的操作后,我们可以在另外2个节点中,验证此key是否已在集群内共享。只需分别执行如下命令:

# 获取key为`etcd`的值
etcdctl get etcd

etcd-node2结果如下:
在这里插入图片描述
etcd-node3结果如下:
在这里插入图片描述
至此,博主认为当前的 etcd 集群可以开始正常工作了(当然不考虑安全的前提下),是不是很简单?

提示:这里使用到了 etcdctl 这个工具,它是一个支持etcd命令行的客户端,可与etcd集群进行交互,完成数据的共享与管理。

三、可视化管理

通过前两节的详细介绍,相信各位盆友可以掌握etcd集群的基本用法。不过可以多想想是否还有进一步提升的空间?Yes!

我们总不能在每次发布数据后,再通过etcdctl去观察吧?有句话说得好:“言传不如身教,行动胜于言辞”。有想法必有行动,正好前辈们也是这么认为的。这不博主马上给各位介绍一个etcd的好伙伴儿:ETCD Keeper——一个etcd集群数据管理的好帮手、好工具。

在这里插入图片描述

1. ETCD Keeper入门

1.1 简介

ETCD Keeper是一款轻量级的etcd web客户端,支持etcd2和etcd3两个版本。

一句话总结:我们可以使用它与etcd集群进行交互,比如查看、添加、删除、更新数据等操作。

1.2 安装

1.2.1 定义compose.yml

选择etcd集群内任意一个node,进行安装。博主依然选择以docker compose的方式进行操作举例,docker-compose.yml 内容如下:

services:etcd-node1:image: bitnami/etcd:3container_name: etcd-node1environment:- TZ=Asia/Shanghai- ETCD_NAME=etcd-node1- ETCD_DATA_DIR=/bitnami/etcd/data- ALLOW_NONE_AUTHENTICATION=yes- ETCD_ADVERTISE_CLIENT_URLS=http://10.11.12.44:2379- ETCD_INITIAL_ADVERTISE_PEER_URLS=http://10.11.12.44:2380- ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380- ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster- ETCD_INITIAL_CLUSTER=etcd-node1=http://10.11.12.44:2380,etcd-node2=http://10.11.12.45:2380,etcd-node3=http://10.11.12.46:2380- ETCD_INITIAL_CLUSTER_STATE=newrestart: alwaysports:- 2380:2380- 2379:2379volumes:- /app/etcd/data:/bitnami/etcd/data#添加etcd管理工具keeperetcd-keeper:image: evildecay/etcdkeeper:latestcontainer_name: etcd-keeperrestart: alwaysports:- 8000:8080

第一个service是etcd服务(延用上一篇配置),第二个service就是本次的添加的etcd-keeper(默认端口8080)。etcd-keeper默认监控本主机的2379端口(该端口是本机etcd节点的运行端口),所以无需指定etcd集群的IP端口。

1.2.2 启动keeper

准备好docker-compose.yml后,我们可以立即启动它。只需执行如下命令:

# 启动compose中的service
docker compose up -d
# 查看容器
docker compose ps

运行结果如下,我们可以发现2个service均已启动成功(status=Up):
在这里插入图片描述
接下来,好戏开场~

2. 数据管理

2.1 打开etcdkeeper

我们打开浏览器,输入http://10.11.12.44:8000/etcdkeeper/,即可打开etcd-keeper的web客户端,界面如下所示:
在这里插入图片描述

提示:keeper默认监控的地址是127.0.0.1,需要改为ectd集群节点的实际IP。否则可能拒绝连接。

在这里插入图片描述

2.2 数据操作

通过该web客户端,我们可以轻松的向etcd集群发布数据。比如添加目录或文件:

在这里插入图片描述
在这里插入图片描述
是不是很直观?很简单?很高效?

结语

当我们拥有了一个etcd集群后,是不是该考虑如何进行有效的数据管理和监控?答案是肯定的。虽然etcd本身提供了客户端工具etcdctl(基于命令行),但是etcd keeper面向现实场景提供了更好的解决方案,所以更适用于日常的工作实践。

走过的、路过的盆友们,点点赞,收收藏,并加以指导,以备不时之需哈~

系列回顾


微服务实战系列之玩转Docker(十六)
微服务实战系列之玩转Docker(十五)
微服务实战系列之玩转Docker(十四)
微服务实战系列之玩转Docker(十三)
微服务实战系列之玩转Docker(十二)
微服务实战系列之玩转Docker(十一)
微服务实战系列之玩转Docker(十)
微服务实战系列之玩转Docker(九)
微服务实战系列之玩转Docker(八)
微服务实战系列之玩转Docker(七)
微服务实战系列之玩转Docker(六)
微服务实战系列之玩转Docker(五)
微服务实战系列之玩转Docker(四)
微服务实战系列之玩转Docker(三)
微服务实战系列之玩转Docker(二)
微服务实战系列之玩转Docker(一)
微服务实战系列之云原生

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/461406.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Cloud +UniApp智慧工地源码,智慧工地综合解决方案,建筑工程云平台源码

Spring Cloud UniApp智慧工地源码,智慧工地全套源代码包含:PC端大屏端移动端 智慧工地解决方案以工程建设现场管理需求为主线,以AI、物联网、BIM技术为手段,对施工现场进行立体化、全方位、全时段管理,实现规范施工管…

Python 从入门到实战43(Pandas数据结构)

我们的目标是:通过这一套资料学习下来,可以熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。 上篇文章我们学习了NumPy数组操作的相关基础知识。今天学习一下pa…

数字信号处理Python示例(1)使用Python生成正弦信号

文章目录 前言一、连续时间周期信号二、正弦波三、使用Python生成正弦信号的步骤内置库说明 四、完整的python代码与运行结果1.完整的python代码2、运行结果 五、总结 前言 介绍如何使用python生成正弦信号,给出详细步骤和完整的python代码和运行结果。 一、连续时…

树叶分类竞赛(Baseline)以及kaggle的GPU使用

树叶分类竞赛(Baseline)-kaggle的GPU使用 文章目录 树叶分类竞赛(Baseline)-kaggle的GPU使用竞赛的步骤代码实现创建自定义dataset定义data_loader模型定义超参数训练模型预测和保存结果 kaggle使用 竞赛的步骤 本文来自于Neko Kiku提供的Baseline,感谢大佬提供代码…

四足机器人实战篇之二十二:四足机器人支撑腿反作用力规划之反馈控制及线性约束条件优化方法

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言一、先使用反馈+前馈的控制方式,根据躯干期望的位置速度,计算出当前身体姿态的虚拟反作用力(实现躯体平衡控制器)二、再建立线性约束的凸优化问…

企业物流管理数据仓库建设的全面指南

文章目录 一、物流管理目标二、总体要求三、数据分层和数据构成(1)数据分层(2)数据构成 四、数据存储五、数据建模和数据模型(1)数据建模(2)数据模型 六、总结 在企业物流管理中&…

设计模式基础概念(行为模式):责任链模式(Chain Of Responsibility)

概述 责任链模式是一种行为设计模式, 允许你将请求沿着处理者链进行发送。 收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。 该模式建议你将这些处理者连成一条链。 链上的每个处理者都有一个成员变量来保存对于…

centos7 安装python3.9.4,解决import ssl异常

本篇文章介绍如何在centos7中安装python3.9.4(下文简称python3),解决python3安装后import ssl模块失败问题,为什么我要在centos7中安装python呢,因为我需要在服务器中跑python数据处理脚本。 安装python3同时解决import ssl模块失败问题总共包…

【分布式技术】分布式序列算法Snowflake深入解读

文章目录 概述Snowflake算法的构成:Snowflake算法的特点:Snowflake算法存在的问题: 🔍 雪片算法在分布式系统中是如何保证ID的唯一性和有序性的?唯一性(Uniqueness)有序性(Orderline…

纯CSS实现UI设计中常见的丝带效果(5)

原文传送门:纯CSS实现UI设计中常见的丝带效果 网页中的丝带效果在设计中扮演着多重角色,其作用可以归纳为以下几个方面: 视觉吸引与装饰 增强视觉吸引力:丝带效果以其独特的形态和色彩,能够迅速吸引用户的注意力&…

TP41Y阀套式排污阀

在现代工业领域中,阀门作为一种关键的控制元件,广泛应用于各种流体系统中。其中,TP41Y阀套式排污阀以其独特的设计和优异的性能,在石油、天然气、化工等行业中占据了重要的地位。本文将对TP41Y阀套式排污阀进行详细的专业解析&…

Python | Leetcode Python题解之第522题最长特殊序列II

题目&#xff1a; 题解&#xff1a; class Solution:def findLUSlength(self, strs: List[str]) -> int:def is_subseq(s: str, t: str) -> bool:pt_s pt_t 0while pt_s < len(s) and pt_t < len(t):if s[pt_s] t[pt_t]:pt_s 1pt_t 1return pt_s len(s)ans …

Flink SQL中Changelog事件乱序处理原理

本文围绕Flink SQL实时数据处理中的Changelog事件乱序问题&#xff0c;分析了Flink SQL中Changelog事件乱序问题的原因&#xff0c;并提供了解决方案以及处理Changelog事件乱序的建议。以帮助您更好地理解Changelog的概念和应用&#xff0c;更加高效地使用Flink SQL进行实时数据…

HTML CSS

目录 1. 什么是HTML 2. 什么是CSS ? 3. 基础标签 & 样式 3.1 新浪新闻-标题实现 3.1.1 标题排版 3.1.1.1 分析 3.1.1.2 标签 3.1.1.3 实现 3.1.2 标题样式 3.1.2.1 CSS引入方式 3.1.2.2 颜色表示 3.1.2.3 标题字体颜色 3.1.2.4 CSS选择器 3.1.2.5 发布时间字…

Open3D(C++) 基于法线微分的点云分割

目录 一、算法原理二、代码实现三、结果展示1、原始点云2、分割结果本文由CSDN点云侠原创,原文链接,首发于:2024年11月1日。 一、算法原理 使用C++版本Open3D复现的PCL里边基于法线微分的分割算法。PCL 基于法线微分(DoN)的点云分割【2024最新版】。网上有大量相关算法介…

Xcode 15.4 运行flutter项目,看不到报错信息详情?

Xcode升级后&#xff0c;遇到了奇怪的事情&#xff1a; 运行flutter项目&#xff0c;左侧栏显示有报错信息&#xff0c;但是点击并没有跳转出具体的error详情。【之前都会自己跳转出来的&#xff0c;升级后真的是无厘头】 方案&#xff1a; 点击左侧导航栏最右边的图标——>…

Java基础(8)异常

目录 1.前言 2.正文 2.1异常的引入 2.2异常的类型 2.2.1编译时异常 2.2.2运行时异常 2.3区分Exception与Error 2.4异常的声明&#xff0c;抛出与捕获 2.4.1throw 2.4.2throws 2.4.2try-catch与finally 2.6自定义异常 3.小结 1.前言 哈喽大家好啊&#xff0c;Java…

解决rabbitmq-plugins enable rabbitmq_delayed_message_exchange :plugins_not_found

问题&#xff1a;我是在docker-compose环境部署的 services:rabbitmq:image: rabbitmq:4.0-managementrestart: alwayscontainer_name: rabbitmqports:- 5672:5672- 15672:15672environment:RABBITMQ_DEFAULT_USER: rabbitRABBITMQ_DEFAULT_PASS: 123456volumes:- ./rabbitmq/…

JavaScript语法基础——变量,数据类型,运算符和程序控制语句(小白友好篇,手把手教你学会!)

一、JavaScript概述 JavaScript是一种高级编程语言&#xff0c;常用于网页开发和服务器端应用程序。它是一种动态类型语言&#xff0c;可以在浏览器中直接解释执行&#xff0c;而不需要编译。 脚本&#xff08;Script&#xff09;是一种与计算机程序相关的指令集或代码块&…

Android 中View.post的用法

View.post 是 Android 中 View 类的一个方法&#xff0c;它允许我们在视图 (View) 完成其布局 (Layout) 阶段后&#xff0c;将一个任务放到主线程的消息队列中&#xff0c;以便稍后执行。这种方式通常用于确保在 View 的尺寸、位置等布局属性已经计算完成后执行某些操作。 基本…