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 在品高云应用支撑平台研发中的不同应用场景,期待借助其创新的能力,优化并提升我们的技术架构与服务能力。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

25.11 MySQL 视图

1. 常见的数据库对象 对象描述表(TABLE)存储数据的逻辑单元, 以行和列的形式存在, 列就是字段, 行就是记录.数据字典系统表, 存放数据库相关信息的表. 数据通常由数据库系统维护, 程序员通常不可修改, 只可查看.约束(CONSTRAINT)执行数据校验的规则, 用于保证数据完整性的规则…

JMeter+Grafana+influxdb 配置出现transaction无数据情况解决办法

JMeterGrafanainfluxdb 配置出现transaction无数据情况解决办法 一、问题描述二、解决方法 一、问题描述 如下图所示出现application有数据但是transaction无数据情况 二、解决方法 需要做如下设置 打开变量设置如下图打开两个选项 然后再进行后端监听器的设置 如下图所…

AR/VR技术对制造业劳动力危机的影响

借助 AR/VR 的力量缩小现代制造业的技能差距 数字化转型仍然是企业的首要任务,其许多方面都需要人工干预。然而,推动此类举措所需的技术工人日益短缺。这就造成了我们所说的“制造业劳动力危机”。 制造业应当如何: 制造业用工危机正在影响…

基于单片机的汽车自动预警刹车系统汇编

**单片机设计介绍,基于单片机的汽车自动预警刹车系统汇编 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的汽车自动预警刹车系统汇编概要主要描述了通过单片机技术实现汽车自动预警和刹车控制的系统设计和…

Tinymce富文本编辑器二次开发电子病历时解决的bug

前言 本文是在Tinymce富文本编辑器添加自定义toolbar,二级菜单,自定义表单,签名的基础之上进行一些bug记录,功能添加,以及模版的应用和打印 项目描述 建立电子病历模版—录入(电子病历模版和电子病历打印…

微信小程序使用icon图标

原因: 微信小程序使用fontawesome库使用icon图标,网上有很多教程,按照网上说法制作,引入到微信小程序中,但是验证成功,只能使用部分图标,结果不尽如人意。后面使用阿里巴巴开源iconfont来使用ic…

【.NET全栈】ZedGraph图表库的介绍和应用

文章目录 一、ZedGraph介绍ZedGraph的特点ZedGraph的缺点使用注意事项 二、ZedGraph官网三、ZedGraph的应用四、ZedGraph的高端应用五、、总结 一、ZedGraph介绍 ZedGraph 是一个用于绘制图表和图形的开源.NET图表库。它提供了丰富的功能和灵活性,可以用于创建各种…

R语言数据挖掘:随机森林(1)

数据集heart_learning.csv与heart_test.csv是关于心脏病的数据集,heart_learning.csv是训练数据集,heart_test.csv是测试数据集。要求:target和target2为因变量,其他诸变量为自变量。用决策树模型对target和target2做预测&#xf…

使用Java拓展本地开源大模型的网络搜索问答能力

背景 开源大模型通常不具备最新语料的问答能力。因此需要外部插件的拓展,目前主流的langChain框架已经集成了网络搜索的能力。但是作为一个倔强的Java程序员,还是想要用Java去实现。 注册SerpAPI Serpapi 提供了多种搜索引擎的搜索API接口。 访问 Ser…

Unity性能优化篇(十四) 其他优化细节以及UPR优化分析器

代码优化: 1. 使用AssetBundle作为资源加载方案。 而且经常一起使用的资源可以打在同一个AssetBundle包中。尽量避免同一个资源被打包进多个AB包中。压缩方式尽量使用LZ4,少用或不要用LZMA的压缩方式。如果确定后续开发不会升级Unity版本,则可…

微服务相关之Nacos

微服务相关之Nacos 一、基础概念1.什么是 Nacos2.Nacos 的关键特性包括3.Nacos 核心组件4.Nacos 业务大图 二、架构设计1.基本架构及概念 三、Nacos注册中心1.注册中心演变及其设计思想2.Nacos注册中心架构3.服务注册表结构 一、基础概念 1.什么是 Nacos Nacos /nɑ:kəʊs/ …

vlookup跨表使用

VLOOKUP(查找值,数据表,列序数,匹配条件)。打开两表格,输入查找值和表格数据格式一致,查找表格或数据范围是连续的。 跨表VLOOKUP使用步骤: 插函数单元格,输“VLOOKUP()…

AI学习-线性回归推导

线性回归 1.简单线性回归2.多元线性回归3.相关概念熟悉4.损失函数推导5.MSE损失函数 1.简单线性回归 ​ 线性回归:有监督机器学习下一种算法思想。用于预测一个或多个连续型目标变量y与数值型自变量x之间的关系,自变量x可以是连续、离散,但是目标变量y必…

【图】最小生成数—Kruskal算法

目录 1. 什么是最小生成树? 2. Kruskal算法 1. 什么是最小生成树? 最小生成树(Minimum Spanning Tree,简称 MST)是指在一个连通的无向图中,找到一个包含所有顶点的树,并且边的权值之和最小。…

简单的安全密码生成器PwGen

什么是 PwGen ? PwGen 是一个简单的 Docker Web 应用程序,旨在生成具有可自定义选项的安全密码或密码短语。用户可以选择生成具有特定标准的随机密码或由随机单词组成的密码。其他功能包括在密码中包含大写字母、数字和特殊字符的选项,或者将…

边缘计算盒子与云计算:谁更适合您的业务需求?

边缘计算盒子和云计算,这两个概念听起来可能有点复杂,但其实它们就是两种不同的数据处理方式。那谁更适合您的业务需求呢?咱们来详细说说。 边缘计算盒子,就像是个小型的数据处理中心,放在离你业务现场比较近的地方。它…

解决Flutter应用在苹果商店上架中常见的问题与挑战

引言 Flutter是一款由Google推出的跨平台移动应用开发框架,其强大的性能和流畅的用户体验使其备受开发者青睐。然而,开发一款应用只是第一步,将其成功上架到苹果商店才是实现商业目标的关键一步。本文将详细介绍如何使用Flutter将应用程序上…

【Unity每日一记】(Canvas的相机渲染模式) 如何将模型显示在UI之前

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:uni…

CSS——精灵图

CSS——精灵图 目录 CSS——精灵图什么是精灵图?导入精灵图裁剪精灵图使用精灵图方式1方式2 什么是精灵图? 精灵图(Spritesheet)是指将多个小图标、图像或动画合并到一个大图像中的技术。在网页设计和游戏开发中,精灵…

AlgorithmStar(AS机器学习与科学计算库) 实现 矩阵数据类型的计算函数汇总

AlgorithmStar 实现 矩阵 计算 AlgorithmStar 本文中将会演示通过 AS 机器学习库 实现 矩阵计算 目录 文章目录 AlgorithmStar 实现 矩阵 计算目录矩阵创建通过数组创建通过稀疏矩阵创建通过填充创建矩阵通过随机的方式创建矩阵 矩阵计算矩阵的基本运算矩阵的加法计算矩阵的减…