(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的服务隔离
服务监控:将服务调用的每秒请求数和每秒成功请求书记录下来
Spring Cloud OpenFeign 的核心工作原理:
大佬的文章写的非常nice,关于Feign相关的面试题都可以在这篇文章中找到答案
???openFeign夺命连环9问,这谁受得了?openFeign一波带走![这里是图片001]https://mp.weixin.qq.com/s/YJu2oN-qxtpShrmHlyrByw
阿里面试这样问:Nacos、Apollo、Config配置中心如何选型?这10个维度告诉你![这里是图片002]https://mp.weixin.qq.com/s/S_8HQYHOG624Vzeu94CFSA
限流算法:
没想到,为了一个限流我写了1万字!限流作为现在微服务中常见的稳定性措施,在面试中肯定也是经常会被问到的,我在面试的时候也经常喜欢问一下你对限流[这里是图片003]https://mp.weixin.qq.com/s/_Gzr69vV-ob6jOwxYxu7pw阿里限流工具:
https://mp.weixin.qq.com/s/Q7Xv8cypQFrrOQhbd9BOXw[这里是图片004]https://mp.weixin.qq.com/s/Q7Xv8cypQFrrOQhbd9BOXw
OAuth2.0实战!使用JWT令牌认证![这里是图片005]https://mp.weixin.qq.com/s/ckWzRsUoZz6Tt3iBqnZdRg
参考大佬文章:
【金三银四】Spring Cloud面试题(2021最新版)_SQY0809的博客-CSDN博客_springcloud面试题2021
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦