我试图了解Actor模型,尤其是像Akka
这样的流行框架是否为软件设计带来了可衡量的好处。
虽然我不是CS理论家,但如果它能够构建更简单的正确性证明和更好的规范,我会对这个模型更有信心。可靠性是Agent Model的强项吗?它是否适合关键任务软件(医疗保健,航空电子设备等)?
我担心的是,没有一些强大的,可能无法实现的全球性的"保证公平性(因为我相信参与者可能会耗尽其他人可用的线程)或在有限时间内交付,使用此模型可能会导致分布式系统的设计,描述和调试比其他方案更复杂。
答案 0 :(得分:0)
与任何其他型号一样,Akka的可靠性取决于开发人员。如果您正确使用Akka(使用推荐的最佳实践),则非常可靠。一旦你学会了基础知识,正确使用演员模型就很简单直观。
例如:只有当你向他发送过大的消息(大= =需要很长时间才能处理)时,演员才会持有一段时间。如果您使用更小的消息,调度员将保证非常好的公平性。或者,如果您需要绝对公平,只需使用循环路由器。
在有限的时间内交货......在很大程度上取决于您如何选择邮箱。例如,您可以优先处理一些重要消息,而不是其他消息。
Akka的另一个优势是易于扩展。如果某些东西适用于5个演员,它将适用于10000名演员。所以我相信Akka中的分布式系统比传统模型更容易设计和管理。