CentOS install etcd 测试

简介: 1,关于etcdetcd是一个类似于zookeeper的,服务发现工具。 参考简介: http://dockone.io/article/667 https://coreos.com/blog/performance-of-etcd.html etcd性能对比:2,搭建环境在linux 下面:安装最新的3.1.1https://github.com/c

1,关于etcd


etcd是一个类似于zookeeper的,服务发现工具。
参考简介:
http://dockone.io/article/667
https://coreos.com/blog/performance-of-etcd.html
etcd性能对比:

2,搭建环境


在linux 下面:安装最新的3.1.1

https://github.com/coreos/etcd/releases/download/v3.1.1/etcd-v3.1.1-linux-amd64.tar.gz

解压缩。直接启动。
./etcd version
./etcd
我使用的是virtualbox安装的,因为是虚拟机。所以使用了NAT的网络。远程访问做了一个端口转发。

同时启动一个etcd需要绑定到ip 10.0.2.15 ,默认启动之后是绑定到了127.0.0.1这个ip。

./etcd --name test-etcd --advertise-client-urls http://10.0.2.15:2379 --listen-client-urls http://10.0.2.15:2379

不知道为啥要使用两次命令,没有直接叫 addr 的参数。
etcd 目前默认使用 2379 端口提供 HTTP API 服务,2380 端口和 peer 通信。

3,使用java客户端连接


https://github.com/coreos/jetcd
下载lib库。依赖google的 grpc,protobuf。
maven 下载比较慢,可以使用ali的镜像。

java代码:

import com.coreos.jetcd.EtcdClient;
import com.coreos.jetcd.EtcdClientBuilder;
import com.coreos.jetcd.EtcdKV;
import com.coreos.jetcd.api.KeyValue;
import com.coreos.jetcd.api.RangeResponse;
import com.coreos.jetcd.exception.AuthFailedException;
import com.coreos.jetcd.exception.ConnectException;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.protobuf.ByteString;

import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.concurrent.ExecutionException;

/**
 */
public class TestJetcd {
    public static void main(String[] args) throws ExecutionException, InterruptedException, UnsupportedEncodingException, AuthFailedException, ConnectException {
        EtcdClient client = EtcdClientBuilder.newBuilder().endpoints("http://localhost:2379").build();
        EtcdKV kvClient = client.getKVClient();

        System.out.println(kvClient);

        ByteString key = ByteString.copyFrom("test_key", "UTF-8");
        ByteString value = ByteString.copyFrom("test_value", "UTF-8");
//        System.out.println(kvClient.get(key).get());


        // put the key-value
        kvClient.put(key, value).get();
        //
        List<KeyValue> list = kvClient.get(key).get().getKvsList();
        //循环显示所有数据。
        for (KeyValue keyValue : list) {
            //转换成utf-8 项目。
            String tmpKey = keyValue.getKey().toStringUtf8();
            System.out.println("key : " + tmpKey);
            String tmpVal = keyValue.getValue().toStringUtf8();
            System.out.println("value : " + tmpVal);
            System.out.println("version : " + keyValue.getVersion());
        }

        // delete the key
        //kvClient.delete(key).get();
    }
}

4,报错


Exception in thread "main" java.util.concurrent.ExecutionException: io.grpc.StatusRuntimeException: UNAVAILABLE
    at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:476)
    at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:455)

有的时候会这样报错。就得检查下etcd服务启动没有。
看看virtualbox的端口通不通。
或者直接用http访问就行。
http://127.0.0.1:2379/version

就是一个http调用。
其他命令参考:
http://cizixs.com/2016/08/02/intro-to-etcd
这个哥们写的挺全的。

5,总结


本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/56276386 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

etcd 的性能还是非常的强悍的。
java的客户端使用的是grpc进行通信的。

目录
相关文章
|
5月前
|
Kubernetes Linux API
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
该博客文章详细介绍了在CentOS 7.6操作系统上使用kubeadm工具部署kubernetes 1.17.2版本的测试集群的过程,包括主机环境准备、安装Docker、配置kubelet、初始化集群、添加节点、部署网络插件以及配置k8s node节点管理api server服务器。
212 0
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
|
5月前
|
安全 测试技术 Linux
CentOS7 安装vulhub漏洞测试环境
CentOS7 安装vulhub漏洞测试环境
175 0
|
5月前
|
Linux Shell Python
centos执行pip3 install etcd3报错
centos执行pip3 install etcd3报错
|
5月前
|
Linux
centos 安装etcd|待优化
centos 安装etcd|待优化
|
8月前
|
Linux 测试技术 开发工具
CentOS Linux 8使用阿里源(安装jdk11、git测试)
CentOS Linux 8使用阿里源(安装jdk11、git测试)
730 1
|
7月前
|
关系型数据库 MySQL Linux
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
|
9月前
|
网络安全 Docker 容器
测试开发环境下centos7.9下安装docker的minio
测试开发环境下centos7.9下安装docker的minio
346 1
|
9月前
|
Linux 测试技术 数据安全/隐私保护
CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台
CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台
|
9月前
|
存储 Kubernetes Cloud Native
云原生|kubernetes|centos7下的kubeadm部署的集群内在线部署kubesphere(外部etcd)
云原生|kubernetes|centos7下的kubeadm部署的集群内在线部署kubesphere(外部etcd)
140 0
|
9月前
|
Linux 数据库 数据安全/隐私保护
猿创征文|Linux centos7下利用docker快速部署SQLserver测试学习环境
猿创征文|Linux centos7下利用docker快速部署SQLserver测试学习环境
256 0

热门文章

最新文章

  • 1
    小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
  • 2
    3天功能开发→3小时:通义灵码2.0+DEEPSEEK实测报告,单元测试生成准确率92%的秘密
  • 3
    Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
  • 4
    基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
  • 5
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 6
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
  • 7
    「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
  • 8
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
  • 9
    AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架
  • 10
    Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描