前言
上篇分析了 OpenFeign
使用 FeignClient
注解来生成 动态代理对象的流程
通过 上篇文章 了解了 OpenFeign
生成动态代理的整个过程,并且知道了它是基于 JDK
动态代理来实现的。这篇文章主要来看看 OpenFeign
是如何基于 ribbon
实现负载均衡的,还会了解到 ribbon
的一些主要对象及运行原理,最后还有一个自定义 ribbon
负载均衡规则的代码案例
本文介绍如何将websocket服务注册到nacos中,并实现负载均衡调用,以及集群模式下消息(单聊,群发)的收发处理
在过去使用feign时,会将feign接口单独放在一个包,并在接口类上声明 @FeignClient(name = 服务名)
, 在接口方法上声明 @xxxMapping(接口路径)
,实现者和使用者都会去引入这个包。对于 使用者 来说只需要注入接口类,然后调用对应的方法就能调用到在另一个服务的实现者实现的逻辑
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。 组合模式依据树形结构来组合对象,用来表示部分以及整体层次。 这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 这种模式创建了一个包含自己对象组的类
gateway支持多种配置路由的方式,如通过 properties
文件配置、通过接口添加、从注册中心获取等等。不管是在yml文件配置的 routes
节点,还是通过 DiscoveryClient
加载的注册中心的服务,亦或是通过 /gateway/routes/{id}
接口增加的,在网关中都会生成对应一个个 RouteDefinition
,再通过RouteDefinition
生成对应的 route
。
在公司内部的供应链物流系统中,会与第三方物流承运商的系统进行对接。为了减少对对方系统的依赖,交互设计成“通知-反查”的形式,即当物流订单 “状态” 发生变更时,通过统一接口通知到我们系统,这边再根据不同的通知去做相应的处理。
比如:订单确认、拒绝、完成,车辆启运,位置更新等等的通知