系统软件架构中,现在很流行微服务,那么使用微服务就一定好么?微服务有哪些缺点呢?

低调的牛肉


——什么是微服务:微服务(Microservices Architecture),它是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。

优点:每一个服务足够内聚,足够的小,所以代码容易理解,这样能够聚焦一个指定的业务功能或业务需求。它开发简单,开发效率也提高,一个服务可能就是专一的只干一件事情。微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的,微服务能够被小团队单独开发, 也能使用不同的语言开发。


微服务易于第三方集成,微服务允许容易且灵活的方式集成自动部署,通过持续集成工具,如Jenkins、Hudson等。微服务容易被一个开发人员理解、修改和维护,这样小团队能够更关注自己的工作成果。无需通过合作才能体现价值,它允许你利用融合最新技术, 只是业务逻辑的代码,不会和HTML/CSS或其他界面组件混合,每个微服务都有自己的存储能力,可以有自己的数据库,也可以统一数据库。

缺点:微服务将原来的函数式调用改为服务调用,不管是用rpc,还是http、rest方式,都是增大系统整体延迟。这个是再所难免的了,就需要我们将原来的串行编程改为并发编程甚至异步编程,所以增加了技术门槛。


微服务应用程序是一个分布式系统,这带来了复杂性,开发人员需要选择并实现基于消息传递或RPC的进程间通信机制。此外呢,还必须编写代码来处理部分故障,因为请求的目的地可能很慢或不可用。


总的来说: 单一架构只适用于简单、轻量级的应用程序。如果将其用于复杂的应用程序,那么会是很痛苦的。微服务体系结构模式对于复杂的、不断发展的应用程序是更好的选择,尽管它有缺点和实现方面的挑战。


分享到:


相關文章: