(一)微服务与微服务架构入门
(一)微服务与微服务架构入门
回顾之前的知识~
- javaSE
- 数据库
- 前端
- Servlet
- Http
- Mybatis
- Spring
- SpringMVC
- SpringBoot
- Doubbo,Zookeeper,分布式基础
- Maven,Git
- Ajax,Json
串一下自己会的东西
-
数据库
-
Mybatis
-
Spring
-
SpringMVC
-
SpringBoot
-
Doubbo,Zookeeper,分布式基础
-
Maven,Git
-
Ajax,Json
这个阶段如何学~
三层架构 + MVC
框架:
Spring IOC AOP
SpringBoot:新一代的javaEE开发标准,自动装配
模块化~ all in one
模块化的开发====all in one,代码没改变
微服务架构4个核心问题
1.服务很多,客户端怎么访问?
2.这么多服务,服务之间如何通信?
3.这么多服务,如何治理?
4.服务挂了怎么办?
解决方案:
Spring cloud 生态 SpringBoot
1.Spring Cloud NetFlix 一站式解决方案!
api网关,zuul组件
Feign ---HttpClinet ----Http通信方式,同步,阻塞
服务注册发现:Eureka
熔断机制: Hystrix
---2018无限期停止维护
2.Apache Doubbo + Zookeeper 半自动,需要整合别人的
api:没有,找点放组件,或者自己实现
通信:Doubbo
服务注册发现:Zookeeper
熔断机制:借助 Hystrix
Doubbo这个方案并不完善~
3.Spring Cloud Alibaba 一站式解决方案!更加但
新概念:服务网格~ Server Mesh
istio
万变不离其宗,一通百通
1.API
2.HTTP,RPC
3.注册和发现
4.熔断机制
分布式,网络是不可靠的,丢包,丢帧!!!!
什么是微服务?
微服务之间是如何独立通讯的?
SpringCloud和Doubbo有哪些区别?
SpringBoot和SpringCloud,请你谈谈
微服务技术栈
| 微服务条目 | 落地技术 |
|---|---|
| 服务开发 | SpringBoot,Spring,SpringMVC |
| 服务配置与管理 | Netflix公司的Archaius,阿里的Diamond等 |
| 服务注册与发现 | Eureka,Consul,Zookeeper等 |
| 服务调用 | Rest,RPC,gRPC等 |
| 服务熔断 | Hystrix,Envoy等 |
| 负载均衡 | Ribbon,Nginx等 |
| 服务接口调用(客户端调用服务的简化工具) | Fegin等 |
| 消息队列 | Kafka,RabbitMQ,ActiveMQ等 |
| 服务配置中心管理 | SpringCloudConfig,Chef等 |
| 服务路由(API网关) | Zuul等 |
| 服务监控 | Zabbix,Nagios,Metrics,Specatator等 |
| 全链路追踪 | ZipKin,Brave,Dapper等 |
| 服务部署 | Docker,OpenStack,Kubernetes等 |
| 数据流操作开发包 | SpringCloud Stream(封装与Redis,Rabbit,Kafka等发送接受消息) |
| 事件信息总线 | SpringCloud Bus |
为什么选择SpringCloud作为微服务架构
1.选型依据
- 整体解决方案和框架成熟度
- 社区热度
- 可维护性
- 学习曲线
2.当前各大IT公司用的微服务架构有哪些
- 阿里:dubbo+HFS
- 京东:JSF
- 新浪:Motan
- 当当网:Dubbox
- ............
3.各位服务框架对比
| 功能点/服务架构 | Netflix/SpringCloud | Motan | gRPC | Thrift | Dubbo/DubboX |
|---|---|---|---|---|---|
| 功能定位 | 完整的微服务框架 | RPC框架,但整合了ZK和Consul,实现集群环境的基本服务注册/发现 | RPC框架 | RP框架 | 服务框架 |
| 支持Rest | 是,Ribbon支持多种可插拔的序列化选择 | 否 | 否 | 否 | 否 |
| 支持RPC | 否 | 是(Hession2) | 是 | 是 | 是 |
| 支持多语言 | 是(Rest形式)? | 否 | 是 | 是 | 是 |
| 负载均衡 | 是(服务端zuul+客户端Ribbon),zuul-服务,动态路由,云端负载均衡 Eureka(针对中间成服务器) | 是(客户端) | 否 | 否 | 是(客户端) |
| 配置服务 | Netflix Archaius,Spring Cloud Config Server集中配置 | 是(zookeeper提供) | 否 | 否 | 否 |
| 服务调用链监 | 是(zuul),zuul提供边缘服务,API网关 | 否 | 否 | 否 | 否 |
| 高可用/容错 | 是(服务端Hystrix+客户端Ribbon) | 是(客户端) | 否 | 否 | 是(客户端) |
| 典型应用案例 | Netflix | Sina | |||
| 社区活跃度 | 高 | 一般 | 高 | 一般 | 2017年后重新开始维护,之前中断5年 |
| 学习难度 | 中段 | 低 | 高 | 高 | 低 |
| 文档丰富度 | 高 | 一般 | 一般 | 一般 | 高 |
| 其他 | Spring Cloud Bus为我们的应用程序带来了更多管理端点 | 支持降级 | Netflix内部在开发集成gRPC | IDL定义 | 实践的公司比较多 |
| 时间 |

浙公网安备 33010602011771号