【微服务】微服务概述

时间:2022-06-28 08:54:54

什么是微服务

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

微服务的特征

1、单一职责
2、轻量级通讯
3、隔离性
4、业务数据的独立性(有自己的数据)
5、技术多样性

微服务诞生的背景

1、互联网行业的快速发展
2、敏捷开发,精溢方法深入人心
3、容器技术的成熟--使微服务的落地成为可能

微服务的优势

1、独立性
2、敏捷性
3、技术栈灵活
4、高效团队

微服务的不足

1、额外的工作
需要确认如何拆分业务,微服务的拆分粒度
2、数据一致性
3、沟通成本

微服务引入的问题及解决方案

微服务如何通讯

1、从通讯模式角度考虑:
一对一?一对多?
同步?异步?
【微服务】微服务概述

2、从通讯协议角度考虑
REST API
RPC
MQ

如何选择RPC框架?
1、I/O、线程调试模型
2、序列化方式(JSON/二进制)
3、多语言支持
4、服务治理

常用RPC框架:Dubbo/Dubbox(当当)/Thrift(A)/Motan(新浪微博)/gRPC(谷歌)
【微服务】微服务概述

【微服务】微服务概述

【微服务】微服务概述

【微服务】微服务概述

【微服务】微服务概述

微服务如何发现彼此

传统服务的发现
【微服务】微服务概述

微服务的发现:
1、客户端的发现
【微服务】微服务概述

2、服务端的发现
【微服务】微服务概述

微服务怎样部署、更新、扩容

服务编排:部署、更新、扩容
流行的服务编排工具:Mesos/Docker Swarm/Kubernetes

Spring Boot、Spring Cloud与微服务

Spring Boot与微服务

Spring Boot的使命:化繁为简
Spring Boot核心功能:独立运行、内嵌Web服务器、简化配置、准生产的应用监控

Spring Boot与微服务的关系:Java的润滑剂

Spring Cloud与微服务

Spring Cloud的使命:简化Java的分布式系统

一系列框架的集合
简化java的分布式系统
Spring Boot 封装

Java的微服务
侧重功能,侧重开发

Spring Cloud核心组件
Netflix Eureka
Netflix Ribbon
Netflix Hystrix
Netflix Zuul
Spring Cloud Config
【微服务】微服务概述

【微服务】微服务概述

【微服务】微服务概述

【微服务】微服务概述

【微服务】微服务概述

Spring Boot vs Spring Cloud

Spring Boot 意在简化,是一种开发、配置风格
Spring Cloud意在简化分布式,是功能的集合,风格统一