Kafka日記(六)多節點集羣

前幾篇日記中,都沒有包含服務器集羣方面的內容。

本篇打算圍繞如何做一個分佈式Kafka集羣,具體 有時間更新!

前提是準備三臺虛擬機(我的是centos6.9)192.168.0.3,192.168.0.4,192.168.0.5

開始操作(關於zookeeper kafka rdkafka等安裝編譯此處省略,前篇文章中有,只講解配置)

1.zookeeper

三臺服務器均如下配置

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/opt/zookeeper/zookeeper-3.4.13/data
# the port at which the clients will connect
clientPort=2181
#three servers ip
#server.1 這個1是服務器的標識也可以是其他的數字, 表示這個是第幾號服務器,用來標識服務器,這個標識要寫到快照目錄下面myid文件裏
#192.168.0.3爲集羣裏的IP地址,第一個端口是master和slave之間的通信端口,默認是2888,第二個端口是leader選舉的端口,集羣剛啓動的時候選舉或者leader掛掉之後進行新的選舉的端口默認是3888
server.1=192.168.0.3:2888:3888
server.2=192.168.0.4:2888:3888
server.3=192.168.0.5:2888:3888
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60

然後在dataDir目錄/data/下寫一個myid文件,命令如下:

echo 1 >myid // 192.168.0.3執行

echo 2 >myid // 192.168.0.4執行

echo 3 >myid // 192.168.0.5執行

注意:這個id是zookeeper的主機標示,每個主機id不同第二臺是2 第三臺是3。

依次啓動:bin/zkServer.sh start

2.Kafka(2.1版本,offset存儲在broker中,不在zookeeper中)

三個服務器server.properties分別配置broker.id = 10 11 12

broker.id=10
listeners=PLAINTEXT://192.168.0.3:9092
log.dirs=/tmp/kafka-logs-10
zookeeper.connect=192.168.0.3:2181,192.168.0.4:2181,192.168.0.5:2181

消費者配置consumer.properties

bootstrap.servers=192.168.0.3:9092,192.168.0.4:9092,192.168.0.5:9092

# consumer group id
group.id=test-consumer-group

生產者producer.properties

# list of brokers used for bootstrapping knowledge about the rest of the cluster
# format: host1:port1,host2:port2 ...
bootstrap.servers=192.168.0.3:9092,192.168.0.4:9092,192.168.0.5:9092

# specify the compression codec for all data generated: none, gzip, snappy, lz4, zstd
compression.type=none

依次啓動:

bin/kafka-server.sh config/server.properties &

3.測試

// 在192.168.0.3中創建topic
bin/kafka-topics.sh --create --zookeeper 192.168.0.3:2181 --topic test --replication-factor 3 --partitions 3

// 在192.168.0.3中創建生產者
bin/kafka-console-producer.sh --broker-list 192.168.0.3:9092 --topic test

// 在192.168.0.4 和 192.168.0.5中嘗試消費
bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.4:9092 --topic test --from-beginning

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

結果192.168.0.3生產者生產消息 192.168.0.4和192.168.0.5消費者均能收到消息 證明配置成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章