- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有以下 Actor 层次结构:
user
|____A___|---E
| |---F
| |---G
|
|____B___I
|____C___J
|____D___K
假设 Actor E 需要拥有 Actor I、J、K 的 IActorRef,如果系统扩展并需要更多 Actor ,并且用户 ActorSelection
not advised to use locally,则在构造函数中传递 Actor Ref 会变得困惑。 .
最佳答案
只需开始发送消息,而不是尝试使用(许多)其他 Actor 预先配置 Actor。当有许多不同的 Actor 时,它确实使初始化变得复杂。另外:您不能将传递给构造函数的 IActorRef 句柄视为静态且永远有效:当 Actor 脱机时,您需要一种机制来检测它并将其句柄置空,或将其删除。集群中的其他 Actors 需要查看 Akka 日志消息.. 不能保证.. 等..
相反:当您将新 Actor 连接到集群时,通过发布订阅发布(推送)您的身份。您的新 Actor 消息可以是:ActorSytem.Name+IActorRef+RoleString。
https://getakka.net/articles/clustering/distributed-publish-subscribe.html
RoleString 是 Actor 任务的描述符。其他参与者可以根据 RoleString 决定注册您的 IActorRef。
在此过程中,pubsub 的其他订阅者( Actor )将获取您的身份并存储您的身份。然后,他们通过相同的 pubsub 以相同的方式发出他们的身份。结果,您将在响应中收到您需要的 RoleString 身份……并且其他集群节点(Actor)知道您存在。
当 Actor 需要断开连接时,在实际断开 Actor 与集群的连接之前,首先发出 pubsub 消息。这样做,其他 Actor 知道 Actor 下线。
这种策略的一个陷阱:防止无休止的 pubsub 循环(I/O avalange)。我使用的解决方案:通过测试自上次发布订阅消息以来的时间来防止 Actor 发送过多消息。把例如每分钟 1 条消息,与其他 Actor 无关。这将导致心跳,而不是大量消息。并且您会定期收到所有 Actor 的在线状态的通知。在这种情况下不需要退出/离线消息。
关于c# - Akka.net 中的 IActorRefs 太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63398330/
假设我有以下 Actor 层次结构: user |____A___|---E | |---F | |---G | |____B___I |____C___J |____D_
akka.net中的IactorRef.tell可以被多线程调用吗?当然传递给 tell 方法的消息是不可变的 ActorRef.Tell 线程安全吗? 例子:(下面的代码对吗?) class Pr
将 Akka.net 与远程处理结合使用。 This article关于使用 ActorSelection 有以下说法: The other time when I tend to use an Ac
有什么区别?据我了解,Tell (object, IActorRef) 发送原始发件人。但为什么不只使用 Forward 方法呢? 谢谢 最佳答案 您可以将actorRef.Tell(msg) 视为a
我是一名优秀的程序员,十分优秀!