首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以在网上使用卡夫卡吗?

我可以在网上使用卡夫卡吗?
EN

Stack Overflow用户
提问于 2017-09-05 02:27:14
回答 4查看 12.3K关注 0票数 7

卡夫卡适合互联网使用吗?

更确切地说,我想要的是将kafka主题公开为“公共界面”,这样外部消费者(或生产者)就可以连接到它。有可能吗?

我听说,如果我想在内部和外部网络中使用集群,就会出现问题,因为这样就很难配置advertised.host.name。这是真的吗?

我也要揭发动物园管理员吗?我认为新的消费者/生产者api不再需要它了。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-09-05 05:14:10

卡夫卡的有线协议是基于TCP的,在公共互联网上运行良好。在Kafka的最新版本中,您可以为内部和外部通信量配置多个接口。卡夫卡在生产中通过互联网提供的例子包括Heroku、IBM MessageHub和Confluent提供的多种卡夫卡服务。

如果Kafka客户端使用新的使用者API,则不需要公开动物园管理员。

您还可以选择将REST代理(如开放源代码汇合REST代理)公开为一个更加客户端防火墙友好的接口,因为它运行于HTTP(S)之上,不会被大多数公司或个人防火墙阻塞。

票数 9
EN

Stack Overflow用户

发布于 2018-06-25 15:05:56

出于这些原因,我个人不会通过TCP直接向客户端公开Kafka服务器,仅举几个例子:

  • 如果一个坏客户端打开了太多的连接,这可能会影响卡夫卡平台的稳定性,也可能影响到其他客户端( )。
    • 需要在Kafka服务器上打开太多文件、HW/SW设置和OS优化,以限制不受控制的客户端。

  • 如果您需要添加一个Kafka服务器来增加可伸缩性,您可能需要进行大量的低级别配置(防火墙、If可见性、证书等)。在客户端和服务器端。其他产品使用网关或代理来解决这些问题:一致性使用扩展代理客户端,tibco EMS使用路由目的地,其他SW (许多JMS服务器)使用存储和转发机制,等等。
  • 对于附属于Kafka服务器的客户端,对Kafka节点的维护还必须考虑到客户端的需求和与客户(例如)一起定义的SLA (服务级别增益)。24*7*365)
  • 如果您也使用Kafka作为后端服务,则应该考虑多层体系结构: FE网关和be服务等。
  • 其他的考虑需要理解你认为在你的系统中什么是外部的(通过互联网)消费者/生产者。您的系统中需要访问Kafka服务器的组件吗?它们是组织内部的还是外部的,等等。

当然,使用到Kafka服务器的TCP直接连接也可以正确地解决所有这些问题,但我个人会使用不同的解决方案。

  • HTTP代理
  • 或者至少我会为每个客户端使用专用的FE Kafka服务器(或HA的两个服务器),将消息转发给主要的Kafka服务器组。
票数 9
EN

Stack Overflow用户

发布于 2019-10-10 08:22:54

在互联网上曝光卡夫卡是可能的(事实上,这就是艾文和英斯库斯特等卡夫卡提供商赚钱的方式),但你必须确保它有足够的安全性。至少:

  • ZooKeeper节点应该驻留在私有子网中,不能从外部路由。ZK的安全性不足,无论如何,它不再需要用ZK地址(Es)引导Kafka客户端。
  • 在网络级别限制对代理的访问。如果所有客户端都从受信任的网络连接,则设置适当的防火墙规则。如果在AWS中,如果您正在连接云到云或云到地面,则使用VPC窥视或直接连接。如果您的大多数客户端位于可信网络上,但相对较少,则强制后者通过VPN隧道。最后,如果您希望允许来自任意位置的连接,您只需在端口9092上(或您配置代理侦听的任何端口)上的allow *;只需确保其他端口关闭。
  • 为客户端-代理连接启用TLS (SSL)。我是使用自签名CA轻松配置。根据您如何公开侦听器,您可能需要禁用客户端上的SSL主机名验证。(如果公布的主机名与证书的公共名称不匹配,则证书信任链会中断。)客户端将需要安装CA证书。(与签署经纪人证书的CA相同。)
  • 可选地,您可以启用相互TLS身份验证;但是,这在逻辑上更费钱,因为它要求每个客户端都有自己的私钥,该私钥由代理信任的CA签名。
  • 使用SASL对代理进行客户端身份验证,并为每个应用程序和预期访问集群的每个人创建单独的用户。
  • 按照最小特权(PoLP)原则,在ACL中为每个用户发出最少足够的集群级和主题级访问权限。

另外要记住的一点是:并不是所有的工具都支持SASL/SSL连接,有些工具实际上需要连接到ZooKeeper节点(在上面的设置中是无法到达的)。确保您所依赖的任何工具都使用直接与Kafka代理连接的“新”风格,并且不需要一个连接。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46046160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档