Micro Services

阅读推荐

  • 微服务设计(图灵出版的)-- 适合新手了解微服务概念
  • 微服务架构设计模式 -- 偏细节,Java

什么是微服务?

广义:微服务是一种分布式系统解决方案,推动细粒度服务的使用,使这些服务系统工作。

微服务由来

微服务架构风格

1.将单个应用程序作为一组小型服务开发的方法
2.每个服务程序都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)进行通信
3.这些服务围绕业务功能构建
4.可以通过全自动部署机器独立部署
5.这些服务可以用不同的编程语言编写,使用不同的数据存储技术,并尽量不用集中式方式进行管理

精髓:分而治之,合而用之

区分微服务、微服务框架、微服务架构

  • 微服务架构: 将复杂的系统使用组件化的方式进行拆分,并使用轻量级通讯方式进行整合的一种设计方法。
  • 微服务: 通过这种架构设计方法拆分出来的一个独立的组件化的小应用。
  • 微服务框架: 实现微服务开发的第三方工具

组件服务化

Go实现一个微服务的组成: - kit: 一个微服务的基础库(框架) - service:业务代码 + kit依赖 + 第三方依赖组成的业务微服务 - rpc + message queue: 轻量级通讯

本质上等同于:多个微服务组合(compose)完成要给完整的用户场景(usercase)

去中心化

  • 数据去中心化
  • 治理去中心化
  • 技术去中心化

每个服务独享自身的数据存储设置(缓存、数据库等)

好处:保持服务独立性,隔离相关干扰

基础设施自动化

todo