Grid Ops Java-教程

时间:2020-01-09 14:11:09  来源:igfitidea点击:

Grid Ops for Java是用Java实现的开源分布式系统工具包。 Grid Ops的目的是使实现不同的分布式系统体系结构变得容易。这种灵活性使我们可以更轻松地尝试不同的体系结构,以便为系统找到合适的体系结构。

Grid Ops由Nanosai开发,后者是Jenkov Aps(此网站背后的公司)与Zaiku Group之间的合资企业。

为了实现我们所追求的灵活性,我们从头开始开发了Grid Ops,并尽可能减少了外部依赖关系(目前为0个依赖关系)。虽然使用外部工具包可能有助于我们更快地使用Grid Ops工具包,但外部工具包可以影响设计选项。工具箱和平台通常包含设计决策,有时这些设计决策可能与决策冲突。为了避免这种情况,我们决定自己开发所有东西。

因为我们自己实现所有事情,所以Grid Ops的发展要比将一组常见的开源工具捆绑在一起的其他框架要慢一些。但是,我们希望所获得的灵活性能够弥补开发时间的缩短。

此外,Grid Ops的不同部分以不同的速度稳定下来。有些零件已经相当稳定并经过了良好的测试,而另一些零件仍处于试验阶段,可能会被删除或者更换。文档(在这些教程中)将提到给定部件是稳定的还是实验的,因此请当心。

IAP

Grid Ops无法通过HTTP进行通信。相反,Grid Ops使用IAP(互联网应用协议),这是我们自己设计的网络协议。我们选择设计自己的网络协议,以避免受到现有协议的限制。

IAP是围绕可用于实现自定义协议的通用消息格式设计的,唯一的要求是这些协议将其通信分解为消息。这些定制协议称为"语义协议",因为正是这些协议定义了交换消息的语义。

我们将设计一组可以使用的标准语义协议。如果这些标准语义协议不符合需求,则可以实现自己的协议。

Grid Ops可以同时支持多种语义协议。传入消息告诉它们它们属于什么语义协议,以及它们代表该协议内的消息类型,并且可以相应地进行路由和处理。因此,我们可以使用Grid Ops实施多协议应用程序。这是设计使然,以增加Grid Ops的灵活性。

ION

IAP使用二进制数据格式对消息进行编码,这称为ION(IAP对象表示法)。 ION与JSON的二进制版本相似,但进行了一些改进,例如能够更优化地承载二进制数据,更紧凑地表示整数,数据,并支持对表格数据进行更优化的编码(例如CSV文件)。

ION也可以用作通用数据格式。我们可以将ION编码的数据存储到文件中,还可以在IAP消息中发送使用ION编码的数据结构。

Maven依赖

注意:目前,Maven依赖项不是最新的。我们希望将来能解决此问题。我们可以从Grid Ops GitHub存储库下载JAR文件,并将其放入本地Maven存储库。当我们再次使Maven部署更新时,它将如下所示:

<dependency>
  <groupId>com.nanosai</groupId>
  <artifactId>grid-ops</artifactId>
  <version>0.4.0</version>
</dependency>

切记将版本号替换为我们打算使用的Grid Ops的版本。

GitHub储存库

可以在以下位置找到Grid Ops GitHub存储库:

https://github.com/nanosai/grid-ops-java