zoukankan      html  css  js  c++  java
  • 基于Docker搭建分布式消息队列Kafka

    本文基于Docker搭建一套单节点的Kafka消息队列,Kafka依赖Zookeeper为其管理集群信息,虽然本例不涉及集群,但是该有的组件都还是会有,典型的kafka分布式架构如下图所示。本例搭建的示例包含Zookeeper + Kafka + Kafka-manger

    #获取镜像

    ·         zookeeper镜像:zookeeper:3.4.9

    ·         kafka镜像:wurstmeister/kafka:0.10.2.0

    ·         kafka-manager镜像:kafka-manager:latest

    # 建立Zookeeper容器

    这里我们用最简单的方式创建一个独立的Zookeeper节点,如果要考虑zookeeper的高可用,可以将其做成一个集群,最好是能有多台机器。

    docker run --name some-zookeeper

    --restart always

    -p 2181:2181

    -d zookeeper

    默认的,容器内配置文件在,/conf/zoo.cfg,数据和日志目录默认在/data 和 /datalog,需要的话可以将上述目录映射到宿主机的可靠文件目录下。

    参考:https://hub.docker.com/_/zookeeper/

    # 建立kafka节点

    这里同样只做一个简单的单点kafka

    docker run --name kafka

    -p 9092:9092

    -e KAFKA_ADVERTISED_HOST_NAME=kafka01

    -e KAFKA_CREATE_TOPICS="test:1:1"

    -e KAFKA_ZOOKEEPER_CONNECT=100.100.16.231:2181

    -d  wurstmeister/kafka 

    参考: https://hub.docker.com/r/wurstmeister/kafka/

    # 创建Kafka管理节点

    kafka-manager有图形化UI,可以方便的监控集群状态,调整队列配置

    docker run -itd

    --restart=always

    --name=kafka-manager

    -p 9000:9000

    -e ZK_HOSTS="100.100.16.231:2181"

    sheepkiller/kafka-manager

    容器启动以后访问主机的9000端口,http://xxx:9000

     首次进入需要添加集群

     配置好以后,通过Zookeeper该管理节点可以读取到整个Kafka集群的信息,并且我们可以通过JMX直接看到集群的健康状态

     

    # 读写验证

    读写验证的方法有很多,这里我们用kafka容器自带的工具来验证,首先进入到kafka容器的交互模式:

    docker exec -it kafka /bin/bash

    创建一个主题:

    /opt/kafka/bin/kafka-topics.sh --create --zookeeper 100.100.16.231:2181 --replication-factor 1 --partitions 1 --topic my-test

    查看刚创建的主题:

    /opt/kafka/bin/kafka-topics.sh --list --zookeeper 100.100.16.231:2181

    发送消息:

    /opt/kafka/bin/kafka-console-producer.sh --broker-list  100.100.16.231:9092 --topic my-test

    This is a message

    This is another message

    读取消息:

    /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 100.100.16.231:9092 --topic my-test --from-beginning

    参考:https://kafka.apache.org/quickstart

    HDC.Cloud 华为开发者大会2020 即将于2020年2月11日-12日在深圳举办,是一线开发者学习实践鲲鹏通用计算、昇腾AI计算、数据库、区块链、云原生、5G等ICT开放能力的最佳舞台。

    欢迎报名参会https://www.huaweicloud.com/HDC.Cloud.html?utm_source=&utm_medium=&utm_campaign=&utm_content=techcommunity

  • 相关阅读:
    Visual Studio插件CodeRush全新发布v20.1.5|支持运行设置文件
    DevExpress Data Access v20.1新版亮点:XPO
    VCL界面工具——DevExpress VCL v20.1.3全新发布
    你想要的WinForm界面开发教程在这里
    WPF界面开发技巧你知多少?Data Editors如何实现多选?
    Web开发实用技能,看Kendo UI for jQuery如何导出Excel(一)
    DevExpress XAF框架2020新改变!一篇文章带你看完
    Winforms界面开发新技能——Data Grid
    一招教你如何在WPF界面开发时自定义外观,快来Get!
    完整的jQuery UI组件库:Kendo UI for jQuery发布R2 2020 SP1
  • 原文地址:https://www.cnblogs.com/huaweicloud/p/12229565.html
Copyright © 2011-2022 走看看