kafka 和 rabbitmq
kafka 和 rabbitmq
语言和结构不同
kafka 用 Scala语言开发,主要处理大量的活跃流式数据。kafka 采用 mq 结构,因此 broker 有 part 分区的概念;RabbitMQ 的开发语言为内在高并发的 erlanng,传递的可靠性更高,且采用高级列队消息协议 AMQP。
使用场景和交互方式不同
kafka 采用 pull 的交互方式,具有高吞吐量特性,且内部采用 zero-copy 机制对消息进行批量处理,因此消息处理效率更高;RabbitMQ 则采用 push 的交互方式,主要支持对消息的可靠传递,但无法支持批量的操作请求。
Kafka 与 RocketMQ
Kafka 与 RocketMQ
文件布局不同
Kafka 文件是以 topic+ 分区的形式呈现的,每个 topic 可以建立多个分区,每个分区包含单独的文件夹,且采用多副本的形式,因此如果 Leader 分区所在的节点发生宕机,会触发主节点切换,不会影响其他分区工作;RocketMQ 则是基于 commitlog 文件来建立消息消费队列文件(Consumequeue)。
数据写入方式不同
Kafka 使用 FileChannel 的方式写入消息,并且在消息写入时使用了 transferTo 方法;而RocketMQ 的消息写入则有内存映射与 FileChannel 两种方式,且 RocketMQ 在写入时先调用 writer 然后在定时 flush 刷写到磁盘。
消息发送方式不同
Kafka 发送消息给客户端时,采用了一个双端队列,可以批量调用和发送消息;同时为了提高 kafka 消息发送的吞吐量,采用即时发送信息的形式,而无需等到特定的时间点;RocketMQ 消息发送要是根据路由选择算法选择一个队列,然后再将消息发送到服务端,消息会在服务端按照消息的存储格式进行组织。
Kafka 的特点
Kafka 的特点
kafka 作为一种高吞吐量的分布式订阅消息发布系统,主要用于处理活跃的流式数据,每秒可生产约 25 万消息,处理约 55 万消息,可进行持续操作,通过将消息持久化到磁盘,既能将消息用于批量消费,还能防止数据丢失,保证数据安全。由于 kafka 是一个分布式系统,扩展也变得方便,用户无需停机即可完成扩展。
传统企业消息系统难以适应大规模数据处理需求,而 kafka 则能同时处理在线应用和离线应用产生的大量数据,且能降低系统组网和编程复杂度。
kafka 工作原理
kafka 工作原理
kafka 本质上是消息中间件的一种,从架构上看分为发送数据和消费数据两大模块。kafka 发送数据都是发送至相应的 Leader 分区,并按照一定顺序写入磁盘,然后 Leader 分区会将对应的数据同步到各个从分区。在将数据写入分区时,如果有指定,则写入对应分区;若没有制定分区,但设置了 key 数据,则会根据 key 的值 hash 出一个分区,若没有指定分区,也没有设置 key,则会轮询出一个分区。消费者从 kafka 集群中拉取数据时,kafka 会根据不同场景分为多个消费组,用户根据场景拉取对应的数据即可。在实际的应用中,建议消费者组的 consumer 的数量与 partition 的数量保持一致。
亚马逊云科技相比于 kafka 的数据传输优势
亚马逊云科技相比于 kafka 的数据传输优势
轻松移动数据
Amazon Snowball 可在大约一周内移动 TB 级数据。您可以用它来移动数据库、备份、存档、医疗记录、分析数据集、IoT 传感器数据和媒体内容等数据,即时网络状况无法在现实的框架内向亚马逊云科技输入或从亚马逊云科技输出大量数据时,借助 Amazon Snowball 也可以完成数传输。
独立存储
传输作业在 Amazon 管理控制台右侧创建。作业创建之后,系统会自动为您分配 Amazon Snowball 器件。收到该器件之后,将它连接到您的本地网络,下载并运行 Amazon Snowball Client 即可建立连接,然后使用 Client 选择您要传输至器件的文件目录即可。
安全可扩展
Amazon Snowball Edge 设备采用防篡改外壳和 256 位加密,以及行业标准的可信平台模块 (TPM),不仅能确保您的数据安全,且实现全面的产销监管链;同时 Amazon Snowball 可为所有客户提供一种快捷实惠的方式,确保数据快速传入和传输 亚马逊云科技服务端。
轻松移动数据
Amazon Snowball 可在大约一周内移动 TB 级数据。您可以用它来移动数据库、备份、存档、医疗记录、分析数据集、IoT 传感器数据和媒体内容等数据,即时网络状况无法在现实的框架内向亚马逊云科技输入或从亚马逊云科技输出大量数据时,借助 Amazon Snowball 也可以完成数传输
独立存储
传输作业在 Amazon 管理控制台右侧创建。作业创建之后,系统会自动为您分配 Amazon Snowball 器件。收到该器件之后,将它连接到您的本地网络,下载并运行 Amazon Snowball Client 即可建立连接,然后使用 Client 选择您要传输至器件的文件目录即可。
安全可扩展
Amazon Snowball Edge 设备采用防篡改外壳和 256 位加密,以及行业标准的可信平台模块 (TPM),不仅能确保您的数据安全,且实现全面的产销监管链;同时 Amazon Snowball 可为所有客户提供一种快捷实惠的方式,确保数据快速传入和传输 亚马逊云科技服务端。