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