微服务的基本知识

分布式和微服务的区别

从概念上讲: 分布式主要强调我们系统的稳定性 可靠性 主要能够保证我们实时在线

                    微服务主要根据我们业务来划分应用 尽量将应用的粒度划分的很小、划分成一系列小型、独立的服务、降低耦合度

粒度上讲:分布式对粒度可大可小

                微服务倾向于更为细粒度的划分

目标上讲:分布式主要通过负载均衡提高系统的稳定性

                微服务主要从软件工程方面简化开发流程提高开发效率 一般是为了适应业务的需求快速迭代

Nacos配置中心动态刷新原理

Nacos使用长轮询机制实现实时配置更新

1.客户端发起请求:客户端通过后台线程发起一个 HTTP 请求到 Nacos 服务端,用于监听配置变化。

2.服务器挂起链接:Nacos 服务端接收到请求后,会挂起(hold)这个 HTTP 连接一段时间(例如 30 秒),在此期间服务端监控配置文件的变化。

3.无变化情况:若在这段时间内没有检测到配置文件有任何变更,服务端将释放连接并向客户端返回一个指示,表明配置没有更新。

4.配置变更情况:如果在挂起期间检测到配置文件发生变化,服务端会立即释放连接并将最新的配置推送给客户端。

5.循环轮询:无论哪种情况,客户端在接收完响应后,会在短暂延迟(如 10 毫秒)之后重新发起一个新的 HTTP 请求,从而形成循环轮询机制以持续监听配置更新。

这种方式使得客户端能够及时获取到最新的配置信息,同时减少了不必要的频繁请求。

均衡器

服务端负载均衡器(Nginx 和OpenResty是在Nginx的基础上支持lua脚本)

客户端负载均衡器 (Ribbon)

如果使用的RestTemplate进行服务调用,那么创建RestTemplate的方法上面加@LoadBalanced注解就会开启Ribbon的负载均衡,Ribbon负载均衡有以下7中规则,默认轮询

轮询(平均分配)

随机(随机选择一个服务实例来处理请求,在某些场合下可以减少特定实例被连续击中的可能性)

权重(根据每个服务实例的历史响应时长动态调整其权重,响应时间越快的服务实例被选中的概率越高)

最佳可用规则(选择一个并发请求数最少得服务实例,侧重选择当前负载较低的服务)

根据ipHash的好处 基于jwt的tokenSession共享的 永远打到一台服务器上的

feign和Openfeign的区别

Feign可以做到使用 HTTP 请求远程服务时就像调用本地方法一样的体验,开发者完全感知不到这是远程方法,更感知不到这是个 HTTP 请求,开发者无需关注与远程的交互细节,更无需关注分布式环境开发

1.支持spring mvc 注解 

2.整合了更多的扩展 (请求重试策略、超时控制、请求拦截器

流量网关和服务网关的区别

流量网关:(如Nignx,OpenResty,Kong)是指提供全局性的、与后端业务应用无关的策略,例如 HTTPS证书认证、Web防火墙、全局流量监控,黑白名单等。

服务网关:(如Spring Cloud Gateway)是指与业务紧耦合的、提供单个业务域级别的策略,如服务治理、token认证,负载均衡等。

自己写的三大案例

最大的贡献是什么

我跟我们老大把我们的项目介入了EFK,我们在进行多服务调用的时候traceId是没有一路传递过去的,我们在openfeign中做了一个拦截器,将traceId带过去 同时也将token带过去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值