(1)服务调用方式:dubbo是RPC springcloud Rest Api
(2)注册中心:dubbo 是zookeeper springcloud是eureka,也可以是zookeeper
(3)服务网关,dubbo本身没有实现,只能通过其他第三方技术整合,springcloud有Zuul路由网关,作为路由服务器,进行消费者的请求分发,springcloud支持断路器,与git完美集成配置文件支持版本控制,事物总线实现配置文件的更新与服务自动装配等等一系列的微服务架构要素
默认情况下,如果Eureka server在一定时间内没有收到某个微服务实例的心跳,那么服务器将会注销该实例 默认为90s 其实这种行为是比较危险的,当遇到例如网络分区的影响的时候、便会出现误判。此时就需要Eureka的自我保护模式来解决这个问题。-当Eureka server节点在短时间内丢失过多的客户端时 那么这个节点就会进入自我保护模式。进入该模式。 eureka server会保护服务注册表中信息,不在删除服务注册表中的数据、当网络故障恢复 server会自动退出自我保护模式、
1. ZooKeeper中的节点服务挂了就要选举 在选举期间注册服务瘫痪,虽然服务最终会恢复,但是选举期间不可用的, 选举就是改微服务做了集群,必须有一台主其他的都是从
2. Eureka各个节点是平等关系,服务器挂了没关系,只要有一台Eureka就可以保证服务可用,数据都是最新的。 如果查询到的数据并不是最新的,就是因为Eureka的自我保护模式导致的
3. Eureka本质上是一个工程,而ZooKeeper只是一个进程
4. Eureka可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像ZooKeeper 一样使得整个注册系统瘫痪
5. ZooKeeper保证的是CP,Eureka保证的是AP(自我保护模式下保证可用性)
CAP: C:一致性>Consistency; 取舍:(强一致性、单调一致性、会话一致性、最终一致性、弱一致性) A:可用性>Availability; P:分区容错性>Partition tolerance;
统一管理微服务请求,权限控制、负载均衡、路由转发、监控、安全控制黑名单和白名单等
Ribbon中的7中负载均衡算法:
(1)RoundRobinRule:轮询;
(2)RandomRule:随机;
(3)AvailabilityFilteringRule:会先过滤掉由于多次访问故障而处于断路器状态的服务,还有并发的连接数量超过阈值的服务,然后对剩余的服务列表按照轮询策略进行访问;
(4)WeightedResponseTimeRule:根据平均响应时间计算所有服务的权重,响应时间越快的服务权重越大被选中的概率越大。刚启动时如果统计信息不足,则使用RoundRobinRule(轮询)策略,等统计信息足够,会切换到WeightedResponseTimeRule;
(5)RetryRule:先按照RoundRobinRule(轮询)策略获取服务,如果获取服务失败则在指定时间内进行重试,获取可用的服务;
(6)BestAvailableRule:会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务;
(7)ZoneAvoidanceRule:复合判断Server所在区域的性能和Server的可用性选择服务器;
Hystrix是一种断路器,主要的作用是在微服务治理中保护服务。主要的功能设计:
服务降级(当接口调用失败,自动执行一个空的方法。避免线程阻塞)
服务熔断 当接口调用失败,自动执行提前定义好的熔断方法 统一返回错误信息)
服务隔离:隔离服务间的相互影响
Hystrix实现服务隔离_仰望飞机的博客-CSDN博客_hystrix的服务隔离
服务监控:将服务调用的每秒请求数和每秒成功请求书记录下来
当大多数人在使用Tomcat时,多个HTTP服务会共享一个线程池,假设其中一个HTTP服务访问的数据库响应非常慢,这将造成服务响应时间延迟增加,大多数线程阻塞等待数据响应返回,导致整个Tomcat线程池都被该服务占用,甚至拖垮整个Tomcat。因此,如果我们能把不同HTTP服务隔离到不同的线程池,则某个HTTP服务的线程池满了也不会对其他服务造成灾难性故障。这就需要线程隔离或者信号量隔离来实现了。
Spring Cloud OpenFeign 的核心工作原理:
大佬的文章写的非常nice,关于Feign相关的面试题都可以在这篇文章中找到答案
openFeign夺命连环9问,这谁受得了?openFeign一波带走!https://mp.weixin.qq.com/s/YJu2oN-qxtpShrmHlyrByw
阿里面试这样问:Nacos、Apollo、Config配置中心如何选型?这10个维度告诉你!https://mp.weixin.qq.com/s/S_8HQYHOG624Vzeu94CFSA
限流算法:
没想到,为了一个限流我写了1万字!限流作为现在微服务中常见的稳定性措施,在面试中肯定也是经常会被问到的,我在面试的时候也经常喜欢问一下你对限流https://mp.weixin.qq.com/s/_Gzr69vV-ob6jOwxYxu7pw阿里限流工具:
https://mp.weixin.qq.com/s/Q7Xv8cypQFrrOQhbd9BOXwhttps://mp.weixin.qq.com/s/Q7Xv8cypQFrrOQhbd9BOXw
OAuth2.0实战!使用JWT令牌认证!https://mp.weixin.qq.com/s/ckWzRsUoZz6Tt3iBqnZdRg
参考大佬文章:
【金三银四】Spring Cloud面试题(2021最新版)_SQY0809的博客-CSDN博客_springcloud面试题2021