一.微服务基础
1.微服务的概念(面向服务的体系结构SQA架构模式的一种变体)
1).服务化
把传统的单应用中的本地方法调用,改造成通过RPC、HTTP产生的远程方法调用
把模块从单体应用中拆分出来,独立成一个服务部署
2).微服务
是一种架构风格
开发单个应用作为一系列小型服务的套件,其中每个服务都运行在自己的进程中,并且通过轻量级的机制实现彼此间的通信,这通常是HTTP资源API
这些服务是围绕着业务功能构建的,并且可以通过完全自动化的部署机制进行独立部署
每种服务都可以通过不同的编码语言进行编写,也可以使用不同的数据存储技术
(自己理解:微服务:拆分,即就是将一个大的单体项目,按功能拆分成若干个小的系统,每个系统都运行在自己的进程中(一个系统的宕机不会影响另一个系统运行不了),系统之间通过Http或RPC进行远程通信,每个服务都可以有自己的编码风格,独立部署,不需要统一的架构风格)
3).微服务的特点
组件以服务形式来提供
轻量级通信,独立进程(Http.RPC通信而不是本地方法方法调用)
分散治理,去中心化治理
容错性设计
4).微服务的优缺点
优点:服务简单,便于学习和上手,相对易用维护
独立部署,灵活扩展
技术栈丰富
缺点:运维成本过高
接口可能不匹配
代码可能重复
架构复杂度提高
二.微服务的框架(springCloud,Dubbo)
1.springCloud概念
springcloud是基于springboot构建的微服务架构,它是多种微服务架构技术的集合体(包含断路器,服务注册,负载均衡,服务网卡,分布式配置,控制总线等),是一站式开发分布式系统的框架
注:相对于Dubbo来说springcloud提供非常完整的微服务开发的组件,而不需要集成其他第三方组件
2.springCloud与springboot的版本匹配
一.微服务基础
1.微服务的概念(面向服务的体系结构SQA架构模式的一种变体)
1).服务化
把传统的单应用中的本地方法调用,改造成通过RPC、HTTP产生的远程方法调用
把模块从单体应用中拆分出来,独立成一个服务部署
2).微服务
是一种架构风格
开发单个应用作为一系列小型服务的套件,其中每个服务都运行在自己的进程中,并且通过轻量级的机制实现彼此间的通信,这通常是HTTP资源API
这些服务是围绕着业务功能构建的,并且可以通过完全自动化的部署机制进行独立部署
每种服务都可以通过不同的编码语言进行编写,也可以使用不同的数据存储技术
(自己理解:微服务:拆分,即就是将一个大的单体项目,按功能拆分成若干个小的系统,每个系统都运行在自己的进程中(一个系统的宕机不会影响另一个系统运行不了),系统之间通过Http或RPC进行远程通信,每个服务都可以有自己的编码风格,独立部署,不需要统一的架构风格)
3).微服务的特点
组件以服务形式来提供
轻量级通信,独立进程(Http.RPC通信而不是本地方法方法调用)
分散治理,去中心化治理
容错性设计
4).微服务的优缺点
优点:服务简单,便于学习和上手,相对易用维护
独立部署,灵活扩展
技术栈丰富
缺点:运维成本过高
接口可能不匹配
代码可能重复
架构复杂度提高
二.微服务的框架(springCloud,Dubbo)
1.springCloud概念
springcloud是基于springboot构建的微服务架构,它是多种微服务架构技术的集合体(包含断路器,服务注册,负载均衡,服务网卡,分布式配置,控制总线等),是一站式开发分布式系统的框架
注:相对于Dubbo来说springcloud提供非常完整的微服务开发的组件,而不需要集成其他第三方组件
2.springCloud与springboot的版本匹配
3.springCloud的整体架构
服务消费者与服务提供者都向服务注册中心进行注册(注册内容:服务的主机,端口号,版本号,通信协议等信息)后,服务消费者向服务注册中心发送请求获取对应的服务提供者信息,从而进行远程通信
4.springcloud五大常用组件
服务发现——Netflix Eureka
客服端负载均衡——Netflix Ribbon
断路器——Netflix Hystrix
服务网关——Netflix Zuul
分布式配置——Spring Cloud Config
声明式服务消费——Feign
3.springCloud的整体架构
服务消费者与服务提供者都向服务注册中心进行注册(注册内容:服务的主机,端口号,版本号,通信协议等信息)后,服务消费者向服务注册中心发送请求获取对应的服务提供者信息,从而进行远程通信
4.springcloud五大常用组件
服务发现——Netflix Eureka
客服端负载均衡——Netflix Ribbon
断路器——Netflix Hystrix
服务网关——Netflix Zuul
分布式配置——Spring Cloud Config
声明式服务消费——Feign