title: "初步了解微服务架构" date: 2017-03-05T21:23:00+08:00 tags: ["微服务", "读书笔记"] draft: false
是一种架构模式,提倡将单一的应用程序划分成一组小的服务,服务之间相互协调、相互配合,为用户提供最终价值。
微服务架构其实是将单一的应用程序划分成一组小的服务,每个服务都是具有业务属性的独立单元,同时能够被独立开发、独立运行、独立测试以及独立部署。
SOA 实现 | 微服务架构实现 |
---|---|
企业级,自顶向下开展实施 | 团队级,自底向下开展实施 |
服务由多个子系统组成,粒度大 | 一个系统被拆分成多个系统,粒度细 |
企业服务总线,集中式的服务架构 | 无集中式总线,松散的服务架构 |
集成方式复杂(ESB、WS、SOAP) | 集成方式简单(HTTP、REST、JSON) |
单块架构系统,相互依赖,部署复杂 | 服务能独立部署 |
注:SOA 是面向服务架构,对于复杂的企业 IT 系统,应按照不同的、可重用的颗粒度划分,将功能相关的一组功能提供者组织在一起为消费者提供服务。
RPC | REST | HAL | 消息队列 | 后台任务系统 | |
---|---|---|---|---|---|
通讯方式 | 同步通讯 | 同步或者异步通讯 | 同步或者异步通讯 | 异步通讯 | 异步通讯 |
平台依懒性 | 强 | 平台无关 | 平台无关 | 强 | 弱 |
语言支持 | 好 | 语言无关 | 语言无关 | 好 | 中 |
学习成本 | 高 | 低 | 低 | 高 | 低 |
维护成本 | 高 | 低 | 低 | 高 | 低 |
由于微服务具有高内聚,低耦合的特点,每个应用都是一个独立的个体,当出现问题时,很容易定位问题并解决问题,大大缩短了修复缺陷的周期。
另外,通过使用不同功能的微服务结构提供数据,用户接口(UI)部分变成一个非常简洁、轻量级的应用,更关注如何渲染页面以及表单提交等交互功能,做到真正的前后端分离。
最后我还想说的是,微服务架构不是银弹,使用微服务架构是需要很大成本的,只有数据和业务达到一定的量级还能发挥好微服务架构的优势。
注:以上内容是《微服务架构与实践》的读书笔记。