面试题二

面试题二

nacos与serviceconfig的区别

  • nacos提供了UI界面,操作方便,config没有UI界面,通常需要配合git使用,动态变更还需要其他的消息件来配合使用
  • 两者的者使用等量级不一样,nacos服务在一般的微服务项目中,config适用于大型的微服务项目中。
  • nacos使用长连接配置,一旦配置变动,通知生产者过程十分的迅速,比config快很多
  • config依赖git可以实现权限管理,nacos不具备

nacos注册中心和eurefig的区别

CAP理论:

  • rureka只支持AP
  • nacos支持AP和CP两种模式(实现依据是可以设置实例是否是短暂的还是长久的)

服务的剔除方式:

  • E每隔30s发送一次心跳,默认情况下90s没有收到心跳,E会把服务从注册表中剔除。60s的清除下线时间间隔
  • 极端情况下需要3分钟的时间,从异常到剔除完全不接受请求
  • N的心跳默认5s,超过15s后设置为不健康的状态,但可以正常的接受请求
  • 超30s服务会被删除

连接方式:

  • N是长连接,E是短连接

操作实例的方式

  • N对于实例的操作比E多,可以配置权重,监听等,与N比起来E的界面功能比较简单。

自我保护机制:

  • 相同点: 保护的阈值都是0-1的范围
  • 不同点:
  1. 保护的方式不同

E的保护方式:短时间内,统计失败的比例,达到一定到阈值,触发自我保护机制,在该机制下,E不会剔除任何服务,正常后,退出保护机制

N的保护机制:当健康的服务占总数的比例小于阈值的时候,无论是否健康,都会将这个实例返回给客户端,虽然损失了流量,但保护了集群的可用性。

  1. 范围不同

N的阈值是针对某个具体的Sevice的,不是所有的服务的,E的自我保护是针对所有的服务的

dubbo和openfeign的区别,优缺点?

相同点

  • Dubbo 与 Feign 都依赖注册中心、负载均衡,作用是提供远程接口调用

不同点

  • 协议不同

Dubbo:

支持多传输协议(Dubbo、Rmi、http、redis等等),可以根据业务场景选择最佳的方式。非常灵活。

Openfeign

基于Http传输协议,短连接,不适合高并发的访问

  • 负载均衡

Dubbo:

支持4种算法(随机、轮询、活跃度、Hash一致性),而且算法里面引入权重的概念。
配置的形式不仅支持代码配置,还支持Dubbo控制台灵活动态配置。
负载均衡的算法可以精准到某个服务接口的某个方法。

Feign:

只支持N种策略:轮询、随机、ResponseTime加权。
负载均衡算法是Client级别的。

Nacos注册中心很好的兼容了Feign,Feign默认集成了Ribbon,所以在Nacos下使用Fegin默认就实现了负载均衡的效果。

  • 容错机制

Dubbo:

支持多种容错策略:failover、failfast、brodecast、forking等,也引入了retry次数、timeout等配置参数。

Feign:

利用熔断机制来实现容错的,处理的方式不一样。


面试题二
https://lfrok.top/2022/11/27/Java/面试题二/
作者
B612🚀
发布于
2022年11月27日
许可协议