前言

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