文章目录
前言
docker下安装 redis,zookeeper,kafka
daa489fe-404e-4e70-9ab4-81c8850c6da5
var code = "daa489fe-404e-4e70-9ab4-81c8850c6da5"
一、redis
Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。。
1.redis----安装脚本
#!/bin/bash
# nexus3 搭建脚本
#搜索 gitlab
docker search redis
# 官方镜像
docker pull redis:latest
mkdir /data/redis
mkdir /data/redis/data
#创建nexus3映射文件夹
mkdir -p /usr/local/docker/redis/data
mkdir -p /usr/local/docker/redis/config
# 增加权限
chown -R 777 /usr/local/docker/redis/data
chown -R 777 /usr/local/docker/redis/config
# --name 容器名
# -p 端口映射
# -v 容器卷映射
# --restart=always 设置随docker自启动
# -d 后台运行
# --appendonly 开启持久化
# --privileged=true 使容器内的root拥有真正root权限
# --requirepass root 设置redis-cli的密码root
docker run -d \
--restart=always \
--name redis \
--privileged=true \
-p 6379:6379 \
-v /usr/local/docker/redis/config:/etc/redis \
-v /usr/local/docker/redis/data:/data \
redis:latest redis-server /etc/redis/redis.conf \
--appendonly yes
2.redis配置文件修改 —redis.conf
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
databases 16 #数据库个数(可选
dir ./ #输入本地redis数据库存放文件夹(可选)
appendonly yes #redis持久化(可选,命令中已经配置)
requirepass 123456 #redis 修改密码
二、zookeeper
ZooKeeper 是一个集中式服务,用于维护配置信息、命名、提供分布式同步和提供组服务。所有这些类型的服务都以某种形式被分布式应用所使用。每次实现这些服务时,都会有大量的工作要去修复不可避免的bug和竞赛条件。由于实现这类服务的困难,应用程序最初通常会吝啬它们,这使得它们在变化面前变得脆弱,难以管理。即使做得正确,这些服务的不同实现也会导致应用部署时的管理复杂性。
1.zookeeper---- docker安装脚本
#!/bin/bash
# zookeeper 搭建脚本
#搜索 zookeeper
docker search zookeeper
# 官方镜像
docker pull zookeeper:latest
#创建nexus3映射文件夹
mkdir -p /usr/local/docker/zookeeper/data/
# 增加权限
chown -R 777 /usr/local/docker/zookeeper/data/
# --name 容器名
# -p 端口映射
# -v 容器卷映射
# --restart=always 设置随docker自启动
# -d 后台运行
# --appendonly 开启持久化
# --privileged=true 使容器内的root拥有真正root权限
# --requirepass root 设置redis-cli的密码root
docker run -d \
--restart=always \
--name zookeeper \
--privileged=true \
-p 2181:2181 \
--network=host \
wurstmeister/zookeeper
2. Apache Curator与zookeeper版本兼容性问题
最新版本的 Curator 已删除对zookeeper3.4.X的支持
引用 curator 注意要排除 ZooKeeper
//maven
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.2.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
//gradle
compile('org.apache.curator:curator-recipes:$curatorVersion') {
exclude group: 'org.apache.zookeeper', module: 'zookeeper'
}
二、kafka
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据
1.Kafka---- docker安装脚本
#!/bin/bash
# kafka 搭建脚本
#搜索 kafka
docker search kafka
# 官方镜像
docker pull wurstmeister/kafka
# --name 容器名
# -p 端口映射
# -v 容器卷映射
# --restart=always 设置随docker自启动
# -d 后台运行
docker run -d \
--restart=always \
--name kafka \
--privileged=true \
--env KAFKA_ADVERTISED_HOST_NAME=localhost \
-e KAFKA_ZOOKEEPER_CONNECT=192.168.64.88:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.64.88:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-e KAFKA_HEAP_OPTS="-Xmx256M -Xms128M" \
-p 9092:9092 \
wurstmeister/kafka
# kafka管理平台
docker pull sheepkiller/kafka-manager
docker run -d \
-it \
--rm \
-p 9000:9000 \
-e ZK_HOSTS="192.168.66.66:2181" \
--net=host \
sheepkiller/kafka-manager