威海教育行业网站建设,桂林漓江阳朔,wordpress 加入js,运动鞋网页ui设计定位
服务端插件是一个逻辑扩展平台,提供了一个快速托管逻辑的能力。
核心特点 高性能:相对于RPC调用,没有网络的损耗,性能足够强劲。 高可靠:基于线程隔离,保证互不影响,插件的资源占用或崩溃等问题不直接影响业务。 部署快:不需要发布审核流程, 插件本身逻辑简短,…定位
服务端插件是一个逻辑扩展平台,提供了一个快速托管逻辑的能力。
核心特点 高性能:相对于RPC调用,没有网络的损耗,性能足够强劲。 高可靠:基于线程隔离,保证互不影响,插件的资源占用或崩溃等问题不直接影响业务。 部署快:不需要发布审核流程, 插件本身逻辑简短,编译速度快,基于版本管理可以快速回退。 易用:可以根据业务需求支持不同语言的插件 相比传统的将服务和逻辑写在一起:减少了服务发布和变更;支持更多的语言实现不同的逻辑;支持热插拔;
相比faas函数计算服务:减少了网络传输的损耗,性能更高。 相比于传统SDK插件模式优点在于: 语言无关,核心业务逻辑只需要实现一遍; 业务接入成本低,通常不需要关心升级,某些场景下甚至可以不需要 IPC 用的轻量级 SDK; 可以按自己的节奏推进版本升级,不必慢慢等待业务自己将其升级到最新版本; 发现线上有版本存在问题,可以直接切换至确认没问题的新/旧版本,而不必拉群通知业务升/降级。 适用场景 存在一种需要经常变更的公共逻辑 此逻辑对网络延迟敏感 此逻辑变更时希望业务方无感 比如在电商行业中,商品的优惠计算逻辑。不同的商品需要配置不同的优惠计算逻辑,此优惠逻辑经常随着时间发生变更;优惠计算请求频繁对延迟敏感;在变更优惠计算逻辑的同时不希望影响其它服务(商品、支付、购物车)。
综上可以看到插件模式由于实现成本不低,适用业务范围较窄,在使用的时候应谨慎评估ROI。 实现
插件类型
Go 原生插件
基于 Go 原生的 plugin 机制(https://golang.org/pkg/plugin/),拥有与本地函数调用同样的性能,但是本身限制较多,比如插件与宿主服务必须使用完全相同的依赖库版本,编译镜像需要一致等等,对于其中的大