1.zookeeper的安装
这里使用3.6.4版本
条件:服务器已经安装了jdk,zookeeper运行必要jdk环境
1.1创建放zookeeper的目录
- #创建目录
- mkdir -p /usr/local/zookeeper
- #赋予权限
- chmod 777 /usr/local/zookeeper
复制代码 1.2安装包的下载
- #这里推荐去官网下载
- https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.4/apache-zookeeper-3.6.4-bin.tar.gz
复制代码 1.3放置安装包并解压
- #切换到创建的目录
- cd /usr/local/zookeeper
- #将下载的包放在该目录
- #解压该目录
- tar -zxvf apache-zookeeper-3.6.4-bin.tar.gz
- #重命名
- mv apache-zookeeper-3.6.4-bin zookeeper-3.6.4
复制代码 1.4修改配置文件
- #进入配置文件目录
- cd /usr/local/zookeeper/zookeeper-3.6.4/conf
- #复制原有的配置文件并改名
- cp zoo_sample.cfg zoo.cfg
- #修改配置文件
- vim zoo.cfg
- #内容如下:
- # 数据文件夹
- dataDir=/usr/local/zookeeper/zookeeper-3.6.4/data
-
- # 日志文件夹
- dataLogDir=/usr/local/zookeeper/zookeeper-3.6.4/logs
- # 客户端访问 zookeeper 的端口号
- clientPort=2181
- #退出保存zoo.cfg
- :wq
复制代码 1.5添加环境变量
- #编辑环境变量文件
- vim /etc/profile
- #尾部添加如下内容
- export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.6.4/
- export PATH=$ZOOKEEPER_HOME/bin:$PATH
- export PATH
- #退出保存
- :wq
- #重新执行一下
- source /etc/profile
复制代码 1.6测试zookeeper启动
- #进入bin目录
- cd /usr/local/zookeeper/zookeeper-3.6.4/bin
- #启动服务
- zkServer.sh start
- ZooKeeper JMX enabled by default
- Using config: /usr/local/zookeeper/zookeeper-3.6.4/bin/../conf/zoo.cfg
- Starting zookeeper ... STARTED
- 出现这个就是成功了
- #查看状态
- zkServer.sh status
- #关闭服务
- zkServer.sh stop
- #重启服务
- zkServer.sh restart
复制代码 2.kafka的安装
2.1下载kafka
下载地点:Apache Kafka
这里两个,第一个带源码我们可以下载下来检察对应的zookeeper版本
解压后的gradle/dependencies.gradle文件里面有zookeeper版本号
2.2创建目录
- mkdir -p /opt/kafka #y用于存放kafka的解压包
- mkdir -p /opt/kafka/kafka_data #用于存放kafka的数据
- mkdir -p /opt/kafka/kafka_log #用于存放kafka的日志
复制代码 2.3将kafka解压
将下载的kafka放在/opt/kafka下
- #解压
- tar -zxvf kafka_2.12-3.4.1.tgz
复制代码 2.4配置kafka服务
- cd /opt/kafka/kafka_2.12-3.4.1/config
- vim server.properties
- #修改一下参数
- broker.id=0
- #端口号
- port=9092
- #服务器IP地址,修改为自己的服务器IP
- host.name=localhost
- #日志存放路径,上面创建的目录
- log.dirs=/opt/kafka/kafka_log
- #zookeeper地址和端口,单机配置部署,localhost:2181
- zookeeper.connect=localhost:2181
复制代码 2.5启动kafka
- /opt/kafka/kafka_2.12-3.4.1/bin/kafka-server-start.sh /opt/kafka/kafka_2.12-3.4.1/config/server.properties
复制代码 2.6测试
条件开启两个终端,一个生产者,一个消耗者
2.6.1生产者
- cd /opt/kafka/kafka_2.12-3.4.1/bin
- ./kafka-console-producer.sh --broker-list localhost:9092 --topic test
复制代码 2.6.2消耗者
- cd /opt/kafka/kafka_2.12-3.4.1/bin
- ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test
复制代码 3.脚本设计
上面都是手动启动,这里可以考虑写一个脚本,自动去启动
3.1启动脚本
- cd /opt/kafka/kafka_2.12-3.4.1/binvim kafka_start.sh#内容如下:#!/bin/bash#echo "启动zookeeper服务..."sh /usr/local/zookeeper/zookeeper-3.6.4/bin/zkServer.sh startsleep 5echo "启动kafka服务..."/opt/kafka/kafka_2.12-3.4.1/bin/kafka-server-start.sh /opt/kafka/kafka_2.12-3.4.1/config/server.properties
- &i
复制代码 3.2关闭脚本
- cd /opt/kafka/kafka_2.12-3.4.1/bin
- vim kafka_stop.sh
- #内容如下:
- #!/bin/bash
- echo "启动zookeeper服务..."
- sh /usr/local/zookeeper/zookeeper-3.6.4/bin/zkServer.sh stop
- sleep 5
- echo "启动kafka服务..."
- /opt/kafka/kafka_2.12-3.4.1/bin/kafka-server-stop.sh /opt/kafka/kafka_2.12-3.4.1/config/server.properties
复制代码 3.3给脚本赋予权限
- chmod +x kafka_start.sh
-
- chmod +x kafka_stop.sh
复制代码 3.4设置开机自启
- vi /etc/rc.d/rc.local #编辑,在最后添加一行
- sh /opt/kafka/kafka_2.12-3.4.1/kafka_start.sh & #设置开机自动在后台运行脚本
复制代码 4.内网穿透
在kafka的配置文件server.properties里面设置如下
- ############################# Socket Server Settings #############################
- # The address the socket server listens on. It will get the value returned from
- # java.net.InetAddress.getCanonicalHostName() if not configured.
- # FORMAT:
- # listeners = listener_name://host_name:port
- # EXAMPLE:
- # listeners = PLAINTEXT://your.host.name:9092
- #listeners=PLAINTEXT://:9092
- listeners=PRIVATE://0.0.0.0:9093,PUBLIC://0.0.0.0:9092
- auto.create.topics.enable=true
- # Hostname and port the broker will advertise to producers and consumers. If not set,
- # it uses the value for "listeners" if configured. Otherwise, it will use the value
- # returned from java.net.InetAddress.getCanonicalHostName().
- #advertised.listeners=PLAINTEXT://your.host.name:9092
- #修改为外网ip
- advertised.listeners=PRIVATE://192.168.150.203:9093,PUBLIC://10.140.211.88:9092
- inter.broker.listener.name=PRIVATE
- listener.security.protocol.map=PRIVATE:PLAINTEXT,PUBLIC:PLAINTEXT
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |