热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

开发黑名单功能demo_中台实践:通用化黑名单平台

业务中台的价值主要体现在对通用化业务能力的沉淀、整合,通过对可复用业务流程和业务功能的设计,向不同业务方提供标准化且可扩展的服务能力。本文来聊一聊笔者工

业务中台的价值主要体现在对通用化业务能力的沉淀、整合,通过对可复用业务流程和业务功能的设计,向不同业务方提供标准化且可扩展的服务能力。本文来聊一聊笔者工作过程中设计的通用化黑名单平台,通过将用户管控能力的下沉,为各业务团队提供一套通用的黑名单/白名单业务能力。

ec6ed0fd512086c69f8bf39eb5fb117a.png

业务定义

黑名单平台,泛指在业务流程当中,需要对特定用户进行管控的方式,通常会有黑名单、白名单两种用户类型。

业务场景

在风控识别、业务运营等流程当中,会涉及到对于某类用户进行“特殊对待”,比如恶意用户、高风险用户,在业务流程中可能会增加对用户的使用功能的限制,这类用户就属于黑名单用户。在不同的业务场景中,会基于不同规则去定义黑名单用户,并这种符合这类特种的用户进行统一化的管控。

当然还有一类特殊的用户群体,他们因为使用场景的特殊化也可能命中黑名单用户的规则。但是业务场景中又是允许这类用户存在的,那么这类用户就属于白名单用户,属于凌驾于黑名单规则之上的一类特殊用户群体。

业务问题

目前在现有中台架构下,不同业务模块都维护各自的黑名单体系,存在同一个业务场景的黑名单维护多套,或者同一套黑名单可以多个业务团队共用的问题。这就导致各团队开发既可能产生数据冗余,重复开发资源浪费的问题。

基于当前的问题,通过搭建中台黑名单平台,由各业务团队介入黑名单平台,针对各业务场景维护统一黑名单,可以由不同业务团队共享黑名单数据资源进行业务使用。

业务边界

既然做通用化,那么黑名单平台尽可能不做具备业务属性的逻辑,即通用户平台负责提供黑名单/白名单数据的统一使用服务,也就是针对数据的增、删、改、查能力。同时,为了保证各业务使用方可以实时获取数据,平台提供一套消息广播机制,可以让业务使用方可以快速获取数据的更新状态,即时针对不同状态做出业务响应。

业务架构

基于上面提到的业务场景、业务边界,设计了业务架构模式如下:

6ce4703c32c545afb5ff2419f6e3e696.png

业务设计

(1)通用化平台由业务方接入,针对不同业务场景和业务规则,由业务方(如上图中业务方A、B)定义什么是黑名单用户、什么是白名单用户;由通用化平台提供黑名单数据的统一服务,这个服务包含增删改查能力。

(2)业务方(如上图中业务方A、B)可以通过通用户平台提供的前端可视化页面,通过给不同业务方配置不同权限体系,支持业务方进行数据的增删改查。同时也支持基于系统调用的API接口方式,进行数据的使用。

(3)为保证数据更新后的即时响应,在数据更新后,如数据的新增、删除,通用化平台通过消息广播机制,向业务使用方(如上图中业务方C、D)进行广播,如果业务方关系数据更新消息,可基于业务场景做出相应的业务动作,保证数据更新与业务的同步性。

中台化设计的关键

(1)统一化

在设计数据的使用方式方面,做了尽可能的统一化设计。在设计底层数据接口方面,针对增删改查的数据接口,先对尽可能全的业务场景进行梳理,针对不同颗粒度的业务进行规划,保证数据接口服务的统一性,后续各业务团队接口,都是统一的接入流程和接口服务。

(2)个性化

针对不同业务场景,数据的表现形式终归会有不同的地方,除了对整个业务流程中没有异议的数据内容进行标准化定义外,为满足不同团队的业务需求,在数据存储方面,数据结构中增加了可扩展的json字段。这个字段的数据内容由各业务方自助定义数据的业务含义,在数据查询时基于各业务的团队的场景进行解析后使用,既保证了各业务团队数据使用的个性化需求,由保证了中台通用化模块的通用能力。

(3)扩展性

对于黑名单/白名单数据存储,数据存在多维度属性,通过数据业务类型分类进行区分,例如用户维度类型,可通过枚举区分身份证号、会员卡号、手机号等类型,字段的类型设计相对兼容,在后续数据类型扩展上,可以做到减少底层逻辑的重新开发带来的时间、资源成本。

(4)如何做到上述3点呢?

关键是要对业务有充分的了解,这样才能更好的把握统一化和个性化的平衡。例如,针对于用户维度的黑名单设计,要对当前业务场景中标识用户的方式有相对全面的了解:手机号、会员卡号、微信账号、支付账号等等,只有对实际业务的了解,才能设计符合业务方需求的功能。

综上

所有的中台化产品设计都是在对业务充分了解的基础上,将统一化、个性化、扩展性进行设计与权衡,当然在方案落地过程中不可避免的要做出各种各样的妥协与让步,但是作为业务中台设计者,要坚守产品设计的边界与底线,这才是中台产品存在的意义与价值。

#专栏作家#

记小忆,公众号:PM龙门阵,人人都是产品经理专栏作家,OTA中后台产品经理。

本文原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议



推荐阅读
  • 深入解析微信小程序开发中的全局配置文件设置与优化技巧
    本文深入探讨了微信小程序开发中全局配置文件的设置与优化技巧,详细解析了 `app.js`、`app.json`、`app.wxss` 和 `project.config.json` 的功能与最佳实践。通过合理配置这些文件,开发者可以显著提升小程序的性能和用户体验。文章还介绍了如何利用这些配置文件进行模块化开发和调试,帮助开发者更好地管理和维护小程序项目。 ... [详细]
  • 本章节在上一章的基础上,深入探讨了如何通过引入机器人实现自动聊天、表情包回应以及Adidas官方账号的自动抽签功能。具体介绍了使用wxpy库进行微信机器人的开发,优化了智能回复系统的性能和用户体验。通过详细的代码示例和实践操作,展示了如何实现这些高级功能,进一步提升了机器人的智能化水平。 ... [详细]
  • Node.js 配置文件管理方法详解与最佳实践
    本文详细介绍了 Node.js 中配置文件管理的方法与最佳实践,涵盖常见的配置文件格式及其优缺点,并提供了多种实用技巧和示例代码,帮助开发者高效地管理和维护项目配置,具有较高的参考价值。 ... [详细]
  • 如何在 Angular 4 中实现跨域调用百度人脸识别 API? ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
  • 本文源自极分享,详细内容请参阅原文。技术债务如同信用卡负债,随着时间推移,修复成本会越来越高,因此程序员必须对此有深刻认识。此外,团队应致力于培养一种持续维护和优化代码的文化,以减少技术债务的累积。 ... [详细]
  • 在数据库设计中,谨慎使用外键至关重要。本文探讨了九个关键原因,包括数据完整性的维护、性能优化、系统复杂性的管理、数据迁移的灵活性以及对外部系统的依赖性控制。通过深入分析这些因素,可以帮助开发人员和架构师做出更明智的设计决策,确保数据库系统的高效与稳定。 ... [详细]
  • 如果程序使用Go语言编写并涉及单向或双向TLS认证,可能会遭受CPU拒绝服务攻击(DoS)。本文深入分析了CVE-2018-16875漏洞,探讨其成因、影响及防范措施,为开发者提供全面的安全指导。 ... [详细]
  • 如何撰写PHP电商项目的实战经验? ... [详细]
  • 经过半年的精心整理,我们汇总了当前市场上最全面的Android面试题解析,为移动开发人员的晋升和加薪提供了宝贵的参考资料。本书详细涵盖了从基础到高级的各类面试题,帮助读者全面提升技术实力和面试表现。章节目录包括:- 第一章:Android基础面试题- 第二章:... ... [详细]
  • 如何在 Node.js 环境中将 CSV 数据转换为标准的 JSON 文件格式? ... [详细]
  • MemFireDB 在实时高并发的在线事务处理(OLTP)系统中表现出色。随着移动互联网、电商和社交应用等领域的迅猛发展,传统单机关系型数据库(如MySQL)或分库分表架构已难以满足日益增长的性能需求。MemFireDB 通过其高效的内存计算能力和灵活的分布式架构,能够显著提升系统的响应速度和处理能力,确保在高负载情况下依然保持稳定性和可靠性。此外,MemFireDB 还支持复杂的查询操作和事务管理,适用于需要高性能和低延迟的应用场景。 ... [详细]
  • 本文详细解析了计算机设备的型号命名规则,并提供了各品牌的相关资料。具体包括设备名称、品牌、型号、规格配置、生产厂商、数量、单价及金额等信息。例如,直播机房的安装与集成涉及9套设备,总控系统的安装与架构为1套,文艺录音棚的安装与集成则需详见附录中的技术参数。 ... [详细]
  • 机顶盒,即数字电视机顶盒(Digital TV Set-Top Box,简称STB),是一种放置在电视机旁的设备。它主要用于将数字信号转换为电视能够识别的模拟信号,从而实现高质量的视频和音频播放。机顶盒不仅支持基本的电视节目接收功能,还具备多种增值服务,如互动点播、网络浏览等。随着技术的发展,现代机顶盒集成了更多的智能功能,成为家庭娱乐的重要组成部分。 ... [详细]
  • 在微信小程序中实现外部链接跳转,可以通过微信官方提供的组件来完成。具体而言,有以下两种方法:1. 首先,可以通过创建一个新的 `` 组件来加载外部网页。这个组件允许在小程序内部嵌入一个网页视图,从而实现外部链接的展示和交互。2. 另一种方法是使用 `wx.navigateToMiniProgram` API,通过调用该接口可以跳转到其他已安装的小程序,实现更丰富的跨应用交互功能。这两种方法各有优缺点,开发者可以根据实际需求选择合适的方式。 ... [详细]
author-avatar
小子转过来_406
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有