goim(1):学习goim ,使用docker安装kafka 镜像

来源:互联网 发布:南方全站仪取数据 编辑:程序博客网 时间:2024/06/10 20:05

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

1,关于kafka


goim 是一个golang 写的聊天系统,使用了kafka的中间件。

2,使用docker构建kafka


下载kafka 文件夹

#!/bin/shVERSION=1.0.0KAFKA_VERSION=2.11-${VERSION}KAFKA=kafka_${KAFKA_VERSION}#判断文件夹存在不。if [ ! -d "kafka" ]; then    echo "kafka init start."    #判断文件不存在,就下载。    if [ ! -f "${KAFKA}.tgz" ]; then        wget http://mirror.bit.edu.cn/apache/kafka/${VERSION}/${KAFKA}.tgz    fi    tar -zxvf ${KAFKA}.tgz    cd ${KAFKA}    rm -f LICENSE NOTICE    rm -rf bin/windows/ site-docs/    #重命名文件夹。    cd ..    mv ${KAFKA} kafka    echo "kafka init finish ."else  echo "kafka exists."fi

然后构建dockerfile

FROM docker.io/java:8-jdk-alpineRUN echo -e "http://mirrors.aliyun.com/alpine/latest-stable/main\n\http://mirrors.aliyun.com/alpine/latest-stable/community" > /etc/apk/repositories#set timezoneRUN apk update && apk add tzdata bash curl && \    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \    echo "Asia/Shanghai" > /etc/timezone && \    rm -rf /root/.cacheCOPY kafka/ /opt/kafkaEXPOSE 9092 2181VOLUME ["/data"]COPY entrypoint.sh /entrypoint.shWORKDIR /opt/kafkaENTRYPOINT ["/entrypoint.sh"]

设置启动脚本:entrypoint.sh

#!/bin/shulimit -n 8192set -emkdir -p /data/zookeepermkdir -p /data/kafkased -i "s/\/tmp\/kafka-logs/\/data\/kafka/g" "/opt/kafka/config/server.properties"sed -i "s/\/tmp\/zookeeper/\/data\/zookeeper/g" "/opt/kafka/config/zookeeper.properties"echo "start zookeeper ."sh /opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.propertiessleep 10echo "start kafka ."sh /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

替换了 zookeeper 和 kafka的 存储目录。
其中 /data 是存储卷。

docker build -t demo/goim-kafka:latest .docker run -itd --name goim-kafka demo/goim-kafka:latestdocker exec -it goim-kafka bash

3,启动


进入之后设置了主目录 /opt/kafka

启动之后测试kafka 能工作不。
参考:
https://kafka.apache.org/quickstart

创建一个 test的 topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testbin/kafka-topics.sh --list --zookeeper localhost:2181
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testThis is a messageThis is another message bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginningThis is a messageThis is another message

打开两个终端,一个可以发送消息,一个可以接收消息了。

4,总结


kafka是非常好的消息队列,速度非常快。
将kafka封装成docker镜像之后更方便了。

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

原创粉丝点击