spring-boot - Spring boot 或 Vertx 或任何其他用于反应式微服务开发的框架
问题描述
我想将我的单体应用程序转换为微服务,因为它的大小更大,并且所有模块都紧密耦合在同一个中。我浏览了许多文档,但仍然无法弄清楚我应该使用哪个框架。
我的用例:-
我正在开发的微服务将捆绑在一个容器中,
并将部署在客户的系统上,因此 Jar 的大小是第一个约束。我希望所有这些都通过单个通道进行通信,并且如果通道出现故障或者应该优雅地处理它。
- 我有几个用例,请求将花费大约 15 到 20 分钟的时间来完成。
这里有一些关于框架基准测试的发现
解决方案
设计微服务架构的方法有很多,唯一的限制是要有两个或多个相互通信的独立应用程序。考虑到这一点,您可能必须考虑更多的问题,这些问题来自工件的大小。
整个系统必须具有高可用性、弹性和可扩展性?也许最好的选择是基于消息通信的反应式架构,例如 lagom
如果您对服务之间的休息/同步通信感到满意,您可以使用可能使用一些断路器库之王通过 http 调用进行通信的 spring boot 应用程序。
如果您想要更轻量级的工件并更快地运行 micronauts 是一个不错的选择。
还有许多其他框架可以帮助您开发架构,但最重要的是发现应用程序的真正需求,以便更好地在其中进行选择。
推荐阅读
- postgresql - Wal-e:无法推送备份 - 权限错误
- webpack - webpack 问题“可下载字体被 sanitizer 拒绝”或“无法解码下载的字体”
- java - java.lang.InternalError:在 PATH 上运行带有 Java14 的 EXE4J .exe 时未初始化平台编码
- kdb - kdb - 如何以动态/快速的方式增加缺少日期的表
- swift - 应用程序在 Xcode 模拟器上运行,但在连接我的手机时显示错误
- c# - C# TimeSpan 给出的结果与预期不同
- django - 如何显示 EmailMultiAlternatives 邮件对象的 html 内容
- java - 如何从 recyclerview 中获取价值并将其相加以获得 android studio 中的总价值
- python - 如何在 SQLAlchment 查询语句中调用函数?
- java - 使用 Java8 使用另一个列表过滤列表