关键词:
选型
确定 Dubbo 3 + ectd 3 的方案了。先单机部署,再集群。
下载 etcd 二进制可执行文件
到 release 查找自己需要的版本。
# 下载
cd /data/etcd/
wget https://github.com/coreos/etcd/releases/download/v$ETCD_VERSION/etcd-v$ETCD_VERSION-linux-amd64.tar.gz
# 解压
tar xvf etcd-v$ETCD_VERSION-linux-amd64.tar.gz
# 复制到/usr/local/bin/下,默认已经有可执行权限了,无需在使用chmod +x。
mv etcd-v$VER-linux-amd64/etcd* /usr/local/bin/
# 或者通过 yum 安装也行
yum install -y etcd
如果是上传 etcd 可执行文件,提示“权限不够”?改下:chmod 777 etcd
使用 etcd
测试下:./etcd --version
,没问题后运行。
etcdctl 是官方提供的客户端程序,我们测试下(最好可以在别的机器上测试)。
# 验证服务状态
./etcdctl --endpoints=http://$YOUR ETCD IP:2379 endpoint health
输出结果:
写入键值对:
./etcdctl --endpoints=localhost:2379 put foo "Hello World!"
如果出现 bash: !": event not found
,可执行:set +H
。
配置
开放防火墙端口
CentOS 6.7 下修改 /etc/sysconfig/iptables
文件,加入 2379
端口和 2380
端口(用于集群通讯)。全部修改完之后重启 iptables:service iptables restart
。你可以验证一下是否规则都已经生效:iptables -L
。
开启远程访问
etcd 安装完成后,默认只能本地访问,如果需要开启远程访问,还需要修改配置文件。我使用的当前文件夹下的配置文件 etcd.conf
,内容如下。
"listen-client-urls":"http://0.0.0.0:2379"
带配置文件启动 etcd:
./etcd --config-file=etcd.conf
nohup ./etcd --config-file=etcd.conf &
与 Dubbo 搭配
笔者开始使用 Dubbo 最新版本 3.0.9,但官方的 etcd 注册中心的驱动一直没有升级,仍在 2.x 时代,于是我只好降级使用 2.7.16。
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.16</version>
</dependency>
尽管上述 dubbo 依赖已经包含了 etcd 驱动的类,但缺少 etcd 与 Java 通讯的包,增加下面依赖:
<!-- etcd 注册中心驱动 -->
<dependency>
<groupId>io.etcd</groupId>
<artifactId>jetcd-core</artifactId>
<version>0.7.1</version>
</dependency>
<!-- etcd 注册中心驱动依赖 -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.5.1</version>
</dependency>
连不上 etcd 怎办办?检查防火墙、是否开启远程等的操作,试试把官方 github 的单测EtcdServiceDiscoveryTest
在本地改你 etcd 地址试试。Web 程序启动的时候同时启动 Dubbo 服务端,会比平时启动的时间久一点。
小结
下面是关于 Dubbo + etcd 重量级的文章,之所以说“重量级”,是因为内容太深了,看不懂,只能于此备份一下。
dubbo+etcd搭配(代码片段)
选型确定Dubbo3+ectd3的方案了。先单机部署,再集群。下载etcd二进制可执行文件到release查找自己需要的版本。#下载cd/data/etcd/wgethttps://github.com/coreos/etcd/releases/download/v$ETCD_VERSION/etcd-v$ETCD_VERSION-linux-amd64.tar.gz#解压tarxvfetcd-v$ET... 查看详情
dubbo与springboot的搭配使用
1.版本匹配问题dubbo官网上是有说明的,也有具体的例子。https://github.com/apache/incubator-dubbo-spring-boot-project1.x版本的springboot需要对应0.1版本的dubbo-spring-boot-starter跟较低版本的dubbo。2.x版本的springboot对应0.2版本的dubbo-spring-boot-star 查看详情
2.etcd集群的安装(cfssl版)(代码片段)
etcd的安装注意两点1.systemd的配置文件 2.证书1.解决systemd的问题,想安装指定版本的etcd可以通过yum方式安装etcd可以获得systemc和etcd.conf的模板。[[email protected]etcd-v3.3.13-linux-amd64]#rpm-qletcd/etc/etcd/etc/etcd/etcd.conf/usr/ 查看详情
搭建etcd集群(代码片段)
最近分布式项目开发中用到订阅/通知机制,经过选型决定采用etcd,在调研etcd使用方式、订阅/通知方案过程中遇到很多问题,这里做下简单记录。本系列总共3篇:《搭建etcd集群》:介绍搭建etcd集群方式... 查看详情
etcd原理(代码片段)
etcd简介ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统。它是一个优秀的高可用分布式键值对存储数据库。etcd内部采用了Raft协议作为一致性算法,且使用Go实现。ETCD作为一个受到ZooKeeper与docker启发而催生... 查看详情
云原生训练营模块五kubernetes控制平面组件:etcd(代码片段)
etcd----------Part1----------etcd概述etcd功能与场景服务注册与发现,消息发布与订阅Etcd的安装etcd工具练习Raft协议❤etcd基于Raft的一致性选举方法日志复制安全性失效处理wal日志----------Part2----------etcdv3存储,Watch以及过期机制... 查看详情
云原生训练营模块五kubernetes控制平面组件:etcd(代码片段)
etcd----------Part1----------etcd概述etcd功能与场景服务注册与发现,消息发布与订阅Etcd的安装etcd工具练习Raft协议❤etcd基于Raft的一致性选举方法日志复制安全性失效处理wal日志----------Part2----------etcdv3存储,Watch以及过期机制... 查看详情
go任务调度5(go操作etcd)(代码片段)
连接etcd:packagemainimport("fmt""go.etcd.io/etcd/clientv3""time")var(configclientv3.Configclient*clientv3.Clienterrerror)funcmain()//客户端配置config=clientv3.ConfigEndpoints:[]string"0.0.0.0:2379",//集群列 查看详情
golang基于etcd做分布式任务锁(代码片段)
参考:https://www.jianshu.com/p/d7434d916856etcd服务搭建请看上一篇,下面直接上代码:#goget github.com/etcd-io/etcdmain.go内容如下:packagemainimport("context""fmt""time"//"github.com/etcd-io/etcd/clientv3"这个引用会导致启动失败"go.e 查看详情
编译etcd-cpp-apiv3(代码片段)
最近分布式项目开发中用到订阅/通知机制,经过选型决定采用etcd,在调研etcd使用方式、订阅/通知方案过程中遇到很多问题,这里做下简单记录。本系列总共3篇:《搭建etcd集群》:介绍搭建etcd集群方式... 查看详情
k8s部署etcd集群(代码片段)
1、k8s部署高可用etcd集群时遇到了一些麻烦,这个是自己其中一个etcd的配置文件例如:[Unit]Description=EtcdServerAfter=network.targetAfter=network-online.targetWants=network-online.targetDocumentation=https://github.com/coreos[Service]User 查看详情
shinstall-etcd-3.2.9.sh(代码片段)
shinstall-etcd-3.2.9.sh(代码片段)
搭建etcd集群(代码片段)
最近分布式项目开发中用到订阅/通知机制,经过选型决定采用etcd,在调研etcd使用方式、订阅/通知方案过程中遇到很多问题,这里做下简单记录。本系列总共3篇:《搭建etcd集群》:介绍搭建etcd集群方式... 查看详情
etcd-cpp-apiv3使用示例介绍(代码片段)
最近分布式项目开发中用到订阅/通知机制,经过选型决定采用etcd,在调研etcd使用方式、订阅/通知方案过程中遇到很多问题,这里做下简单记录。本系列总共3篇:《搭建etcd集群》:介绍搭建etcd集群方式... 查看详情
prometheus-prometheus-opterator中添加监控etcd集群(代码片段)
一、环境声明kubeadmkubernetes1.15etcd也是集群内pod部署方式,自带metrics接口Prometheus-Operator二、监控etcd集群2.1、查看接口信息#https #curl--cert/etc/kubernetes/pki/etcd/server.crt--key/etc/kubernetes/pki/etcd/server.keyhttps://127.0 查看详情
读取k8s存储在etcd上的数据(代码片段)
读取k8s存储在etcd上的数据EtcdAssistant是一款Etcd可视化管理工具,便捷高效地操作您的etcd集群;支持多种键的视图;管理租约、用户、角色和权限。etcd是一个分布式KV存储系统,在分布式系统中被广泛使用,Kubernetes就是使用了etcd... 查看详情