首页 » SEO优化 » swiftphp技巧_微做事消息代理选型RedisKafkaRabbitMQ

swiftphp技巧_微做事消息代理选型RedisKafkaRabbitMQ

访客 2024-11-30 0

扫一扫用手机浏览

文章目录 [+]

在为微做事利用异步通信时,常日利用代理。
代理确保不同微做事之间的通信可靠稳定,在系统内得到管理和监控,并且不会丢失。
您可以从几个代理中选择,它们的规模和数据功能各不相同。
这篇博文将比较三个最受欢迎的代理brokers:RabbitMQ、 Kafka 和 Redis 。

但首先,让我们理解一下微做事通信。

swiftphp技巧_微做事消息代理选型RedisKafkaRabbitMQ

微做事通信:同步和异步

微做事之间有两种常见的通信办法:同步和异步。
在同步通信中,调用方在发送下一条之前等待相应,它作为HTTP之上的REST协议运行。
相反,在异步通信中,是在不等待相应的情形下发送的。
这适用于分布式系统,常日须要代理来管理。

swiftphp技巧_微做事消息代理选型RedisKafkaRabbitMQ
(图片来自网络侵删)

您选择的通信类型应考虑不同的参数,如如何布局微做事、设置什么根本举动步伐、延迟、规模、依赖性和通信目的。
异步通信的建立可能更加繁芜,并且须要向堆栈中添加更多的组件,但是将异步通信用于微做事的优点大于缺陷。

异步通信上风

首先也是最主要的是,异步通信从定义上讲是无壅塞的。
它还支持比同步操作更好的扩展。
第三,在微做事崩溃的情形下,异步通信机制供应了各种规复技能,常日更好地处理与崩溃干系的缺点。
此外,当利用代理而不是REST协议时,吸收通信的做事实际上不须要相互理解。
乃至可以在旧做事运行很永劫光后引入新做事,即更好的解耦做事。

末了,在选择异步操作时,您可以提高将来创建中央创造、监视、负载平衡乃至策略履行器的能力。
这将为您的代码和系统构建供应灵巧性、可伸缩性和更多功能。

选择精确的代理

异步通信常日通过代理进行管理。
还有其他方法,比如aysncio,但它们更为稀缺和有限。

在选择实行异步操作的代理时,应考虑以下几点:

1. Broker Scale–系统中每秒发送的数。

2. 数据持久性–规复的能力。

3. 消费者能力–brokers是否能够管理一对一和/或一对多消费者。

一对一:

一对多:

我们查看了最新和最好的做事,以找出这三个种别中哪家供应商最强。

比较不同的代理RabbitMQ(AMQP)

规模:根据配置和资源,这里的大概速率约为每秒50K为精。

持久化:支持持久性和暂时性。

一对一vs一对多消费者:两者皆有。

RabbitMQ于2007年发布,是首批创建的通用代理之一。
它是一个开源软件,通过实现高等行列步队协议(AMQP),通过点对点和发布的方法来通报。
它旨在支持繁芜的路由逻辑。

有一些托管做事许可您将其用作SaaS,但它不是本机紧张云供应商堆栈的一部分。
RabbitMQ支持所有紧张措辞,包括Python、Java、.NET、PHP、Ruby、JavaScript、Go、Swift等。

在持久模式下可能会涌现一些性能问题。

Kafka

规模:每秒最多可发送数百万条。

持久化:是的。

一对一vs一对多消费者:只有一对多(乍一看彷佛很奇怪,对吧?!
)。

Kafka由Linkedin于2011年创建,用于处理高吞吐量、低延迟的处理。
作为一个分布式流媒体平台,Kafka复制了发布-订阅做事。
它供应数据持久性并存储记录流,使其能够交流高质量的。

Kafka在Azure、AWS和Confluent上管理SaaS。
他们都是Kafka操持的创造者和紧张贡献者。
Kafka支持所有紧张措辞,包括Python、Java、C/C++、Clojure、.NET、PHP、Ruby、JavaScript、Go、Swift等。

Redis

规模:每秒最多可发送一百万条。

持久化:基本上不是——它是内存中的数据存储。

一对一vs一对多消费者:两者皆有。

Redis与其他代理稍有不同。
Redis的核心是内存中的数据存储,可以用作高性能键值存储或代理。
另一个差异是Redis没有持久性,而是将其内存转储到磁盘/DB中。
它也非常适宜实时数据处理。

最初,Redis不是一对一和一对多。
然而,自从Redis 5.0推出pub-sub以来,功能得到了提升,一对多成为了一种现实选择。

每个用例的代理

我们先容了RabbitMQ、卡夫卡和Redis的一些特性。
这三种动物都属于这一类,但如上所述,它们的运作办法截然不同。
下面是我们根据不同的用例为精确的MessageBroker供应的建议。

短:Redis

Redis的内存数据库险些完备适宜于不须要持久性的短用例。
由于它供应了极快的做事和内存功能,Redis是短保留的完美选择,在短保留中,持久性并不主要,您可以容忍一些丢失。
随着Redis streams在5.0中的发布,它也是一对多用例的候选者,这是由于限定和旧的发布订阅功能而绝对须要的。

大量数据:Kafka

Kafka是一个高吞吐量的分布式行列步队,用于永劫光存储大量数据。
Kafka非常适宜于须要持久性的一对多用例。

繁芜路由:RabbitMQ

RabbitMQ是一个较老但成熟的代理,具有许多支持繁芜路由的特性和功能。
当所需速率不高(超过数万msg/秒)时,它乃至支持繁芜的路由通信。

考虑你的软件栈

当然,末了要考虑的是您当前的软件堆栈。
如果您正在探求一个相对大略的集成过程,并且不肯望在堆栈中掩护不同的代理,那么您可能更方向于利用堆栈已经支持的代理。

例如,如果您在RabbitMQ之上的系统中利用芹菜作为任务行列步队,您将有动力利用RabbitMQ或Redis,而不是Kafka,后者不受支持,须要一些重写。

标签:

相关文章

C语言中的同步机制,探索多线程编程的艺术

随着计算机技术的发展,多线程编程已经成为现代软件开发中不可或缺的一部分。在C语言中,同步机制是实现多线程编程的关键技术。本文将探讨...

SEO优化 2024-12-26 阅读0 评论0

ITNE,探索汇编语言的奥秘与魅力

汇编语言作为计算机程序设计语言的一种,是计算机科学领域的重要组成部分。ITNE作为一种汇编语言,其独特的语法结构和丰富的功能特点,...

SEO优化 2024-12-26 阅读0 评论0

C语言中的乘法运算,介绍原理与优化方法

C语言作为一种广泛使用的编程语言,在计算机科学领域扮演着举足轻重的角色。在C语言中,乘法运算作为一种基本运算,贯穿于编程的方方面面...

SEO优化 2024-12-26 阅读0 评论0

ITVP工资介绍,介绍互联网时代的高薪密码

随着互联网行业的蓬勃发展,越来越多的人涌入这个行业,追求高薪、高福利的生活。其中,ITVP工资成为众多求职者关注的焦点。本文将带您...

SEO优化 2024-12-26 阅读0 评论0

itzoom,人工智能领域的璀璨明珠

随着科技的发展,人工智能已经逐渐成为我国科技创新的重要领域。在众多人工智能企业中,itzoom以其卓越的技术实力和广阔的应用前景,...

SEO优化 2024-12-26 阅读0 评论0