docker 安装kafka_实操docker搭建kafka集群及与PHP的整合

1 kafka场景

场景:

(1)消息系统。Kafka作为一款优秀的消息系统,具有高吞吐量、内置的分区、备份冗余分布式等特点,为大规模消息处理提供了一种很好的解决方案。

(2)应用监控。利用Kafka采集应用程序和服务器健康相关的指标,如CPU占用率、IO、内存、连接数、TPS、QPS等,然后将指标信息进行处理,从而构建一个具有监控仪表盘、曲线图等可视化监控系统。例如,很多公司采用Kafka与ELK(ElasticSearch、Logstash和Kibana)整合构建应用服务监控系统。

(3)网站用户行为追踪。为了更好地了解用户行为、操作习惯,改善用户体验,进而对产品升级改进,将用户操作轨迹、内容等信息发送到Kafka集群上,通过Hadoop、Spark或Strom等进行数据分析处理,生成相应的统计报告,为推荐系统推荐对象建模提供数据源,进而为每个用户进行个性化推荐。

(4)流处理。需要将已收集的流数据提供给其他流式计算框架进行处理,用Kafka收集流数据是一个不错的选择,而且当前版本的Kafka提供了Kafka Streams支持对流数据的处理。

(5)持久性日志。Kafka可以为外部系统提供一种持久性日志的分布式系统。日志可以在多个节点间进行备份,Kafka为故障节点数据恢复提供了一种重新同步的机制。同时,Kafka很方便与HDFS和Flume进行整合,这样就方便将Kafka采集的数据持久化到其他外部系统。

更多的场景主要是用来做日志分析系统,除了日志,网站的一些浏览数据应该也适用。(只要原始数据不需要直接存DB的都可以)

使用kafka的核心理由:分布式,高吞吐量,速度快(kafka是直接通过磁盘存储,线性读写,速度快)

2 kafka集群安装

部署分析:机器IP:192.168.188.130

需要装的docker容器有6个,3个zookeeper容器和3个kafka容器,这里我们装在一台机子上。实际场景中是6台机子。节约的话也至少是3台(每台上1个zookeeper和1个kafka)。

2.1 zookeeper 集群安装

2.1.1 这里用zookeeper

我们这里用zookeeper来做元数据/配置信息管理,具体包括:存储消费偏移量,topic话题信息,partition信息) 这些部分组成,当然zookeeper的功能肯定不止这么多,但我们这里只用到它这个功能

2.1.2 Docker 配置

docker-compose-zookeeper-cluster.yml

fb79327a4be26c686b2a978dea63d02d.png

2.1.3 启动zookeeper集群

docker-compose -f docker-compose-zookeeper-cluster.yml up -d

这样我们就成功安装了有3个zookeeper组成的zookeeper集群。

2.1.4 查看集群

在 ZAB 算法中,存在 Leader、Follower、Observer 三种角色,现在我们就来认识下它们。

分别查看zoo1、zoo2、zoo3角色

05e78b7ec875ccfa9d9bdb6be533e612.png

2.2 kafka安装

Apache Kafka 是一个快速、可扩展的、高吞吐、可容错的分布式发布订阅消息系统。其具有高吞吐量、内置分区、支持数据副本和容错的特性,适合在大规模消息处理场景中使用。

2.2.1 yml文件

docker-compose-kafka-cluster.yml

64b4582b1fcdd87ad10e2e194ea7365a.png

执行以下命令启动

docker-compose -f docker-compose-kafka-cluster.yml up -d

3c8b4fc2e083a4359ecf4bf16fdf9602.png

可以看到 kafka 集群已经启动成功

这样,我们就成功安装了由3个kafka和3个zookeeper组成的kafka集群。并且还安装了kafka集群可视化管理工具:kafka-manager

2.2.2 可视化管理

kafka-manager 模块。它是 kafka 的可视化管理模块。因为kafka 的元数据、配置信息由 Zookeeper 管理,这里我们在 UI 页面做下相关配置。

1. 访问192.168.188.130:9008,按图示添加相关配置

e8ff14548024ca7053413e9f78298e96.png

或者,也可以通过命令行进行相关的操作:

d605d36e3c70fa1df82d2a6cdf6e9d1b.png

3 php整合kafka

3.1 PHP生产端代码:

4b0d9960542816c8a6652cbdc18a1f81.png 

3.2 PHP消费端代码

a3d5c5e71719b060858bd212b2428901.png

bf98e06d58d1c93978372395698b99e8.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装kafka集群需要以下步骤: 1. 安装dockerdocker-compose(如果已经安装可以跳过此步)。 2. 创建一个kafka集群docker-compose.yml文件。该文件包含了kafka集群的配置信息,可以参考以下模板: ```yaml version: '2' services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" kafka1: image: wurstmeister/kafka ports: - "9091:9091" environment: KAFKA_ADVERTISED_HOST_NAME: {kafka1的ip地址} KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_BROKER_ID: 1 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 kafka2: image: wurstmeister/kafka ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: {kafka2的ip地址} KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_BROKER_ID: 2 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 ``` 3. 在命令行中进入到包含docker-compose.yml文件的目录,执行以下命令启动kafka集群: ```bash docker-compose up -d ``` 4. 验证kafka集群是否正常运行。可以通过在kafka1或kafka2容器中执行以下命令来创建一个测试主题: ```bash docker exec -it {kafka容器名称} bash ``` ```bash kafka-topics.sh --create --topic test-topic --partitions 3 --replication-factor 2 --zookeeper zookeeper:2181 ``` ```bash kafka-console-producer.sh --topic test-topic --broker-list kafka1:9091,kafka2:9092 ``` ```bash kafka-console-consumer.sh --topic test-topic --bootstrap-server kafka1:9091,kafka2:9092 --from-beginning ``` 以上命令中,kafka容器名称可以通过docker ps命令查看。 5. 如果测试主题创建并且可以正常发送和接收消息,则说明kafka集群已经成功安装并运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值