RisingWave 在品高股份 Bingo IAM 中的应用

背景介绍

公司背景

品高股份,是国内专业的云计算及行业信息化服务提供商。公司成立于 2003 年,总部位于广州,下设多家子公司和分公司,目前员工总数近 900 人,其中 80 %以上是专业技术人员。

品高股份在 2008 年便开始研发云计算产品,于 2010 年 2 月成功推出首个商用级 IaaS 产品 BingoCloud V1.0,是国内最早发布云操作系统的厂商之一。经过多年研发,公司目前已拥有众多以云计算为核心的系列化产品。

基于自主研发的产品技术优势以及行业信息技术服务的经验积累,品高股份已经为政府、公安、电信、轨交、汽车、金融、教育等众多行业客户提供从 IaaS 基础设施层、PaaS 平台层、DaaS 数据层到 SaaS 软件层的全栈企业级云平台和信息化服务。

公司以自主研发的产品为支撑,围绕“行业+云”发展战略,建立了以云计算技术为核心、以行业和市场需求为驱动的产品研发体系,聚焦政企私有云业务领域,以一流的产品和服务,持续为中国政企行业的数字化转型和产业升级赋能。

业务背景

Bingo IAM 是企业级的身份与访问管理服务(Bingo Enterprise Identity & Access Management),为企业应用提供了全面的身份识别认证以及访问授权管理等功能,也是品高云应用支撑平台中最基础的服务。

随着企业数字化程度的提升和数据安全威胁日益严重,IAM 系统迎来越来越多新的挑战。因此,我们对 Bingo IAM 的更多新的要求,对 RisingWave 的使用主要集中在三个方面:数据同步能力、事件驱动能力、风控能力。

需求与挑战

数据同步

IAM 系统需要保持与企业内部其他应用的数据同步,通常会包括用户的身份信息、权限信息等。一旦这些信息发生变更,IAM 系统需要能够将这些数据实时同步其他企业应用,以确保其数据的一致性和资源访问的安全性。

面临的挑战:

  • 异构数据转换:在多元化的企业级应用环境中,每个应用的数据格式和标准不尽相同,这使得异构数据的格式转换成为数据同步实现的一大难题。
  • 数据安全性:不同企业应用通常属于各自的租户,所拥有的数据权限也不一样,为保证数据安全,在数据同步过程中,必须要有细致严格有效的数据过滤。
  • 时效性:在数据的完整性和一致性的前提之下,同时需要避免数据延迟带来的各种问题,保证数据同步时效性是极大的挑战。

事件驱动

在 IAM 系统中,所有的操作都可能会形成事件。当某个事件被触发时,需能够及时响应并在 IAM 系统中执行相应的操作(业务功能、业务流程编排),或即时推送事件到其他企业应用。

面临的挑战:

  • 事件的有序且唯一:事件的有序性要求事件按照发生的时间顺序处理,唯一性则是保证每个事件只被处理一次。事件有序唯一性对于事件驱动系统来说是非常关键的,其很大程度决定了订阅者对于事件流的处理结果。
  • 事件的复杂性:基于事件的具象化特性,会尽可能地将操作完整地描述,特别是业务事件通常由多源的基础数据形成,这便要求事件驱动系统具有将多个数据流、批数据 Join 计算的能力。
  • 异常处理:系统和企业应用在处理事件的过程中出现异常是很常见的,设计有效的异常处理机制,能够保证企业级应用环境持续稳定的运行。

风控能力

在 IAM 系统中,风控主要是指对用户权限的访问行为进行有效管理和控制,以避免数据泄露、未经授权的访问等安全风险。IAM 系统能够根据预定义的安全策略和规则,限制用户的访问行为,只允许用户访问他们权限范围内的资源。

面临的挑战:

  • 风控策略的自定义能力:不同的业务可能存在不同的风险点和风险等级,对应多种多样的风控策略。风控系统应该能提供灵活的自定义化能力来应对不同企业应用的风控需求。
  • 时效性:实时性是风控能力的重要属性,具有风控能力的系统需要根据策略快速识别风险并实时响应。

RisingWave 带来的能力

依据以上需求与挑战,我们在调研大量的流计算方案、事件驱动方案、数据同步方案之后,最终选择基于 RisingWave 来给 Bingo IAM 赋予新的能力,主要从以下几方面特性出发:

  • 流计算:RisingWave 具备出色的流计算能力,相比传统批处理,流处理能够展现许多显著的优势,如:处理速度、响应时间以及持续处理等方面具有明显优势。在数据同步、事件驱动、风控这些需要高时效性的场景中,流计算这些优点使得其具有重要的应用价值。
  • 物化视图
    • RisingWave 借鉴了物化视图的设计思想,除了基础的 SQL 查询之外,还拥有强大丰富的算子、函数以及 UDF(用户自定义函数)来构建物化视图,多流 Join 能够对数据进行实时打宽,动态维护查询结果。独特的 MV on MV 功能,更是能在其他物化视图的基础上,继续堆叠新的物化视图。这使得 RisingWave 在数据同步和事件驱动场景中,能够轻松高效的处理复杂的数据转换和数据过滤。特别在风控场景中,可以灵活的自定义策略达到用户理想的风控效果。
    • 构建物化视图时也支持指定排序字段,数据在整个处理流程中都能保持有序,并且每条数据都是唯一的。这就意味着,物化视图中的数据天然的具有有序性和唯一性。
    • 物化视图的存在也有效地提高了在事件驱动场景中对异常处理的能力,即使数据在 Sink 端消费失败,也可以从特定的 offset 重新开始消费数据,防止数据丢失或重复消费。
  • 更低的开发、实施运维成本
    • 架构简化:作为流计算数据库,既支持对存量数据的 Batch Query,又支持增量数据流的 Streaming Query,无需将流数据导出到下游数据库即可查询计算结果。
    • 存算分离架构:将数据计算层和数据存储层分离开,这在保证系统高可用的同时提供了强大的扩展性,让实施运维更为便利,能够按照实际的业务需求进行扩展以及优化资源。
    • 标准化结构化的 SQL 为接口:支持复杂的查询计算,极大的降低了开发运维人员的学习和使用成本。

此外,RisingWave 也拥有强大的数据连接能力,支持丰富的 Source Connector 和 Sink Connector,可以与主流的数据源和平台进行无缝集成。

实现方案

数据同步与事件分发

风控场景

总结与展望

RisingWave 是一个极具创新性的分布式 SQL 流数据库,我们对 RisingWave 的核心技术实力深感赞赏并看好其长远发展潜力。RisingWave 给我们带来了一系列强大的能力,为我们面临的诸多需求和挑战提供了优秀有效的解决方案。在使用过程中,我们深感到 RisingWave 流处理的高效和简单,也切实体会到 RisingWave ”流处理平民化”的使命。未来我们将持续深入探索 RisingWave 在品高云应用支撑平台研发中的不同应用场景,期待借助其创新的能力,优化并提升我们的技术架构与服务能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/296587.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AcWing 4405. 统计子矩阵:做题笔记

目录 暴力思路 代码 前缀和双指针 代码 解释 推荐博客 这道题的主要思路就是枚举所有的子矩阵,判断符合条件的子矩阵的个数。 暴力思路 我服了,其实我最开始没有想到 :枚举所有的子矩阵 这样一个很有总结性的要点。 我是想着哦我先…

【深度学习|Pytorch】torchvision.datasets.ImageFolder详解

ImageFolder详解 1、数据准备2、ImageFolder类的定义transforms.ToTensor()解析 3、ImageFolder返回对象 1、数据准备 创建一个文件夹,比如叫dataset,将cat和dog文件夹都放在dataset文件夹路径下: 2、ImageFolder类的定义 class ImageFol…

【系统架构师】-软件架构评估

1、质量属性 1、性能 系统的响应能力,响应时间、吞吐量, 策略:优先级队列、资源调度 2、可用性 系统正常运行的时间比例(两次故障之间的时间长度),故障间隔时间, 策略:冗余、心…

AI预测福彩3D第26弹【2024年4月4日预测--第4套算法重新开始计算第11次测试】

今天清明节假日,一会要外出,可能要晚点回来。咱们尽早先把预测数据跑完,把结果发出来供各位彩友参考。合并下算法,3D的预测以后将重点测试本套算法,因为本套算法的命中率较高。以后有时间的话会在第二篇文章中发布排列…

UniApp 应用发布到苹果商店指南

🚀 想要让你的 UniApp 应用在苹果商店亮相吗?别着急,让我来带你一步步完成这个重要的任务吧!在这篇博客中,我将详细介绍如何将 UniApp 应用顺利发布到苹果商店,让你的应用跻身于苹果生态之中。 引言 &…

2024年泰迪杯数据挖掘B题详细思路代码文章教程

目前b题已全部更新包含详细的代码模型和文章,本文也给出了结果展示和使用模型说明。 同时文章最下方包含详细的视频教学获取方式,手把手保姆级,模型高精度,结果有保障! 分析: 本题待解决问题 目标&#…

Linux基础篇:VMware centos7虚拟机网络配置——桥接模式

VMware centos7虚拟机网络配置——桥接模式 1 搞清楚什么是桥接模式 桥接模式允许虚拟机直接连接到物理网络,就像它是物理网络中的一个独立设备一样。在这种模式下,虚拟机将具有与宿主机相同网络中的其他设备相同的网络访问权限。虚拟机将获得一个独立…

css心跳动画

图标引入 <img class"icon" src"heart.svg" alt"" srcset""> CSS代码 <style>.icon {animation:bpm 1s linear,pulse 0.75s 1s linear infinite;}keyframes pulse {from,75%,to {transform: scale(1);}25% {transform:…

RocketMQ(版本4.9.4)+RocketMQ_Dashbord环境搭建(生产者、消费者的前置环境搭建)

一、官方网站下载 RocketMQ源码包 https://rocketmq.apache.org/zh/docs/4.x/introduction/02quickstart 二、把rocketMQ上传到Linux环境下解压&#xff0c;编译&#xff0c;执行以下命令&#xff08;需要提前装jdk和maven并配置好环境变量&#xff09; unzip rocketmq-all-4…

Postman和Python Request测试多行Form-data

1、请求参数有多个&#xff0c;F12查看请求体如下&#xff1a; 查看源代码&#xff1a; ------WebKitFormBoundaryHknGXm9VkhRUXZYC Content-Disposition: form-data; name"custId"IICON004 ------WebKitFormBoundaryHknGXm9VkhRUXZYC Content-Disposition: form-da…

强大缓存清理工具 NetShred X for Mac激活版

NetShred X for Mac是一款专为Mac用户设计的强大缓存清理工具&#xff0c;旨在帮助用户轻松管理和优化系统性能。这款软件拥有直观易用的界面&#xff0c;即使是初次使用的用户也能快速上手。 软件下载&#xff1a;NetShred X for Mac激活版下载 NetShred X能够深入扫描Mac系统…

Golang | Leetcode Golang题解之第7题整数反转

题目&#xff1a; 题解&#xff1a; func reverse(x int) (rev int) {for x ! 0 {if rev < math.MinInt32/10 || rev > math.MaxInt32/10 {return 0}digit : x % 10x / 10rev rev*10 digit}return }

doccano标注工具|为机器学习建模做数据标注

目录 一、标记流程 二、配置环境 2.1 安装 2.2 运行doccano 三、案例 3.1 创建项目 3.2 上传数据 3.3 定义标签 3.4 添加成员 3.5 开始标注 3.6 导出数据 3.7 导出数据 doccano doccano是开源的数据…

软件测试用例(2)

具体的设计方法 -- 黑盒测试 因果图 因果图是一种简化的逻辑图, 能直观地表明程序的输入条件(原因)和输出动作(结果)之间的相互关系. 因果图法是借助图形来设计测试用例的一种系统方法, 特别适用于被测试程序具有多种输入条件, 程序的输出又依赖于输入条件的各种情况. 因果图…

【深度学习】sdwebui的token_counter,update_token_counter,如何超出77个token的限制?对提示词加权的底层实现

文章目录 前言关于token_counter关于class StableDiffusionProcessingTxt2Img(StableDiffusionProcessing)如何超出77个token的限制&#xff1f;对提示词加权的底层实现Overcoming the 77 token limit in diffusers方法1 手动拼方法2 compel 问询、帮助请看&#xff1a; 前言 …

MyBatis的基本应用

源码地址 01.MyBatis环境搭建 添加MyBatis的坐标 <!--mybatis坐标--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.9</version></dependency><!--mysql驱动坐…

【C语言】联合和枚举

个人主页点这里~ 联合和枚举 一、联合体1、联合体类型的声明2、联合体成员的特点3、与结构体对比4、计算联合体大小 二、枚举1、枚举的声明2、枚举的优点3、枚举类型的使用 一、联合体 1、联合体类型的声明 联合体的定义与结构体相似&#xff0c;但是联合体往往会节省更多的空…

【科研笔记】知识星球不可选择内容爬虫

知识星球不可选择内容爬虫 1 背景2 实现3 拓展遗留问题1 背景 针对与知识星球中,电脑打开网页不可选择复制粘贴的问题,进行爬虫处理,获取网页的内容,并保存在本地 2 实现 需要下载python,和爬虫的第三方库selenium,可以查看博客中有关selenium的内容进行回顾。当前使用…

Compose 中状重组

一、状态变化 1.1 状态变化是什么 根据上篇文章的讲解&#xff0c;在 Compose 我们使用 State 来声明一个状态&#xff0c;当状态发生变化时&#xff0c;则会触发重组。那么状态变化是指什么呢&#xff1f; 下面我们来看一个例子&#xff1a; Composable fun NumList() {val…

非比较排序之计数排序

思想&#xff1a; 比较排序又称为鸽巢原理&#xff0c;是对哈希直接定址法的变形应用。 思想步骤&#xff1a; 统计相同元素出现的次数根据统计的结果将序列收回到原来的序列中 具体步骤&#xff1a; 先统计数据的大小范围&#xff0c;开辟一个大小为范围的数组( 最大值 -…