我想知道是否可以将 kafka 作为云原生应用程序运行,以及我是否可以在 Pivotal Web Services 上创建一个 kafka 集群作为服务。我不仅仅想要客户端集成,我想运行 kafka 集群/服务本身?
谢谢,
阿尼尔
我可以向您指出一些起点,从这些起点到功能齐全的东西需要一些工作。
一种选择是使用 docker 镜像在 Cloud Foundry(例如 Pivotal Web Services)上部署 kafka 集群。Spotify 已对 kafka 和 kafka-proxy 进行了 Docker 化 https://github.com/spotify/docker-kafka(包括动物园管理员)。需要记住的一件事是,PWS 目前不支持具有持久性的应用程序(尽管这项工作正在开始 https://lists.cloudfoundry.org/archives/list/cf-dev@lists.cloudfoundry.org/message/DFJJ6VGRZOSF4U4SVA6BDATAAJ7F3HHN/)因此,如果您现在就走这条路线,那么当应用程序滚动时,您将丢失 kafka 中的数据。查看 Spotify 存储库,看起来 docker 映像通常在没有任何安装卷的情况下运行,因此这种无持久性的 kafka 似乎可能是一个有效的用例(我对 kafka 的了解不够多)。
另一种选择是使用 BOSH 直接在某些 IaaS(例如 AWS)上部署 kafka。如果您是第一次看到 BOSH,它可能会有点困难,但它是部署要在虚拟机上运行的任何分布式软件的理想方法。如有必要,您还可以将持久卷附加到您的 kafka VM。这里有一个卡夫卡 BOSH 发布 https://github.com/viniciusccarvalho/kafka-boshrelease这可能有效。
集群运行后,您可以通过两种方式将 Cloud Foundry 应用程序与其集成。最简单的方法就是将其作为“用户提供的服务 https://docs.cloudfoundry.org/devguide/services/user-provided.html“,它可以让您将 kafka 集群访问信息传输到您的应用程序。另一种方法是在集群前面放置一个服务代理,如果您有许多不同的人将推送需要与集群通信的应用程序,这将特别有用。 kafka 集群。您不必每次都手动告诉人们访问信息,他们可以做一些简单的事情,例如cf bind-service SOME_APP YOUR_KAFKA_SERVICE
。这里有一个卡夫卡服务经纪人 https://github.com/viniciusccarvalho/cf-kafka-servicebroker随着有关服务经纪人的更多信息 http://docs.cloudfoundry.org/services/managing-service-brokers.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)