- 分布式与集群的区别是什么?
分布式是指一个业务分拆多个子业务,部署在不同的服务器上。而集群,是指同一种组件的多个实例,形成的逻辑上的整体
知乎 - CAP理论
C:数据一致性(consistency)
所有节点拥有数据的最新版本
A:可用性(availability)
数据具备高可用性
P:分区容错性(partition-tolerance)
容忍网络出现分区,分区之间网络不可达
-
为什么需要springcloud?
本质来说就是将我们一大的项目,分解成多个小的模块,让小模块协同合作,提高效率,比方说我们设计一个类似于淘宝的系统,大概有订单服务,库存服务,物流服务等等这些小模块。 -
每一个服务怎么去调用对方呢?
由此我们引出Eureka,什么是Eureka呢?在说明Eureka之前我们还得将Eureka细分为Eureka-Client和Eureka-Server。
EurekaServer就是一个注册中心,一个中间代理,使得每个EurekaClient不用去记住彼此服务地址,只需要记住一个EurekaServer就行
@EnableEurekaServer 开启注册中心
@EnableEurekaClient 开启服务客户端 -
如何通过EurekaServer调用服务?
现在我们可以通过EurekaServer知道每一个服务地址,问题是如何调用呢?由此我们引出Feign
Feign集成了ribbon,默认开启负载均衡,其策略是轮循 -
什么是Feign,如何使用?
显而易见,就是用来调用服务的;
只需在编写接口上方,通过@FeignClient(value = “service-hi”, fallback = SchedualServiceHiHystric.class)注解就可以,fallback是用做断路器使用(作用相同于Hystrix,通常用于降级处理)。 -
路由网关zuul
通过zuul进行请求的分发,达到负载均衡的目的 -
springconfig
随着业务的扩展,我们的服务会越来越多,越来越多。每个服务都有自己的配置文件,springconfig就是用来简化配置的
它分为:config-server和config-client