《轻量级微服务架构》读书笔记

微服务是一种分布式系统架构,它建议我们将业务切分为更加细粒度的服务,并使每个服务的责任单一且可独立部署,服务内部高内聚,隐含内部细节,服务之间低耦合,彼此互相隔离。

传统应用架构遇到的问题:

  • 系统资源浪费
  • 部署效率太低
  • 技术选型单一

微服务需要满足的要求:

  • 根据业务模块划分服务种类
  • 每个服务可独立部署且互相隔离
  • 通过轻量级API调用服务
  • 服务需要保证良好的高可用性

交付流程:

  • 设计阶段:拆分服务,设计API接口,给出API文档
  • 开发阶段:服务端实现API接口;前端模拟API开发Web
  • 测试阶段:部署到测试环境后,QA测试;产品进行功能验收
  • 部署阶段:运维部署到预生产环境,QA进行冒烟测试;确认后部署到正式环境

开发规范:

  • Git Flow的使用

特点与挑战:

  • 特点
    • 微小度颗粒
    • 责任单一性
    • 运行隔离性
    • 管理自动化
  • 挑战
    • 运维要求高
    • 分布式复杂性
    • 部署依赖较强
    • 通信成本较高

微服务架构图

微服务架构图.png

微服务技术选型

微服务架构技术选型.png
  • 使用JenKins部署服务
  • 使用Spring Boot开发服务
  • 使用Docker封装服务
  • 使用ZooKeeper注册服务
  • 使用Node.js调用服务

其他技术选型:

自动化发布平台

自动化发布平台系统架构.png

(1)开发人员将源码提交到代码仓库系统GitLab中。
(2)持续集成系统Jenkins定期会从GitLab上拉取指定项目的源码。(也可以人工手动触发去拉取)
(3)在Jenkins上进行自动构建,并生成相关的Docker容器,形成相应的测试环境。
(4)测试人员在自己的测试环境下进行功能测试。