作为一个完备的微服务平台,Lagom整合了一系列技术,并在这些技术之上提供额外价值。Lagom使用和支持的一些库、工具和服务器是在Lightbend开发的,其他的是第三方和开源的。当你使用Lagom进行开发时,你也可以利用这些技术:
- Play框架——Lagom是在Lightbend的web框架Play Framework上实现的。在开发简单的微服务时,这个实现细节并不会与您产生直接关系。然而,高级用户可以直接调用Play APIs。如果您有一个现有的Play框架应用程序,并希望向其添加微服务,那么Lagom将提供对该用例的支持。
- Akka - Lagom持久性、发布-订阅和集群都是在Akka之上实现的,Akka是Lightbend用于构建并发、分布式和弹性消息驱动应用程序的工具包。(这是一个实现细节,在开发简单的微服务时与您没有直接关系。然而,你也可以直接调用Akka api。)
- 为了跨多个服务器扩展微服务,Lagom通过Akka Cluster提供集群化能力。
- 如服务实现中所述,Lagom服务可以是“简单的”或“流式的”。流式异步Lagom服务构建在Akka Streams基础之上。
- Akka Split Brain Resolver用于处理网络故障和系统崩溃。
- Akka Coordination Lease是分布式锁。例如,您可以使用Kubernetes Lease对部署在Kubernetes中的Lagom和Akka集群应用程序进行增强的故障恢复。
- Lightbend Platform订阅者可以使用其他组件来对其系统进行操作和优化。
- Lightbend Telemetry 和 Lightbend Console 让您可以看到系统运行状况、可用性和性能。
- Cassandra—默认情况,Lagom需要持久化数据的微服务使用Cassandra实例作为开发环境的一部分运行。您还可以使用现有的Cassandra服务器数据库或其他类型的数据库。有关更多信息,请参见管理数据持久性。
- Guice— 与Play类似, Lagom使用Guice用于依赖注入。
- SLF4J和Logback——Lagom使用SLF4J f进行日志记录, Logback 作为其默认的日志记录引擎。有关更多信息,请参阅日志记录。
- Typesafe Config Library——Lagom及其许多组件技术都是使用Typesafe Config来配置的。配置文件格式是HOCON,它是JSON的一个强大而富有表现力的超集。
- 序列化——Lagom推荐的序列化格式是JSON。对于Java,用于JSON序列化和反序列化的默认引擎是Jackson,而对于Scala则是 Play JSON。还支持其他序列化格式。