Lagom框架包括库和开发环境,可以全面支撑您从开发到部署:
- 在开发过程中,一条命令构建项目并启动所有服务和Lagom的基础设施。当您修改代码时,它会热加载。开发环境允许您在几分钟内启动一个新服务或加入现有的Lagom开发团队。
- 您可以使用Java或Scala创建微服务。Lagom为微服务之间的通信提供了无缝的体验。Lagom透明地处理服务位置、通信协议和其他问题,最大限度地提高了便利性和生产率。Lagom支持事件溯源和CQRS(命令查询责任隔离)来实现持久性。
- Lagom为您创建服务客户端(基于服务描述符),这使得调用和测试端点非常容易。
- 在您选择的平台上部署,例如:
- Kubernetes,一个用于自动化部署、扩展和管理容器化应用程序的开源系统。
- DC/OS,一个基于Apache Mesos分布式系统内核的开源分布式操作系统,由Mesosphere公司创建和维护。
- 支持主机之间的私有网络的任何云或本地部署环境。
设计一个能够实现高可伸缩性并在意外故障面前表现出弹性的微服务系统是极其困难的。如果没有像Lagom这样的框架,您将需要处理分布式系统中固有的所有复杂的线程和并发问题。按照设计那样去使用Lagom,您可以避免许多此类陷阱,同时提高生产率。但是,Lagom允许您在现有的约束条件下采用reactive architecture,而不是将所有东西都扔掉,然后重新开始。例如,您可以创建以下微服务:
- 与遗留系统交互,或替换单个应用程序功能。
- 使用Cassandra或您所选择的其他数据库实现持久化,或与其他数据存储集成。(Lagom的持久化api默认支持Cassandra,因为Cassandra提供的分片和读侧支持等功能在微服务系统中工作效果很好)
本节的其余主题将进一步介绍:
Lagom系统架构:
- Lagom设计哲学
- 多语言系统
Lagom开发环境
- 概述
- 构建哲学
- 组件技术
- API概述
系统中使用的模式:
- 设计你的微服务系统
- 定制个性化微服务
- 内部外部通信
- 服务注册和服务发现
- 使用不可变对象
- 管理数据持久化
- 事件溯源的优势
- 读写分离
- 部署弹性可伸缩系统