kos*_*sii 8 java scala akka akka-stream
akka-stream文档中有这样的说明,说明如下:
......可重用的流描述不能绑定到"实时"资源,任何与此类资源的连接或分配必须推迟到实现时间."实时"资源的示例是已经存在的TCP连接,多播发布者等; ...
关于这个说明,我有几个问题:
Thread?ActorRef那个ActorSystem用过的现有的ActorFlowMaterializer怎么样?PushPullStage但不是在一个创建函数的构造函数中分配它是否安全FlowGraph?小智 2
如果我们考虑 Web 服务、RMI 连接或任何其他通信协议,这里的问题是一个常见问题。始终建议先共享“原始”值,然后再共享引用,因为编组/解组或序列化/反序列化总是令人头痛。还要考虑不同类型的环境之间的相互通信。分享坚实的价值观是解决沟通问题的安全方法。
\n\nAkka 本身就是“微服务”参与者之间进行通信的一个很好的例子。当我阅读 Akka 的文档时,有一个词很好地定义了 Akka Actor。Actor 就像邮箱客户端,你可以认为每个客户端都有一个邮箱。当您传递变量时,就像您收到一封新电子邮件一样。
\n\n长话短说,避免共享“依赖”对象,这些对象在从另一个参与者读取之前可能会失效。此外,如果您的系统动态命名 actorRefs,请避免通过引用来调用它们。
\n\nakka-streams 的文档中解释了“物化”。
\n\n\n\n\n具体化的过程可以被参数化,例如,用关于连接\xe2\x80\x99s地址和端口信息的特定信息来实例化用于处理TCP连接\xe2\x80\x99s数据的蓝图。此外,物化通常会创建特定的对象,这些对象在处理引擎运行时可用于与处理引擎进行交互,例如用于关闭引擎或提取指标。这意味着物化函数从外部获取一组参数并产生一组结果。组合性要求这两个集合不能交互,因为这将建立一个隐蔽的通道,不同的部分可以通过该通道进行通信,从而导致初始化顺序问题和难以理解的运行时故障。
\n
因此,使用参数而不是传递“连接”本身。
\n\n推迟实时资源并不是什么大事。这意味着如果您对所有系统使用一个连接,则应该始终保持它处于活动状态。或者,当您在 actor-1 中创建事务并将其发送到 actor-2 时,您不应该终止 actor-1 中的事务,直到 actor-2 完成其事务工作。
\n\n那你怎么能理解呢?然后你使用“Future”和“offer()”。
\n\n希望我理解你的问题并希望我能表达自己。
\n| 归档时间: |
|
| 查看次数: |
307 次 |
| 最近记录: |