我经常看到软件体系结构中的队列,尤其是那些被称为“可伸缩”的队伍,其中有来自Akka.io多角色平台的Actor的突出代表。然而,如果我们必须同步将消息放入队列(并且因此在单线程vs多线程中操作),并再次同步从队列中取出消息(以确保该消息仅占用一次),那么队列如何可伸缩?它变得更加复杂,当这些消息可以改变(参与者)系统的状态时 - 在这种情况下,即使在从队列中取出消息之后,也不能进行负载平衡,但仍然在单线程中处理。(消息传递)队列如何扩展?
- 是否正确,将消息放入队列必须同步?
- 是否正确,将消息放入队列必须同步?
- 如果1或2是正确的,那么队列是如何扩展的?不同步到单线程立即创建瓶颈?
- 如果(actor)系统状态满足,它可以扩展吗?
- Statefull actor/bean的意思是说,我必须在单线程中按顺序处理消息?
- statefullness是否意味着,我必须在整个系统中拥有bean/actor的单个副本?
- 如果6为false,那么我如何在实例之间共享此状态?
- 当我试图将我的新P2P节点连接到netowrk时,我相信我必须有一些“服务器”告诉我,谁是其他同伴,这是否正确?当我试图下载洪流时,我必须连接到跟踪器 - 如果有“服务器”,那么我们是否称之为P2P?如果此跟踪器将停止运行,那么我无法连接到同伴,这是正确的吗?
- 同步和statefullness破坏可伸缩性?
这些问题中的一些最好隐约相关,你应该单独问问他们。 – the8472