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 在品高云应用支撑平台研发中的不同应用场景,期待借助其创新的能力,优化并提升我们的技术架构与服务能力。
相关文章:
RisingWave 在品高股份 Bingo IAM 中的应用
背景介绍 公司背景 品高股份,是国内专业的云计算及行业信息化服务提供商。公司成立于 2003 年,总部位于广州,下设多家子公司和分公司,目前员工总数近 900 人,其中 80 %以上是专业技术人员。 品高股份在 2008 年便开…...
.Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
.Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置 没有废话,直接上代码调用 没有废话,直接上代码 /// <summary>/// 启动类/// </summary>public static class Mains{static IServiceCollection _services;static IMvcBuilder _…...
尚硅谷2024最新Git企业实战教程 | Git与GitLab的企业实战
这篇博客是尚硅谷2024最新Git企业实战教程,全方位学习git与gitlab的完整笔记。 这不仅仅是一套Git的入门教程,更是全方位的极狐GitLab企业任务流开发实战!作为一应俱全的一站式DevOps平台,极狐GitLab的高阶功能全面覆盖࿰…...
2024阿里云老用户服务器优惠价格99元和199元
阿里云服务器租用价格表2024年最新,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元,ECS u1服务器2核4G5M固定带宽199元一年,2核4G4M带宽轻量服务器一年165元12个月,2核…...
【前端webpack5高级优化】提升打包构建速度几种优化方案
HotModuleReplacement(HMR/热模块替换) 开发时我们修改了其中一个模块代码,Webpack 默认会将所有模块全部重新打包编译,速度很慢 所以我们需要做到修改某个模块代码,就只有这个模块代码需要重新打包编译,…...
【第十一届大唐杯全国大学生新一代信息通信技术大赛】赛题分析
赛道一 一等奖 7% 二等奖 15% 三等奖 25% 赛道二 参考文档: 《第十一届大唐杯全国大学生新一代信息通信技术大赛(产教融合5G创新应用设计)专项赛说明.pdf》 一等奖:7% 二等奖:10% 三等奖:20% 赛项一&am…...
Java面试题:Java集合框架:请简述Java集合框架的主要组成部分,并解释它们之间的关系。
Java集合框架(Java Collections Framework)是一组用来表示和操作集合的类的集合,它提供了用于存储不同类型对象的标准化接口和类。Java集合框架的主要组成部分包括以下几个部分: 集合接口(Collection Interface&#…...
hadoop3.0高可用分布式集群安装
hadoop高可用,依赖于zookeeper。 用于生产环境, 企业部署必须的模式. 1. 部署环境规划 1.1. 虚拟机及hadoop角色划分 主机名称 namenode datanode resourcemanager nodemanager zkfc journalnode zookeeper master slave1 slave2 1.2. 软件版本 java …...
Flink SQL系列之:解析Debezium数据格式时间字段常用的函数
Flink SQL系列之:解析Debezium数据格式时间字段常用的函数 一、FROM_UNIXTIME二、DATE_FORMAT三、TO_DATE四、CAST五、TO_TIMESTAMP_LTZ六、CONVERT_TZ七、FROM_UNIXTIME八、TO_TIMESTAMP九、常见用法案例1.案例一2.案例二3.案例三4.案例四5.案例五...
Redis底层数据结构-Dict
1. Dict基本结构 Redis的键与值的映射关系是通过Dict来实现的。 Dict是由三部分组成,分别是哈希表(DictHashTable),哈希节点(DictEntry),字典(Dict) 哈希表结构如下图所…...
Python基于深度学习的人脸识别项目源码+演示视频,利用OpenCV进行人脸检测与识别 preview
一、原理介绍 该人脸识别实例是一个基于深度学习和计算机视觉技术的应用,主要利用OpenCV和Python作为开发工具。系统采用了一系列算法和技术,其中包括以下几个关键步骤: 图像预处理:首先,对输入图像进行预处理&am…...
CTF下加载CTFtraining题库以管理员身份导入 [HCTF 2018]WarmUp,之后以参赛者身份完成解题全过程
-------------------搭建CTFd------------------------------ 给大家介绍一个本地搭建比较好用的CTF比赛平台:CTFD。 CTFd是一个Capture The Flag框架,侧重于易用性和可定制性。它提供了运行CTF所需的一切,并且可以使用插件和主题轻松进行自…...
机器学习每周挑战——信用卡申请用户数据分析
数据集的截图 # 字段 说明 # Ind_ID 客户ID # Gender 性别信息 # Car_owner 是否有车 # Propert_owner 是否有房产 # Children 子女数量 # Annual_income 年收入 # Type_Income 收入类型 # Education 教育程度 # Marital_status 婚姻状况 # Housing_type 居住…...
Vulnhub:WESTWILD: 1.1
目录 信息收集 arp nmap nikto whatweb WEB web信息收集 dirmap enm4ulinux sumbclient get flag1 ssh登录 提权 横向移动 get root 信息收集 arp ┌──(root㉿ru)-[~/kali/vulnhub] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 0…...
[C#]winform使用OpenCvSharp实现透视变换功能支持自定义选位置和删除位置
【透视变换基本原理】 OpenCvSharp 是一个.NET环境下对OpenCV原生库的封装,它提供了大量的计算机视觉和图像处理的功能。要使用OpenCvSharp实现透视变换(Perspective Transformation),你首先需要理解透视变换的原理和它在图像处理…...
C++——list类及其模拟实现
前言:这篇文章我们继续进行C容器类的分享——list,也就是数据结构中的链表,而且是带头双向循环链表。 一.基本框架 namespace Mylist {template<class T>//定义节点struct ListNode{ListNode<T>* _next;ListNode<T>* _pre…...
https访问http的minio 图片展示不出来
问题描述:请求到的图片地址单独访问能显示,但是在网页中展示不出来 原因:https中直接访问http是不行的,需要用nginx再转发一下 nginx配置如下(注意:9000是minio默认端口,已经占用,…...
【Python整理】 Python知识点复习
1.Python中__init__()中声明变量必须都是self吗? 在Python中的类定义里,init() 方法是一个特殊的方法,称为类的构造器。在这个方法中,通常会初始化那些需要随着对象实例化而存在的实例变量。使用 self 是一种约定俗成的方式来引用实例本身。…...
汽车电子行业知识:UWB技术及应用
文章目录 1.什么是UWB技术1.1.UWB测距原理1.2.UWB数据传输原理2.汽车UWB技术应用2.1.UWB雷达2.1.1.信道的冲击响应CIR2.2.舱外检测目标2.3.舱内检测活体2.3.1.活体检测原理2.4.脚踢尾箱开门2.4.1.脚踢检测原理1.什么是UWB技术 UWB(ultra wideband)也叫超宽带技术,是一种使用…...
Claude-3全解析:图片问答,专业写作能力显著领先GPT-4
人工智能技术的飞速发展正在深刻改变着我们的工作和生活方式。作为一名资深的技术爱好者,我最近有幸体验了备受瞩目的AI助手Claude-3。这款由Anthropic公司推出的新一代智能工具展现出了非凡的实力,尤其在图像识别和专业写作领域的表现更是让人眼前一亮&…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...
