关于微服务架构

ps:这两天在学校听了关于云计算方面的讲座,恰好最近要确定未来研究方向,感觉自己很感兴趣,所以去了解了一下相关内容作为学习使用,如果错误欢迎指正。

一、微服务架构

什么是微服务

微服务英文名为 (micro services) 主要抓住微来定义,这种架构模式的目的是将大型复杂的长期运行的应用程序构建为一套服务可以相互组合,我的理解就是可以像搭积木一样。
提高容错性、实现程序的解耦合等,传统应用程序如果要迭代版本,修复bug等可能需要暂停服务,但是微服务架构服务可以独立部署,不用暂停整个应用程序,只要把维护出问题的服务就行。
另外就是微服务的自治性,我觉得特别要提一嘴,一个微服务就是一个独立个体,每个微服务都有自己独立的基础组件,例如数据库、缓存等且运行在独立的进程中。

二、微服务优缺点

优点

技术异构

不一定非要用Java、 c++或者node.js一项技术用到头,可以各个微服务用不同的技术实现。

简化部署
可扩展
逻辑清晰

一个仅负责一项很明确业务的微服务,在逻辑上肯定比一个复杂的系统更容易让人理解。

灵活组合

在微服务架构中,可以通过组合已有的微服务以达到功能重用的目的。

高可靠

一个微服务的异常不会导致其它微服务同时异常

缺点

复杂度高
比如说一个商城将订单与商品上架做了微服务,在使用时,由于是不同数据库,就区别于以往的单一数据库,需要添加分布式数据管理机制。
另外还有客户端与服务端的通信问题,可能就需要添加API网关来降低客户端对多微服务的访问。
运维复杂
在采用微服务架构时,系统由多个独立运行的微服务构成,需要一个设计良好的监控系统对各个微服务的运行状态进行监控。运维人员需要对系统有细致的了解才对够更好的运维系统。

(以上就是大致对微服务有个了解。本人也在持续学习中,以后会再添加新内容的。另外若侵则删。)