简历原文
抽查部分
- 比较熟悉Nacos、Feign、SpringCloud Gateway等微服务的使用,有实际上手项目使用的经验;
- 基本掌握Linux常用命令,了解Linux系统管理、网络管理、生产环境等必用服务,了解Docker的使用,在博客中多有关于Linux操作系统的文章(获得8k阅读量);
模拟问答
1.你用的微服务5大组件是什么
我用的5大微服务组件如下:
- 注册中心/配置中心 Nacos
- 负载均衡 Ribbon
- 服务调用 Feign
- 服务保护 sentinel
- 服务网关 Gateway
2.说说Nacos作用的原理流程
在分布式系统架构中,分为了服务消费者、服务提供者和注册中心。三者的作用就不细说了。
首先服务提供者会去注册中心注册;
然后服务消费者在需要调用服务时,会去注册中心Nacos拉取信息;
拉取到信息后,会调用其选择的IRule规则,进行负载均衡;
最后这就完成了远程调用。
关于服务提供者的注册,提供者server会每隔一段时间向Nacos报告自己的状态,也就是所谓的心跳;
当Nacos一段时间没有感受到心跳后,Nacos就认为这个server死了,剔除其信息。
以上是对临时实例。对于非临时实例,Nacos会主动检测其状态,也不会在检测不到报告时剔除信息。
3.用过Eureka吗,说说Nacos和Eureka的区别
用过。区别如下:
- Nacos支持主动检测服务提供者的状态。对于临时实例,就采用原来的心跳模式;对于非临时实例,就采用主动检测的模式。
临时实例检测不到心跳了,会被剔除;但非临时没了心跳,也不会剔除出注册列表。 - Nacos支持服务列表变更的消息推送模式,服务列表更新及时
- Nacos默认采取AP模式,集群中存在非临时实例则采用CP模式。
总结一下,Eureka采用AP模式,而Nacos默认是AP模式,也可以采用CP模式。
4.你用到过哪些负载均衡策略
我用到过Ribbon默认的负载均衡策略,ZoneAvoidanceRule,还有RandomRule、Nacos的NacosRule。这几个轮询的规则分别如下:
ZoneAvoidanceRule:区域优先,区域内做轮询。
RandomRule:随机选用。
NacosRule:集群优先,集群内做轮询。
另外,还有一些规则:
RoundRobinRule:纯轮询。
AvailabilityFilteringRule:忽略失联时间过长和并发数过多的服务器。
WeightedResponseTimeRule:根据权重值选择服务器。
BestAvailableRule:从并发数小的服务器开始选起。
RetryRule:根据重试机制选择。
当然还可以自定义负载均衡策略。方法就是:
自定义一个Bean,定义一个新的IRule;
或者在配置文件中,修改 服务名.ribbon.NFLoadBalancerRuleClassName后的全类名。
5.你用了日志吗,说说日志级别
用了。
Feign中调整feign.Logger.Level参数可以修改日志级别。分为4个级别:
- NONE:不记录。
- BASIC:仅记录请求的方法、URL和响应状态码、执行时间。
- HEADERS:之前的基础上额外记录请求和响应的头信息。
- FULL:记录所有,包括头信息、请求体和元数据。
还可设置全局生效和局部生效。
我使用的是BASIC级。
6.Linux你用的熟练吗,常用的命令有哪些
我还算比较熟练。我常用的命令有:
ls:查看文件夹下的文件、文件夹等
cd:切换文件夹
rm:移除文件、文件夹等
mkdir:创建文件夹
touch:创建文件
vim:用vim编辑器编辑文本