小白学习SpingCloud日记
- 什么是微服务?
- 微服务之间是如何独立通信的?;
- springcloud和Dubbo有哪些区别?;
- springboot和springcloud,请你谈谈你对他们的理解?;
- 什么是服务熔断?什么是服务降级?;
- 微服务的优缺点各是什么?;
- 你知道的微服务技术栈有哪些?;
- Eureka和zookeeper都可以提供服务注册和发现的功能,两者有什么区别?。
微服务
微服务是一种架构模式,提倡将单一的应用程序划分为一组组小的服务,每组服务都是一个小的进程。每组服务之间相互独立但又相互配合,相互通信。每组服务围绕业务的上下文展开,每组服务也可以采用不同的编程语言,采用不同的数据库
微服务需要解决的四个核心问题
- 用户如何调用服务?
- 服务之间如何进行通信?;
- 如何对众多的服务进行治理?;
- 服务崩溃了怎么办?
解决方案
1.SpringCloud Netflix 一站式解决方案
API网关,zuul组件
Feign --HttpClient–http通信方式,同步 阻塞
Eureka 注册发现
Hystrix
2.Apache Dubbo zookeeper RPC通信框架
Api 没有,借助第三方或者自己实现
Dubbo
zookeeper
没有,借助Hystrix
3.SpringCloud Alibaba 新一站式解决方案
4.新概念,微服务网格
istio
微服务之间的通信
微服务之间可以通过Restfu下的resttemplate模块来远程拿到服务器的服务,也可以通过Feign客户端通过调用接口的方式来进行通信
Springboot和Springcloud
Springboot可以集成了很多种模块,利用注释减少代码打的冗长,能够快速的搭建各种微服务,而Springcloud则是对微服务的管理,提供微服务注册和发现,服务熔断,降级,服务通信,负载均衡,,路由网关,配置管理,流量监控等功能。
什么是服务熔断?什么是服务降级?;
服务熔断是在服务端:服务超时或者服务异常会引起熔断,保险丝
服务降级是在客户端做的,从整体网站请求负载考虑,当某个服务熔断或者关闭之后,服务将不再调用,
此时在客户端,我们可以准备一个fallback,返回一个值,但是整体服务水平下降了,但好歹还能用。