【问题标题】:How to setup proxy layer on kafka broker?如何在 kafka 代理上设置代理层?
【发布时间】:2019-10-08 23:53:51
【问题描述】:

我正在尝试设置一个代理服务器(在 java 中首选),它可以将我的连接流传递给 kafka 代理。

Client (Consumer/Producer) <--> [PROXY SERVER] <--> Kafka Broker

我的用例是使用来自 kafka 的数据,但配置参数应该代理到 kafka 代理。

例如bootstrap.servers=xx.xx.xx.xx:9091, topic=<encrypted-topic>

端口 9091 是代理服务器,我将主题解密为原始主题并将连接流传递给 kafka。

代理层的工作是检查加密的主题是否存在于主题的内存映射中,如果是,则解密该主题并连接到 kafka 代理。

【问题讨论】:

    标签: java spring-boot apache-kafka network-programming apache-kafka-security


    【解决方案1】:

    你可以在 kafka 集群前使用 HAproxy 作为代理。

    listen kafka
        bind *:8888
        mode tcp
        balance roundrobin
        server  kafka1 127.0.0.1:8881 check
        server  kafka2 127.0.0.1:8883 check
        server  kafka3 127.0.0.1:8885 check   
    
    listen kafka1
        bind *:8881
        mode tcp
        server  kafka1  10.10.0.1:45677 check
    
    listen kafka2
        bind *:8883
        mode tcp
        server  kafka1 10.10.0.2:45677 check
    
    listen kafka3
        bind *:8885
        mode tcp
        server  kafka1 10.10.0.3:45677 check
    

    上面是一个 3 节点的 kafka 集群。客户端只需将 LBs ip:8888 设置为 boostrap 服务器。然后客户端将以编程方式获取有关 lb_iP:8881 ,lb_iP:8883,lb_iP:8885 的元数据,并相应地创建相应的引导服务器连接路径。
    通过这种方式,我们可以对底层的真实代理 ips 和端口进行修改,而无需客户端更改配置。
    参考:guide with ssl setup 谢谢

    【讨论】:

      猜你喜欢
      • 2022-12-10
      • 2018-05-11
      • 2017-07-30
      • 1970-01-01
      • 1970-01-01
      • 2019-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多