【微服务】微服务概述

什么是微服务

使用一套小服务来开发单个应用的方式,每一个服务运行在独立的进程里,通常采用轻量级的通信机制互联,而且它们能够经过自动化的方式部署。java

微服务的特征

一、单一职责
二、轻量级通信
三、隔离性
四、业务数据的独立性(有本身的数据)
五、技术多样性spring

微服务诞生的背景

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

微服务的优点

一、独立性
二、敏捷性
三、技术栈灵活
四、高效团队框架

微服务的不足

一、额外的工做
须要确认如何拆分业务,微服务的拆分粒度
二、数据一致性
三、沟通成本异步

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

微服务如何通信

一、从通信模式角度考虑:
一对一?一对多?
同步?异步?
分布式

二、从通信协议角度考虑
REST API
RPC
MQspring-boot

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

经常使用RPC框架:Dubbo/Dubbox(当当)/Thrift(A)/Motan(新浪微博)/gRPC(谷歌)
工具

微服务如何发现彼此

传统服务的发现
线程

微服务的发现:
一、客户端的发现

二、服务端的发现

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

服务编排:部署、更新、扩容
流行的服务编排工具: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意在简化分布式,是功能的集合,风格统一

相关文章
相关标签/搜索