一、應用場景
跨網絡訪問kafka集群
kafka集群部署在vpc,提供一個或多個公網ip,kafka sdk通過公網ip訪問kafka集群
二、方案
kafka集群信息如下:
broker1:vpc ip1
broker2:vpc ip2
broker3:vpc ip3
1、同vpc訪問
直接配置bootstrap.servers
bootstrap.servers = vpc ip1: port, vpc ip2: port, vpc ip3: port
2、公網多ip訪問
每個kafka節點對應一個公網ip,集群暴露多個公網ip,同一個端口
bootstrap.servers = 公網ip1: port, 公網ip2: port, 公網ip3: port
轉發關系
公網ip1 --- broker1
公網ip2 --- broker2
公網ip3 --- broker3
broker1:advertised.listeners=PLAINTEXT://公網ip1: port
broker2:advertised.listeners=PLAINTEXT://公網ip2: port
broker3:advertised.listeners=PLAINTEXT://公網ip3: port
3、公網多端口訪問
每個kafka節點對應一個公網端口,集群暴露一個公網ip,多個端口
bootstrap.servers = 公網ip: port1, 公網ip: port2, 公網ip: port3
轉發關系
port1 --- broker1
port2 --- broker2
port3 --- broker3
broker1:advertised.listeners=PLAINTEXT://公網ip: port1
broker2:advertised.listeners=PLAINTEXT://公網ip: port2
broker3:advertised.listeners=PLAINTEXT://公網ip: port3
4、反向代理實現端口映射節點
以nginx為例
stream {
upstream broker1 {
server vpc_ip1:port;
}
upstream broker2 {
server vpc_ip2:port;
}
upstream broker3 {
server vpc_ip3:port;
}
server {
listen port1;
proxy_pass broker1;
}
server {
listen port2;
proxy_pass broker2;
}
server {
listen port3;
proxy_pass broker3;
}
}