二进制兼容如何分布Akka [英] How binary compatible is distributed akka

查看:82
本文介绍了二进制兼容如何分布Akka的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尽管akka有关于jar替换的二进制兼容性的文档,但我找不到有关协议二进制兼容性的任何信息。



从根本上讲,actor API是邮件的邮箱。因此,只要消息保持二进制兼容,就有可能将消息发送到运行不同版本(与jar不兼容)的akka​​的其他系统。



/ p>


  • 具有固定消息集的2个应用程序

  • 没有类型参与者(仅使用 actor!message actor?message

  • 使用akka 2.3.9的应用程序1



最早的akka​​应用程序2版本可以使用什么?



我要确认的其他项目:




  • Akka群集协议在这里无关紧要-每个应用程序可以拥有自己的群集,并可以使用 TCP远程访问

  • Scala二进制兼容性是irrellevant as很好-系统正在通过TCP协议与一组预编译的消息进行通信(可能在Java中为保证/偏执可能已经指定了这些消息)



首先, 2.0系列具有相同的功能远程配置,但是 1.3 无法正常工作?

解决方案

到目前为止,我们还没有提出已采取措施确保Akka版本之间的协议兼容性-这还意味着对次要版本进行更新。但是,我们尚未引入不必要的更改,并且在Akka协议级别上具有纯远程处理的机会应该很好,因为它可以在2.2.0版以后的各个版本中使用。在此之前,对远程协议握手进行了更改,这很可能会破坏兼容性,而Akka 1.x则完全是另一回事。



我们知道,这个答案不是令人满意,我们将通过完全指定远程协议并执行跨版本测试来进行此工作,但是我们还没有足够的资源来解决这项繁重的任务。


While akka has documentation regarding binary compatibility for drop in jar replacement, I can't find anything regarding protocol binary compatibility.

At the basic level, the actor API is a mailbox of messages. Therefore as long as the messages stay binary compatible there's every possible that messages can be sent to other systems running different (jar-incompatible) versions of akka.

So given:

  • 2 applications with a fixed message set
  • No Typed actors (only using actor ! message and actor ? message)
  • "Application 1" using akka 2.3.9

What's the earliest version of akka "Application 2" could use?

Other items I'd like confirmed:

  • Akka clustering protocol is irrelevant here - each application can have their own cluster and communicate between the clusters using TCP remoting
  • Scala binary compatibility is irrellevant as well - the systems are communicating via a TCP protocol with a pre-compiled set of messages (quite possibly specified in Java for assurance/paranoia)

As a start, the 2.0 series has the same remoting configuration, but is there any reason that 1.3 couldn't be made to work?

解决方案

Up to this point we have not put measures in place that would ensure protocol compatibility between Akka versions—this also means minor version updates. We have not, however, introduced gratuitous changes and on the Akka protocol level with pure Remoting chances should be good that it works across versions since 2.2.0. Before that there were changes to the remoting protocol handshake that will likely break compatibility, and Akka 1.x was a completely different matter entirely.

We know that this answer is not satisfying and we will work on this by fully specifying the remote protocol and implementing cross-version tests, but we have not yet had the resources to tackle this large task.

这篇关于二进制兼容如何分布Akka的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆