etcd安装
Etcd 安装配置
etcd 是一个分布式、高可用的一致性键值存储系统,提供可靠的分布式键值存储、配置共享和服务发现等功能。
etcd 可以用于存储关键数据和实现分布式调度,在现代化的集群运行中能够起到关键性的作用。
etcd 安装配置都非常简单,可以安装在大多数主流平台,比如 Linux、Windows、MacOS等。
1. Linux 安装 etcd
Linux 安装 etcd 有三种方式:yum安装、二进制安装和源码安装。
1.1 yum 安装
在 shell 中执行安装命令。
yum -y install etcd
执行结果:
Downloading packages:
etcd-3.3.11-2.el7.centos.x86_64.rpm | 10 MB 00:00:07
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : etcd-3.3.11-2.el7.centos.x86_64 1/1
验证中 : etcd-3.3.11-2.el7.centos.x86_64 1/1
已安装:
etcd.x86_64 0:3.3.11-2.el7.centos
完毕!
可执行文件 etcd 和 管理工具 etcdctl 均被安装在 /usr/bin 下。
配置文件位于 /etc/etcd/etcd.conf,我们可以使用 vi 进行编辑。
默认的工作目录位于 /var/lib/etcd。
设置 etcd 为系统服务:
$ systemctl enable etcd
启动运行 etcd:
$ systemctl start etcd
1.2 二进制安装
到 etcd 的 github 地址,下载二进制安装包。
etcd 下载地址:https://github.com/etcd-io/etcd/releases/。
以 etcd3.3.1 为例:
wget https://github.com/etcd-io/etcd/releases/download/v3.3.1/etcd-v3.3.1-linux-amd64.tar.gz
如果 github 速度慢,可以使用华为镜像, 下载地址:https://mirrors.huaweicloud.com/etcd/。
wget https://mirrors.huaweicloud.com/etcd/v3.3.1/etcd-v3.3.1-linux-amd64.tar.gz
tar 包解压后,里面包含可执行文件 etcd 和 管理工具 etcdctl :
tar zxvf etcd-v3.3.1-linux-amd64.tar.gz
将 etcd、etcdctl 复制到 /usr/bin 下。然后创建工作目录,编写配置文件 etcd.conf.yaml。
mkdir /var/lib/etcd
cd /var/lib/etcd
vi etcd.conf.yaml
例如配置文件内容如下:
name: "etcd-node"
data-dir: "/var/lib/etcd"
listen-peer-urls: "http://0.0.0.0:2380"
listen-client-urls: "http://0.0.0.0:2379"
advertise-client-urls: "http://127.0.0.1:2379"
启动运行 etcd:
$ nohup etcd --config-file=/var/lib/etcd/etcd.conf.yaml &
1.3 测试验证
查看版本:
etcdctl version
Elasticsearch安装
Elaticsearch,简称为 ES, ES 是一个开源的高扩展的分布式全文搜索引擎,是整个 Elastic Stack 技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据。
Elasticsearch是一个分布式、可扩展、近实时的高性能搜索与数据分析引擎。Elasticsearch基于Apache Lucene构建,采用Java编写,并使用Lucene构建索引、提供搜索功能。Elasticsearch的目标是让全文搜索功能的落地变得简单。
使用 docker-compose 构建es集群环境
version: '3'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02
- cluster.initial_master_nodes=es01,es02
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- esnet
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01
- cluster.initial_master_nodes=es01,es02
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata02:/usr/share/elasticsearch/data
networks:
- esnet
volumes:
esdata01:
esdata02:
networks:
esnet:
driver: bridge
Kafka安装
kafka是一款分布式的基于发布/订阅模式的消息队列,是目前比较主流的消息中间件。
version: "3"
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
hostname: kafka
ports:
- "19004:19004"
- "9092:9092"
environment:
TZ: CST-8
KAFKA_BROKER_ID: 3
KAFKA_ADVERTISED_HOST_NAME: kafka
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENERS: INSIDE://:9092,OUTSIDE://:19004
KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9092,OUTSIDE://120.79.75.117:19004
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
volumes:
- /var/run/docker.sock:/var/run/docker.sock
links:
- zookeeper