前言:
srping‘Cloud无可置疑他是基于springboot的,通俗的说就是每个speingboot代表一个微服务,springCloud就是用来管理他们的,所以说学习spring cloud本质上学的是组件(中间件),目的是通过相关指定的中间件管理微服务,一般中间件所要解决的问题是,微服务之间的通信,服务的治理,客户端的访问,和开发人员的维护。
参考网址:
SpringCloud中文网:https://www.springcloud.cc
SpringCloud中国社区:http://www.springcloud.cn
1,我对微服务架构的理解
微服务架构是一种思想,本质是将项目的各功能模块拆分成可以独立运行的小项目,各项目之间依然有联系(通过相关分布式组件),项目与项目之间通过联系又形成一个完整的项目,目的是充分利用和节省了计算机资源,让每个小项目(微服务)只干自己的事
2.为什么选择SpringCloud作为微服务架构
整体的解决方案齐全,成熟度高(稳定)
生态好,社区热度高
可维护性强
3.当前各大IT公司用的微服务架构
阿里:dubbo+HFS
京东:JSF
新浪:Motan
当当:DubboX
4.分布式架构/微服务架构会遇到的四个核心问题
1.这么多服务,客户端如何去访问?
一般会一个代理或者叫API Gateway,他的作用包括
- 提供统一服务入口,让微服务对前台透明
- 聚合后台的服务,节省流量,提升性能
- 提供安全,过滤,流控等API管理功能
2.服务之间如何通信?
- 同步调用
- REST(JAX-RS)
- RPC(Dubbo)
- 异步消息调用(Kafka, Notify, MetaQ),所谓的消息队列mq
3.微服务该如何治理?
注册中心(zookeeper):注册与发现
4,服务挂了怎么办?
首先为了避免各服务分配的服务器资源不合理情况?负载均衡
比如微服务a的使用率要远远小于微服务b,那么就应该自动的给a少分些服务器资源,给b多份一些,而这个过程就叫做负载均衡,其中使用比较广泛的就是dubbo框架
熔断机制
微服务有时会因为依赖关系复杂,或者服务拆分不够规范产生雪崩效应,而熔断机制就是其中的解决方案之一
降级(本地缓存)
限流
5.微服务完整架构图
6.微服务相关技术栈
7.常见面试题: