SHM*_*SHM 5 messaging message-queue actor-model akka akka.net
我有使用诸如RabbitMQ和其他消息传递技术的企业分布式系统的背景,尽管我对Actor Model.
话虽如此,我想知道使用Actor Model诸如AKKA或AKKA.NET类似的应用程序的框架是否是个好主意Whatsapp?鉴于此类应用程序的要求(高可用性、低延迟等...)。
我的另一个问题是,Erlang 的内置 actor 模型是大公司将其用于其消息传递应用程序的原因还是我不知道的其他原因?
技术解释受到高度赞赏。提前致谢。
我相信 Actor 模型是使 Erlang 应用程序具有如此容错能力的原因之一。
进程/参与者可以在不影响其他进程或破坏共享数据的情况下死亡,因为没有。Erlang 进程的启动成本也非常低,因此如果每个客户端需要一个或 10 个进程,这不是问题。Erlang 使用监督树,它可以以多种不同的策略重新启动进程,例如一对一或一对一,因此如果一个进程失败,它可以重新启动该分支中的所有进程或仅重新启动一个进程,而不会影响其他进程。当您在实时语音/视频/聊天会话中拥有数百万客户时,这一点非常重要。
Erlan 还内置了并发和垃圾收集功能。与使用其他语言相比,您花在思考如何扩展项目以及如何防止项目崩溃上的时间要少得多。由于模式匹配、OTP 和 Let It Crash 心态,使用低级语言进行开发也更快。
抱歉,如果技术不够,也许其他人可以参与其中。如果您想对 erlang 有一个很好的总体概述,请查看这些视频 - https://www.cs.kent.ac.uk/ErlangMasterClasses/#class1