SpringCloud学习前言,必备知识
1、内容概述
学习前提:
JavaSE
数据库
前端
Servlet
Http
Spring+SpringMVC+Mybatis
SpringBoot
Dubbo+Zookeeper+分布式基础
Maven+Git
Ajax+Json
...
这个阶段怎么学习
微服务四个问题: 1、服务很多,客户端怎访问? 2、这么多服务,服务之间怎么通信? 3、这么多服务,怎么治理? 4、服务挂了怎么办? 解决方案选型: 1、Spring Cloud NetFlix(已经停止维护):一站式解决方案!可解决上述4个核心问题 API网关:Zuul组件 通信:Feign --- HttpClient --- Http通信方式,同步,阻塞 服务注册与发现:Eureka 熔断机制:Hystrix 2、Apache Dubbo Zookeeper:半自动!需要整合别人的 API网关:没有,找到第三方组件(比如整合Zuul组件),或者自己实现 通信:Dubbo 是一个基于Java的高性能的RPC通信框架(性能比Feign强大) 服务注册与发现:Zookeeper 熔断机制:没有,需要借助Hystrix 3、Spring Cloud Alibaba:目前最新一站式解决方法!可解决上述4个核心问题,更简单 服务注册与发现:Nacos 熔断机制:Sentinel 万变不离其宗4个问题: 1、API网关 2、HTTP,RPC通信 3、注册和发现 4、熔断机制
2、Spring Cloud 五大组件
服务注册与发现——Netflix Eureka
负载均衡:
客户端负载均衡——Netflix Ribbon
服务端负载均衡:——Feign(其也是依赖于Ribbon,只是将调用方式RestTemplete 更改成Service 接口)
断路器——Netflix Hystrix
服务网关——Netflix Zuul
分布式配置——Spring Cloud Config
3、常见面试题
什么是微服务?
微服务之间是如何独立通讯的?
SpringCloud 和 Dubbo有那些区别?
SpringBoot 和 SpringCloud,请谈谈你对他们的理解
什么是服务熔断?什么是服务降级?
微服务的优缺点分别是什么?说下你在项目开发中遇到的坑
你所知道的微服务技术栈有哪些?列举一二
Eureka和Zookeeper都可以提供服务注册与发现的功能,请说说两者的区别