kafka 技术分享

Kafka是一种高吞吐量的分布式消息系统,使用Scala编写,具备O(1)磁盘数据结构实现消息持久化、支持分布式可扩展性和高性能。其优点包括高吞吐量、容错性、多语言支持,但存在重复消息和消息乱序的问题。常见应用场景包括消息系统、网站活动跟踪和日志聚合。Kafka的特性如分区和复制增强了其吞吐量,但没有消息确认机制。Zookeeper在Kafka中用于集群管理和故障转移。
摘要由CSDN通过智能技术生成

一、什么是kafka:

            Kafka 是一种高吞吐量的分布式发布订阅消息系统。

            Scala编写的。

 

二、kafka的特点:

            *  通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。

            * 高吞吐量[2] :即使是非常普通的硬件Kafka也可以支持每秒数百万[2]  的消息。

            *  支持通过Kafka服务器和消费机集群来分区消息。

            *支持Hadoop并行数据加载

三、kafka的优缺点:

            优点 :

                        1、分布式可高可扩展。Kafka 集群可以透明的扩展,增加新的服务器进集群。                              
                        2、高性能。Kafka 的性能大大超过传统的ActiveMQ、RabbitMQ等MQ 实现,尤其是Kafka 还支持batch 操作。

                        3、容错。Kafka每个Partition的数据都会复制到几台服务器上。当某个Broker故障失效时,ZooKeeper服务将通知生产者和消费者,生产者和消费者转而使用其它 Broker。

                       4、支持Scala、Java、C++、C#、Go、PHP、Python、Ruby,PHP需要5.3.3版本以上。

                       5、没有消费反馈,哪些消息已消费由consumer维护(通过记录一个offset值),consumer也可以回滚到以前的位置,重新读取之前读取过的消息。

                       6. producer发送消息后,broker不会发送ACK给producer。

缺点:

                       1、  重复消息。Kafka 只保证每个消息至少会送达一次,虽然几率很小,但一条消息有可能会被送达多次。
                       2、消息乱序。虽然一个Partition 内部的消息是保证有序的,但是如果一个Topic 有多个Partition,Partition 之间的消息送达不保证有序。
                      3、复杂性。Kafka需要zookeeper 集群的支持,Topic通常需要人工来创建,部署和维护较一般消息队列成本更高

四、kafka的使用场景:

     1、Messaging   

        对于一些常规的消息系统,kafka是个不错的选择;partitons/replication和容错,可以使kafka具有良好的扩展性和性能优势.不过到目前为止,我们应该很清楚认识到,kafka并没有提供JMS中的"事务性""消息传输担保(消息确认机制)""消息分组"等企业级特性;kafka只能使用作为"常规"的消息系统,在一定程度上,尚未确保消息的发送与接收绝对可靠(比如,消息重发,消息发送丢失等)

 

    2、Websitactivity tracking

       kafka可以作为"网站活性跟

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值