Kafka应用治理CLI由shell脚本、 属性文件构成,特别是格局化JSON文件。 Kafka 经纪人,临盆者,和花费者排放指标 经由过程Yammer / JMX,但不保护任何汗青,这实际意味着应用第三方监测体系。应用这些对象,操作可以或许治理分区和主题,检查花费者偏移地位,与应用Apache Zookeeper为Kafka供给的HA和FT功能。例如,一个3节点Kafka 集群 即使两个节点掉败也能供给功能。然而,如不雅你想支撑Zookeeper最大年夜数量标掉败,你须要额外的5个Zookeeper节点 ,Zookeeper是基于法定人数的体系,只能容忍 N/2+1的掉败。这明显的不该该共存与Kafka节点 – 是以,要建立的3节点卡夫卡体系,您须要大年夜约八台办事器。 运营商当推理任何卡夫卡体系的可用性时,推敲到ZK集群属性,无论是资本消费┞氛样设计。
需乞降用例
很多开辟人员开端摸索消息传递,当他们意识到他们必须把很多器械连接在一路,和其他集成模式,如共享数据库是弗成行的或太危险的时刻。
Apache Kafka 将其描述为分布式流媒体平台,但更为人知的是一个持久的存储库,有着很好的Hadoop/Spark 支撑。文档做得很好,评论辩论风行的用例,比如网站晃荡跟踪,指标,日记聚合,流处理,事宜溯源和提交日记。这些用例之一,它描述了消息,可能产生一些纷乱。 所以让我们打开一点,看的更清楚,关于哪种消息筹划更合适Kafka,比如:
- 大年夜A到B的流没有复杂的路由, 有最大年夜吞吐量(100k/sec+),按分区次序交付至少一次。
- 当你的应用法度榜样须要拜访流汗青,按分区次序交付至少一次。Kafka是持久的消息存储和客户可以获得一个 “replay” 事宜流的需求,相对于更传统的消息代劳,一旦一个消息被交付,就会大年夜队列中移除。
- 当你有聪慧的花费者,能靠得住地跟踪他们的日记偏移。
- 如不雅您的应用法度榜样须要 “无穷的” 队列。
RabbitMQ 也可以有效地解决几个膳绫擎的Kafka强有力的用例,但要借助额外的软件。RabbitMQ经常与Apache Cassandra合营应用,当应用法度榜样须要拜访流汗青时,或与LevelDB插件,对于应用法度榜样须要 “无穷” 队列, 但都不是RabbitMQ自带的。
开辟经验
RabbitMQ正式支撑Java, Spring, .NET, PHP, Python, Ruby, JavaScript, Go, Elixir, Objective-C, Swift – 与很多其他 客户和开辟对象,经由过程社区插件。RabbitMQ 客户端库是成熟且优胜文档的。
Apache Kafka 在这一范畴已经取得了长足进步,固然他主如果Java客户端,有越来越多的社区目次 开放源码客户端, 生态体系项目,以及作为适配器 SDK 许可您建立本身的体系集成。大年夜部分的设备已经设定好了,经由过程.properties 文件或编程方法。
这两个选项的风行,在很多其他软件供给商,有很强的影响力,确保RabbitMQ 和Kafka正常工作,经由过程他们的技巧。
安然和操作
安然和操作都是RabbitMQ的强项。 RabbitMQ治理插件供给了HTTP API,一个基于浏览器的 UI 用于治理和监控,加上CLI对象赐与操作员。 外部对象,如不雅经久监测数据存储,比如CollectD, Datadog或者New Relic也是须要的。 RabbitMQ还供给了API和监控对象,审核和应用故障清除。除了支撑TLS,RabbitMQ附带RBAC支撑经由过程内置数据存储, LDAP或外部基于HTTPS的供给商,并支撑身份验证应用x509证书,代替用户名/暗码对。额外的身份验证办法 可以应用插件相当直接地扩大。
这些范畴对Apache Kafka.构成了挑衅。在安然方面,比来的Kafka 0.9版本附加了TLS,,JAAS基于角色的拜访控制,Kerberos/plain/scram认证,应用CLI治理安然策略。 这使得早期版本大年夜幅改良,当时您只能在收集级别锁定拜访权限,对于共享或多用户,这不起感化。
机能
Kafka照以下设计:100k/sec机能往往是人们选择 Apache Kafka的关键驱动力。它的实现很大年夜依附开辟者可以或许写出聪慧的花费者代码。
当然,每秒消息速度是很难状况和量化,因为他们依附很多,包含你的情况和硬件,工作负载的性质,应用哪种交货包管 (e.g. 持久性是昂贵的,镜像更是如斯), etc.
20K/sec是很轻易应用一个Rabbit队列实现的, 事实上跟多一些也不是很难,只要没有太多请求的担保。队列的支撑,经由过程一个, 在本地操作体系线程池长进行协作调剂的,轻量级的Erlang线程 – 是以,它天然成为了单队列的关键点或瓶颈,永远不会做比CPU周期内能获得的更多的工作。
增长信息秒速度平日归结为妥当应用可用的并行性格况,经由过程诸如经由过程聪慧的路由打破交通跨多个队列 (大年夜而可以同时运行不合的队列)。当RabbitMQ实现一百万每秒的消息传递, 它平日会明智的慢下来 – 但经由过程应用大年夜量的资本,四周 30 RabbitMQ节点。 大年夜多半RabbitMQ应用者享受由三到七个RabbitMQ节点供给的高机能。
Making the Call
市场上的其他高等选项的一些研究。如不雅你想深刻与最风行的选择,查看 Nicolas Nannoni硕士论文 ,它独具特点的一面,比较表在4.4节 (page 39) 两年后仍然相当精确 – 值得一读。
在研究时,尽可能形成涉众和营业的轮回。懂得贸易用例是为你的情况做出精确的选择的最大年夜的单身分 。 然后, 如不雅你长短行技巧粉,你最好的办法就是睡在膳绫擎, 让它渗入渗出,让你的本能接收。 你就明白了。
【编辑推荐】
- R、Python、Scala 和 Java,到底该应用哪一种大年夜数据编程说话?
- Apache Kafka若何让流数据进入主流
- Apache Kylin优化–高等设置:聚合组(Aggregation Group)原懂得析
- Apache Kylin优化之—Cube的高等设置
- Apache Kylin中对上亿字符串的精确Count_Distinct示例
推荐阅读
腾讯电脑管家针对于勒索病毒推出“勒索病毒免疫对象”电脑中毒后屏幕上彪炳来的勒索信5月15日,跟着企事业单位周一集中开机办公,WannaCry勒索病毒可能进一步伸展,高校、银行、>>>详细阅读
本文标题:什么时候该用RabbitMQ ,什么时候该用 Apache Kafka
地址:http://www.17bianji.com/lsqh/35213.html
1/2 1