目录

初始微服务

软件架构的进化

什么是微服务

画一个微服务架构图

微服务架构引入的问题及解决方法

微服务间如何通讯

流行的RPC框架

服务发现

服务编排

SprinBoot 与微服务

SprinCloud 与微服务

SpringCloud核心组件

Netflix EureKa

Netflix Ribbon

Spring Cloud Config​


​​​​​​

 

  • 初始微服务

  1. 软件架构的进化
  2. 什么是微服务
  3. 画一个微服务架构图
  4. 微服务架构的优势
  5. 微服务架构的不足
  • 软件架构的进化

  1. 1 什么是软件架构?

软件架构是在软件的内部,经过综合各种因素的考量、权衡,选择特定的技术,将系统划分成不同的部分,并使这些部分相互分工、彼此协作,为用户提供需要的价值。

  1. 2 软件架构考虑那些因素?

1)业务需求

2)技术栈

3)成本

4)组织架构

5)可扩展性

6)可维护性

  • 什么是微服务

使用一套小服务来开发单个应用的方式,每个服务运行在独立的进程里,一般采用轻量级的通信机制互联,并且他们可以通过自动化的方式部署。

1. 1​ ​​​​​​多微才算微

实际上是传递的是思路,而不是固定的量,不按照代码量和开发时间来算。

1. 2 微服务特征

      1)单一职责(关联性不大的单一功能)

      2)轻量级通信(与平台无关和语言无关)

      3)隔离性(每个微服务运行在自己的进程中不会相互干扰)

      4)有自己的数据(有自己存储数据的地方)

      5)技术的多样性(c java等开发的微服务)

1. 3​ ​​​​​​微服务诞生背景

      1)互联网行业的快速发展

      2)敏捷开发(频繁修改、测试),精益方法深入人心

      3)容器技术的成熟(docker)


  • 画一个微服务架构图

1. 1​ ​​​​​​假定业务场景

    1)一个在线教育的网站的部分功能

    2)用户可以登陆注册、获取用户信息

    3)有发送邮件发送短信的功能

    4)可以查看课程列表和对课程的基本CRUD

1.2 架构图

    1)单体架构下业务图

Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

   2)微服务架构下业务图

  • 微服务架构引入的问题及解决方法

  1. 微服务间如何通讯?
  2. 微服务如何发现彼此?
  3. 微服务怎样部署?更新?扩容?
  • 微服务间如何通讯

  1. 1 从通讯模式角度考虑

            1)一对一还是一对多?

            2)同步的还是异步的?

Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

  1. 2 从通讯协议角度考虑

            1)REST API (把动作类的东西,变成Http本身的一种请求方式,URL设计就会相对来说比较简单)

Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

            2)RPC

Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

            3)MQ(发布订阅的方式)

      1.3 如何选择RPC框架(微服务之间通讯选择最多的一种情况)

            1)I/O、线程调度模型

            2)序列化方式

            3)多语言支持

            4)服务治理

      1.4 流行的RPC框架

            1)Dubbo/Dubbox

            2)Motan

            3)Thrift

            4)Grpc

  • 流行的RPC框架

           1.1 Dubbo

                 1)pic(蓝色:初始化的时候启动,实线:同步)

Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

1.1 Motan

                  1)pic

Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

1.1 Thrift

                  1)pic

Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

            1.3 GRPC

                 1)pic

Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

            1.4 对比

                 1)pic

Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

  • 服务发现

  1. 1 传统服务vs微服务

 Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

  1. 2 如何发现

                1)客户端发现

Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

                2)服务端发现

Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

  • 服务编排

  1. 流行的服务编排工具 Mesos、 Docker Swarm、Kubernetes

  • SprinBoot 与微服务

  1. 1 SpringBoot 的使命?

化繁为简

  1. 2 SpringBoot 核心功能?

Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

  1. 3 SpringBoot 与微服务的关系?

Java的润滑剂

  • SprinCloud 与微服务

  1. 1 SpringBoot 的使命?

简化Java的分布式系统

  1. 2 深入理解?

Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

  1. 3 SpringCloud vs SpringBoot?

Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

  1. 4 SpringCloud vs 微服务?

​​​​​​​Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门


  • SpringCloud核心组件

​​​​​​​Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

  • Netflix EureKa

Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

  • Netflix Ribbon​​​​​​​

Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

  • Netflix HystrixDocker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

  • Netflix ZuulDocker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

Docker Kubernetes 微服务容器化实践(一) 1.2 微服务入门

  • Spring Cloud ConfigDocker Kubernetes 微服务容器化实践(一) 1.2 微服务入门​​​​​​​

相关文章: