Rest 从业务方法还是技术方法看微服务体系结构?
我们的团队正在尝试解耦一个单片spring mvc管理应用程序(创建、更新、删除),我们希望采用一种基于微服务的架构 经过一番研究,最好的办法似乎是根据软件的特定部分所解决的问题创建微服务,例如管理客户端 当我们阅读一些定义时,就会出现问题,如中的以下定义: 在软件工程中,单片应用程序描述 单层软件应用程序,其中用户界面和 数据访问代码从单个程序组合到单个程序中 站台 基于这个定义,我的应用程序不是单一的,因为它在层中完全分离,但它也没有在微服务体系结构中找到,这让我感到困惑,因为在web中,所有的东西都是关于单片与微服务的 那么,是否应该根据微服务解决的业务问题来设计微服务体系结构? 是否应根据应用程序分层的方式设计微服务体系结构?Rest 从业务方法还是技术方法看微服务体系结构?,rest,docker,cloud,microservices,Rest,Docker,Cloud,Microservices,我们的团队正在尝试解耦一个单片spring mvc管理应用程序(创建、更新、删除),我们希望采用一种基于微服务的架构 经过一番研究,最好的办法似乎是根据软件的特定部分所解决的问题创建微服务,例如管理客户端 当我们阅读一些定义时,就会出现问题,如中的以下定义: 在软件工程中,单片应用程序描述 单层软件应用程序,其中用户界面和 数据访问代码从单个程序组合到单个程序中 站台 基于这个定义,我的应用程序不是单一的,因为它在层中完全分离,但它也没有在微服务体系结构中找到,这让我感到困惑,因为在web中,所
谢谢。我喜欢将每个微服务视为独立的较小的整体。当您强迫自己将遗留应用程序拆分为更小的整体时,您会发现:
关于上面的#1,通常有一大堆脚手架模块,你毕竟可以避免手写。根据我的经验,微服务最明显的优势是能够水平扩展。用户分析需要多长时间?只需再增加10名工人。完成。那就撤掉吧。无需向运行monolith的本已昂贵的服务器添加更多RAM/CPU/任何东西 不要提前计划尝试分离ClientManager微服务-这应该只是一个类 您考虑迁移到微服务是有原因的。有些东西占用了太多的资源找出最有问题的流程,使一切都变慢,并为其创建微服务。例如,可以是报告生成、用户创建、数据发布。从规划API开始。它将明确说明,它将承担什么责任以及将使用多少资源。当您知道它应该做什么时,正确地命名它 在这个过程中,敏捷软件方法是你最好的朋友。把这些过程一个接一个地进行实验、迭代和评估。随着时间的推移,微服务应该如何做将变得显而易见 还有一个热门话题是如何使用微服务组织代码——我倾向于使用一个包含所有代码的单一存储库
- 优点:多个服务的一次请求、简单的UTIL共享、通用依赖性、通用部署过程和更简单的自动化
- 缺点:你很容易破坏API合同,在一个微服务中做太多的工作(也就是说,它可能承担其他服务的责任)