繁体   English   中英

是否可以同时运行具有网络和动脉功能的akka​​系统?

[英]Is it possible to run akka system with both transport enabled netty and artery?

是否可以运行具有不同传输方式(网络/动脉)的两个应用程序并使它们彼此通信? 例如:如果系统A正在监听tcp端口(网络端口),而系统B正在监听udp端口(动脉),我们可以从B向A发送消息吗?

当我试图在系统B上创建一个actor ref时: system.actorFor("akka.tcp://akka-2-5@127.0.0.1:2525/user/actor-2-5")

我遇到错误: java.lang.IllegalArgumentException: Wrong protocol of [akka.tcp://akka-2-5@127.0.0.1:2525/user/actor-2-5], expected [akka]

因此,看起来我需要配置actor系统以同时使用两个传输系统。 但是,我们该怎么做呢? 我正在寻找一种通过单一参与者系统和不同的akka​​传输(网络或动脉)发送消息的方法,因为不同的微服务邻居可以使用不同的传输。

您不能在同一ActorSystem中同时启用动脉和传统远程处理。 我能想到的唯一解决方法是有两个actor系统,一个使用动脉运行远程处理,另一个使用遗留远程处理(尽管这可以在同一JVM中完成)。

请注意,一般而言,Akka远程处理不是用于微服务间通信的很好的协议,因为它可以将单独的微服务绑定到相同的二进制版本的Akka,库和应用程序类,并迫使您进行锁步升级(请参阅Ben的演讲)克里斯滕森(Christensen)的更多信息: https : //www.microservices.com/talks/dont-build-a-distributed-monolith/ )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM