我已经了解了所有三种技术,我认为这三种技术或多或少都只不过是解决相同或常见问题的不同方法而已
常见问题:假设有一个非常大的企业应用程序,随着时间的推移,该应用程序通过添加新功能、更新现有功能、修复错误等(以整体架构风格)变得越来越大、越来越复杂,其后果是很难解决的。维护代码,如果任何事情破坏都会破坏整个应用程序,对应用程序所做的更改需要重建和重新测试并重新部署整个应用程序(重新部署.Ear、.War 等),这是一个耗时的过程,并且应用程序停机时间很长。
常见解决方案:将大型企业应用程序分成“小块”,这些“小块”以不同的名称进行调用 在 Java 9 中:它被称为“模块”或 JMPS(Java 模块平台系统) 在 OSGi 中:它被称为作为基于微服务的架构中的“捆绑”:它被称为微服务或只是服务
让这些小块执行单一功能,让它们独立工作、独立部署、独立启动和停止,然后在这些小块之间提供依赖关系,以便它们可以与其他小块进行通信,使整个应用程序无缝工作。如果任何小块发生故障,不应对整个应用程序产生重大影响,该特定功能只会受到影响,但整个应用程序仍保持运行 易于维护小块(称为模块、捆绑包、微服务) 开发速度更快,易于部署和部署装运它。
除此之外,如果有人非常了解这三种技术,并且能够为每一种技术提供具体的差异和具体的用途,那就太好了。
问候, 戈库尔