type
status
date
slug
summary
tags
category
icon
password
准备深入的学习下kafka,先从搭建一个开发环境,编写一个简单的测试程序开始吧。
搭建Kafka开发环境
使用如下的 Yaml 文件在K8S中搭建一个测试可用的 Kafka 实例。
deployment.yaml
service.yaml
为了方便部署,kafka和zookeeper部署到了同一个pod中,可以直接通过localhost来直接访问。另外需要注意的是
KAFKA_ADVERTISED_LISTENERS
要配置为一个外部可访问的地址,才能在集群外进行访问。这里使用我的机器地址192.168.50.35
,在service.yaml中,同样需要配置上externalIPs:[192.168.50.35]
,这样可以直接使用192.168.50.35:9092
来访问kafka,而无需使用分配的nodePort端口号。代码测试
通过编写一个生产者和消费者,来测试搭建的kafka测试环境是否可用。
编写 Kafka 生产者
使用
gopkg.in/Shopify/sarama.v1
库编写一个Golang版本的消息生产者,用同步模式向web_log
Topic中发送一条this is a test log
的消息。producer.go
代码执行结果:
编写 Kafka 消费者
再基于
gopkg.in/Shopify/sarama.v1
编写一个Golang的同步消费者客户端,客户端中创建了c1
和c2
两个客户端consumer.go
代码执行结果:
Producer 发送到 Kafka 中的消息已被 Consumer 成功接收到。
总结
这里在k8s搭建了一个测试可用的kafka环境,并通过简单的生产者和消费者程序进行了测试,方便之后可以更深入的学习kafka。