在云主机上调用docker-compose脚本:
version: '3'
services:
zookeeper:
image: zookeeper
ports:
- "2182:2181"
networks:
- hbl_net
kafka:
image: wurstmeister/kafka
depends_on:
- zookeeper
links:
- zookeeper
networks:
- hbl_net
ports:
- "9095:9092"
environment:
KAFKA_BROKER_ID: 5
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://124.70.146.126:9095 #宿主机监听端口
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
hbl_net:
driver: bridge # 生成一个桥接网络,用于容器内部通信,注意实际生成的网络名称会带有docker-compose.yml文件所在文件夹的前缀,比如我的.yml文件放在了hbl文件夹下,所以执行后生>成的网络名为hbl_hbl_net
# external: true 如果外部已有网络就用这个配置
go mod里面指定版本:require github.com/Shopify/sarama v1.19.0
版本高了Windows用不了
生产者代码:
package main
import (
"fmt"
"github.com/Shopify/sarama"
)
func main() {
producer_test()
}
func producer_test() {
fmt.Printf("producer_test\n")
config := sarama.NewConfig()
config.Producer.RequiredAcks = sarama.WaitForAll
config.Producer.Partitioner = sarama.NewRandomPartitioner
config.Producer.Return.Successes = true
config