微服务入门介绍SpringCloud

介绍了微服务的基本特点和优势,对于运维和代码架构独立性有了新要求。并介绍SpringCloud及其工具链的基本功能。
展开查看详情

1.微服务入门介绍 SpringCloud 林可斌

2.● 主要内容 一、服务架构设计的发展 二、微服务简介 三、微服务架构工作流程 四、 springCloud 介绍

3.一、服务架构设计的发展

4.单体架构

5.单一代码库、 IDE 友好、看着简单 容易部署 开发模型简单,一份代码库进行编码、构建和部署 技术栈单一 单体架构的特点和好处

6.庞大的代码库,关系错综复杂 交付周期长 扩展能力与弹性受限 新技术与工具框架使用会受限 维护成本高 单体架构的问题

7.服务化架构

8.对业务进行分层,通常分为表现层(前端)、公共服务、业务逻辑服务、数据访问层等 对业务进行解耦,通过 Pub-Sub 或 RPC 进行服务间调用关系解耦 服务独立性,多数服务可以进行独立打包发布 每个服务的技术栈单一 部署简单,具备可伸缩性 服务化架构的特点和好处

9.对于部分服务而言,代码库依然很庞大 打包、发布、部署流程不足够好 维护团队间沟通受阻,技术经验有效传递不够 服务增多对开发人员不够友好 服务化架构的问题

10.微服务架构 服务注册 → 服务发现 → 服务调用

11. MVC SOA Micro services 架构设计发展

12. MVC SOA Micro services 视图、业务逻辑 前后端分离 架构设计发展

13. MVC SOA Micro services 视图、业务逻 大型系统分层 辑前后端分离 解耦,标准接 口调用,分布 式系统 架构设计发展

14. MVC SOA Micro services 视图、业务逻 大型系统分层 云计算产物, 辑前后端分离 解耦,标准接 关注敏捷交付 口调用,分布 和部署速度、 式系统 频次 架构设计发展

15.二、微服务简介

16. suite of small services : 由一系列小服务组成 running in its own process : 每个服务运行于自己的独立进程 built around business capabilities : 围绕着业务功能进行建模 independently deployable : 每个服务可进行独立部署 bare minimum of centralized management : 最低限度集中种管理  

17.微服务的特征 每个微服务都是业务完整的 接口及界面呈现、业务逻辑、数据管理 每个微服务仅仅对一个业务负责 产品服务、评价服务、支付服务、订单服务 每个微服务接口明确定义 接口消费只关注接口,对微服务不具备依赖 独立部署、升级和伸缩

18.服务的独立性与自主性

19.微服务的独立性与自主性 微服务间的独立性是关键 代码库独立 技术栈独立 可伸缩性、可扩展性独立 还有业务功能等

20.独立的代码库 每个微服务具备自己的代码仓库 由对应团队开发者维护 编译、打包、发布及部署都很快 服务启动迅速 在各个服务的代码库间没有交叉依赖

21.技术栈对立 每个微服务都有自己独立的技术栈来实现 根据业务实现需求来选中最合适的技术栈 团队可以尝试新的技术、工具或者框架 所选的技术栈一般来说都很轻量级 不需要同一标准化技术栈的选择。无需针对技术选型而纠关注业务实现

22.独立的可伸缩性 每个微服务都可以独立的伸缩 更加直观定位性能瓶颈 数据库分片可以根据需求来

23.业务功能独立 每个微服务可以在不影响其他微服务的情况下进行功能扩展 例如更新新版本界面或者某个微服务中的某项功能时,无需更新整个系统 可以进行整个业务功能的重写,并替换之 *要保证接口明确定义且稳定

24.微服务优点 每个服务足够内聚,足够小,代码容易理解、开发效率提高 服务之间可以独立部署,微服务架构让持续部署成为可能 ; 每个服务可以各自进行 x 扩展和 z 扩展,而且,每个服务可以根据自己的需要部署到合适的硬件服务器上 ; 容易扩大开发团队,可以针对每个服务 (service) 组件开发团队 ; 提高容错性 (fault isolation) ,一个服务的内存泄露并不会让整个系统瘫痪 ; 系统不会被长期限制在某个技术栈上。

25.微服务不足 “微服务”强调了服务大小 业务逻辑。 分区数据库 测试

26.三、微服务架构工作流程

27.微服务架构工作流程 设计阶段 将产品功能拆分为若干服务 为每个服务设计 API 接口 开发阶段 实现 API 接口(包括单元测试) 开发 UI 原型(页面) 测试阶段 前后端集成 验证产品功能 部署阶段 发布测试环境 发布生产环境

28.四、 springCloud 介绍

29.springCloud 介绍 Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。 Spring 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。