【发布时间】:2018-01-06 02:14:57
【问题描述】:
我有多模块应用程序。更明确地说,这些是 Maven 模块,其中高级模块依赖于低级模块。 以下是一些模块:-
user-management
common-services
utils
emails
例如:- 如果user management 模块想要使用来自utils 模块的任何服务,它可以调用它的服务,因为 utils 的依赖关系已经在用户管理下注入。
为了真正遵循微服务架构转换/调用我的项目,我相信我需要将每个模块转换为可独立部署的服务,其中每个模块都是一个战争模块
并通过http(主要作为resful web services)提供服务。这是正确的还是其他需要注意的?
现在可能每个模块都必须得到保护和身份验证层?
如果这就是微服务的症结所在,当有人问你是否像我一样从事微服务工作时,我真的不明白它不是工具/平台/框架,而是一个简单的 将您的单体应用程序划分为较小的可部署模块集的概念,这些模块的服务可通过 HTTP 获得。不是吗?可能是它的另一个流行词。
更新:- 显然,采用微服务方式有优势,例如独立的单元可测试模块,可扩展,因为它可以部署在单独的机器上,松散耦合等,但我认为我还需要处理两个复杂的问题
- 身份验证:- 对于每个模块,我需要确保它对请求进行身份验证,但目前情况并非如此
- 事务:- 我无法跨不同服务维护事务原子性,目前我可以很容易地做到这一点
【问题讨论】:
-
这些模块中哪些公开服务,哪些不公开?
标签: java microservices