风控场景下配置中心设计实战,有哪些技巧?

摘要:本文将提供风控场景下配置中心的设计思考。风控场景通常需要频繁修改策略进行攻防对抗,一般策略管理平台与策略执行引擎是两个服务,目的是为了解耦,使得业务需求的变更对策略执行引擎执行的影响最小化。通常策略引擎获取策略配置的方法有以下几种,分别是:
声明 原创文章,转载请标注。https://www.cnblogs.com/boycelee/p/18355942 配置中心系列文章 《【架构师视角系列】风控场景下的配置中心设计思考》 https://www.cnblogs.com/boycelee/p/18355942 《【架构师视角系列】Apollo配置中心之架构设计(一)》https://www.cnblogs.com/boycelee/p/17967590 《【架构师视角系列】Apollo配置中心之Client端(二)》https://www.cnblogs.com/boycelee/p/17978027 《【架构师视角系列】Apollo配置中心之Server端(ConfigSevice)(三)》https://www.cnblogs.com/boycelee/p/18005318 《【架构师视角系列】QConfig配置中心系列之架构设计(一)》https://www.cnblogs.com/boycelee/p/18013653 《【架构师视角系列】QConfig配置中心系列之Client端(二)》https://www.cnblogs.com/boycelee/p/18033286 《【架构师视角系列】QConfig配置中心系列之Server端(三)》https://www.cnblogs.com/boycelee/p/18055933 目录声明配置中心系列文章1、什么是配置中心?1.1、特点1.1.1、集中管理1.1.2、动态更新2、为什么需要配置中心?2.1、方案优缺点2.1.1、共享存储(如共享Redis)2.1.2、远程调用(如HTTP调用)2.1.3、配置中心3、如何设计配置中心?3.1、架构图3.2、架构分层3.2.1、客户端层ClientAdmin3.2.2、网络层Nginx3.2.3、服务层Config ServiceAdmin Service3.2.4、数据层Config DBAdmin DB3.3、时序图3.3.1、启动部分3.3.2、推送部分3.3.3、配置同步部分3.4、设计难点3.4.1、配置中心启动场景描述问题描述方案描述3.4.2、三方应用启动场景描述问题描述方案描述3.4.3、配置发布场景描述问题描述方案描述3.4.4、缓存设计场景描述问题描述方案描述4、总结5、最后 1、什么是配置中心? 配置中心是分布式系统的重要组件,其目的是集中管理与分发服务所需要的配置文件,将分布式系统中的配置简化并进行统一管理。 1.1、特点 1.1.1、集中管理 将分布式系统的配置文件集中存储和管理,且有统一的管理平台界面供运维人员对配置进行查看与修改。避免由于数据配置地点不统一而造成数据不统一的问题。 1.1.2、动态更新 配置中心支持动态更新配置。当配置发生变化时,配置中心会立即将更新后的配置推送给所有订阅的服务实例,不需要重启服务实例。 2、为什么需要配置中心? 风控场景通常需要频繁修改策略进行攻防对抗,一般策略管理平台与策略执行引擎是两个服务,目的是为了解耦,使得业务需求的变更对策略执行引擎执行的影响最小化。通常策略引擎获取策略配置的方法有以下几种,分别是:共享存储、远程调用或配置中心。 2.1、方案优缺点 2.1.1、共享存储(如共享Redis) 优点: 高效访问:共享存储能够提供快速的数据访问速度,尤其是在本地或网络延迟较低的情况下。 简单实现:直接在Redis等共享存储中存储策略数据,简化了策略获取的实现。 缺点: 数据大小限制:需要控制存储值的大小,避免大key问题。例如,如果存储的策略配置过大,可能会导致Redis的性能下降,增加了管理和维护的复杂性。 耦合性问题:策略管理平台和策略执行引擎之间的耦合性较高。如果策略管理平台的增删查改操作未考虑性能优化,可能会影响到策略执行引擎的稳定性和效率。策略执行引擎可能因为管理平台的操作延迟或性能问题而出现异常。 2.1.2、远程调用(如HTTP调用) 优点: 解耦:策略管理平台和策略执行引擎通过远程调用进行交互,减少了两者之间的直接依赖。策略执行引擎不需要直接访问共享存储,而是通过API获取策略数据,提高了系统的灵活性和扩展性。 实时性:可以实现实时的数据获取和策略更新,只要网络稳定,策略数据可以快速地传递到策略执行引擎。 缺点: 稳定性依赖:远程调用依赖于配置管理服务的稳定性。配置管理服务必须保持高可用和高稳定性,否则会影响策略执行引擎的性能。如果配置管理服务不稳定或存在网络问题,可能会导致策略数据获取失败或延迟。 网络延迟:远程调用涉及网络传输,可能会引入一定的延迟,特别是在网络条件不佳的情况下。这对需要快速响应的场景可能会带来挑战。
阅读全文