我有使用RabbitMQ
等其他消息传递技术的企业分布式系统的背景,虽然我对Actor Model
相对较新。
据说,我想知道对Actor Model
类似的应用程序使用AKKA
框架(如AKKA.NET
或Whatsapp
)是否是一个好主意?
鉴于此类应用程序的要求(高可用性,低延迟等...)。
我的另一个问题是,Erlang的内置演员模型是大公司将其用于其消息传递应用程序的原因还是还有其他我不知道的东西?
技术解释非常感谢。 提前谢谢。
答案 0 :(得分:1)
我认为actor模型是使Erlang应用程序具有容错能力的原因之一。
进程/参与者可以在不影响其他进程的情况下死亡或破坏共享数据,因为没有。 Erlang进程也很便宜,所以如果你需要一个进程或10个每个客户端,这不是一个问题。 Erlang使用监督树,它可以在几种不同的策略中重新启动进程,例如一对一或一对一,因此如果进程失败,它可以重新启动该分支中的所有进程或只触发一个进程而不触及其他进程。当您在现场语音/视频/聊天会话中拥有数百万客户时,这一点非常重要。
Erlan还带有内置的并发和垃圾收集功能。与其他语言相比,您花费更少的时间考虑如何扩展项目以及如何防止项目崩溃。由于模式匹配,OTP和Let It Crash思维模式,它的开发速度也比低级语言快。
对不起,如果它不够技术,也许其他人可以参与其中。如果您想要对erlang进行全面的概述,请查看这些视频 - https://www.cs.kent.ac.uk/ErlangMasterClasses/#class1