kafka集群外網訪問


Kafka的配置方式有三種 ,分別是單機、偽分布式集群和分布式集群,部署都很常規,博客資源也很多,這里簡單介紹,詳細說明Kafka集群如何進行外網訪問。其中集群配置過程中,本文使用到的內網IP和外網IP只做演示,非真實IP。

1 偽分布式集群部署

內網IP:10.12.100.126 外網IP:47.90.133.76 域名:server1 server2 server3

配置 Kafka server.properties

# server1

broker.id=1

delete.topic.enable=true
auto.create.topic.enable = true

listeners=PLAINTEXT://10.12.100.126:9092
port=9092

log.dirs=/opt/kafka/kafkaLog

message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880
zookeeper.connect=10.12.100.126:2181,10.12.100.126:2182,10.12.100.126:2183

# server2 

broker.id=2

delete.topic.enable=true
auto.create.topic.enable = true

listeners=PLAINTEXT://10.12.100.126:9093
port=9093
log.dirs=/opt/kafka/kafkaLog

message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880
zookeeper.connect=10.12.100.126:2181,10.12.100.126:2182,10.12.100.126:2183

# server3

broker.id=3

delete.topic.enable=true
auto.create.topic.enable = true

listeners=PLAINTEXT://10.12.100.126:9094
port=9094

log.dirs=/opt/kafka/kafkaLog

message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880

zookeeper.connect=10.12.100.126:2181,10.12.100.126:2182,10.12.100.126:2183

2 配置 偽分布式集群外網訪問

2.1 修改hosts

# server1
10.12.100.126   server1 改為: 47.90.133.76  server1

# server2


10.12.100.126   server2 改為: 47.90.133.76  server2

# server3

10.12.100.126   server3 改為: 47.90.133.76  server3

2.2 Kafka server.properties文件更改:

# server1

port = 9092
advertised.listeners=PLAINTEXT://47.90.133.76:9092

# server2 

port = 9093
advertised.listeners=PLAINTEXT://47.90.133.76:9093

# server3

port = 9094
advertised.listeners=PLAINTEXT://47.90.133.76:9094

注意:

Server.properties 文件中zookeeper信息不需要更改依舊是
zookeeper.connect=10.12.100.126:2181,10.12.100.126:2182,10.12.100.126:2183

3 分布式集群部署

內網IP:10.12.100.126 10.12.100.127 10.12.100.128 外網IP:47.90.133.76 47.90.133.77 47.90.133.78 用戶名:server1 server2 server3

server1  

/opt/kafka/kafka_2.11-0.10.2.2/config vi server.properties

## 增加下列配置信息

broker.id=1

delete.topic.enable=true
auto.create.topic.enable = true

listeners=PLAINTEXT://10.12.100.126:9092

log.dirs=/opt/kafka/kafkaLog

message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880

zookeeper.connect=10.12.100.126:2181,10.12.100.127:2181,10.12.100.128:2181

server2 

/opt/kafka/kafka_2.11-0.10.2.2/config  vi server.properties
## 增加下列配置信息

broker.id=2

delete.topic.enable=true
auto.create.topic.enable = true

listeners=PLAINTEXT://10.12.100.127:9092

log.dirs=/opt/kafka/kafkaLog

message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880

zookeeper.connect=10.12.100.126:2181,10.12.100.127:2181,10.12.100.128:2181
server3

/opt/kafka/kafka_2.11-0.10.2.2/config  vi server.properties
## 增加下列配置信息

broker.id=3

delete.topic.enable=true
auto.create.topic.enable = true

listeners=PLAINTEXT://10.12.100.128:9092

log.dirs=/opt/kafka/kafkaLog

message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880

zookeeper.connect=10.12.100.126:2181,10.12.100.127:2181,10.12.100.128:2181

4 配置分布式集群使用hostname外網訪問

# 三台服務器操作一致
vi /etc/hosts

10.12.100.126   server1
10.12.100.127   server2
10.12.100.128   server3

47.90.133.76    server1
47.90.133.77    server2
47.90.133.78    server3

# kafka
# vi server.properties

#server1

broker.id=1

delete.topic.enable=true
auto.create.topic.enable = true

port = 9092
listeners=PLAINTEXT://server1:9092

zookeeper.connect=10.12.100.126 :2181,10.12.100.127:2181,10.12.100.128:2181

#zookeeper
# zoo.cfg
server.1= 10.12.100.126:2888:3888
server.2= 10.12.100.127:2889:3889
server.3= 10.12.100.128:2890:3890



# server2
broker.id=2

delete.topic.enable=true
auto.create.topic.enable = true

port = 9092
listeners=PLAINTEXT://server2:9092
zookeeper.connect=10.12.100.126 :2181,10.12.100.127:2181,10.12.100.128:2181

#zookeeper
# zoo.cfg
server.1= 10.12.100.126:2888:3888
server.2= 10.12.100.127:2889:3889
server.3= 10.12.100.128:2890:3890

#server3

broker.id=3

delete.topic.enable=true
auto.create.topic.enable = true

port = 9092
listeners=PLAINTEXT://server3:9092
zookeeper.connect=10.12.100.126 :2181,10.12.100.127:2181,10.12.100.128:2181

#zookeeper
# zoo.cfg
server.1= 10.12.100.126:2888:3888
server.2= 10.12.100.127:2889:3889
server.3= 10.12.100.128:2890:3890

測試驗證

sh kafka-console-producer.sh --broker-list server1:9092, server2:9092, server3:9092 --topic test #hostname生產
sh kafka-console-consumer.sh --zookeeper server1:2181, server2:2181, server3:2181 --topic test --from-beginning  #hostname消費

5 配置分布式集群使用外網IP訪問

# 三台服務器操作一致
vi /etc/hosts

10.12.100.126   server1
10.12.100.127   server2
10.12.100.128   server3

47.90.133.76    server1
47.90.133.77    server2
47.90.133.78    server3

# kafka
# vi server.properties

#server1

broker.id=1

delete.topic.enable=true
auto.create.topic.enable = true

port = 9092
advertised.listeners=PLAINTEXT://47.90.133.76:9092


zookeeper.connect=10.12.100.126:2181,10.12.100.127:2181,10.12.100.128:2181

#zookeeper
# zoo.cfg
server.1= 10.12.100.126:2888:3888
server.2= 10.12.100.127:2889:3889
server.3= 10.12.100.128:2890:3890



# server2
broker.id=2

delete.topic.enable=true
auto.create.topic.enable = true

port = 9092
advertised.listeners=PLAINTEXT://47.90.133.77:9092
zookeeper.connect=10.12.100.126:2181,10.12.100.127:2181,10.12.100.128:2181

#zookeeper
# zoo.cfg
server.1= 10.12.100.126:2888:3888
server.2= 10.12.100.127:2889:3889
server.3= 10.12.100.128:2890:3890

#server3

broker.id=3

delete.topic.enable=true
auto.create.topic.enable = true

port = 9092
advertised.listeners=PLAINTEXT://47.90.133.78:9092

zookeeper.connect=10.12.100.126:2181,10.12.100.127:2181,10.12.100.128:2181


#zookeeper
# zoo.cfg
server.1= 10.12.100.126:2888:3888
server.2= 10.12.100.127:2889:3889
server.3= 10.12.100.128:2890:3890
測試:
sh kafka-console-producer.sh --broker-list 47.90.133.76:9092,47.90.133.77:9092,47.90.133.78:9092 --topic test  #外網ip生產
sh kafka-console-consumer.sh --bootstrap-server 47.90.133.76:9092,47.90.133.77:9092,47.90.133.78:9092 --topic test --from-beginning  #外網ip消費

注意:若使用阿里雲ECS點對點,首先需要集群間可以通信,telnet通


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM