伯俊软件CTO陈雨陆:R3全渠道业务中台的OceanBase落地实践

news2024/11/28 12:56:46

11 月 16 日,OceanBase 在京顺利举办 2023 年度发布会,正式宣布:将持续践行“一体化”产品战略,为关键业务负载打造一体化数据库。其中,“数字化转型升级实践专场”我们有幸邀请到伯俊软件 CTO 陈雨陆进行《OceanBase 在伯俊软件 R3 的实践》主题演讲,以下为演讲整理全文:

大家好,我是伯俊科技软件公司的陈雨陆,目前在公司担任 CTO 岗位,接下来将为大家分享 OceanBase 在伯俊软件 R3 的实践。

伯俊科技从事于泛零售行业,帮助企业做数字化转型,服务了中国和全球的 5000 多家知名品牌,帮助客户在零售线上线下做信息化支撑和业务拓展。从 1999 年成立到现在 24 年,每年所有客户营业额总流水超过 1000 亿,在中国遍布的所有终端加起来有 30 万,每天都在帮助零售客户完成相应的业务支撑。

图片

图片

零售企业的服务场景即“人、货、场”,当下所有零售企业最关心的就是建立品牌的全渠道零售能力。那么对于我们而言,就是帮助所有客户在任何渠道都能接住每一笔生意。此外,对所有品牌来说,基于全渠道一盘货以「最小的货盘」做「最大的生意」就是全渠道零售带来的核心价值。

图片

伯俊科技从 2018 年开始,由传统架构软件向中台一体化全渠道软件进行探索和开发。基于打造企业全渠道零售的背景,我们推出 R3 全渠道业务中台的产品。

图片

这个时间段正值互联网爆发,对零售企业而言与互联网产业密切相关,所以在时代大浪潮下,随着技术的变化,我们要满足客户在不同场景的业务闭环,而且要保留原来在业务里所有操作的便捷性、业务的关注点,更灵活地支撑,而不是给客户而带来相应的负担。

由此,R3 的整体架构也从原来一体化的软件逐渐走向 IaaS 层,搭建自己的 PaaS,通过中间的业务域建立相应的业务体系支撑中心。在业务域基础上,为不同业务上游提供不同业务场景的业务应用,直接在中台上最终为客户在不同场景如电商、门店、经销等支撑业务闭环。

图片

在如此复杂的全渠道中台背景下,我们发现一个最大的问题——数据库架构非常复杂。

图片

首先,互联网的微服务化推出要分库分表,通过分库分表提供相应的 OLTP 能力,原来基于传统关系型数据库的架构到互联网时,无法稳定支撑高并发,那时数据库产品还没来得及跟上,所以不得已开始采用分库分表做支撑。

然后,分库分表支撑下导致另一个问题,传统集中式数据库虽然享受到不错的 OLTP 能力,但当我们要查询订单,要按照模糊查,要按照备注进行修改,要看每天的进销存等。这时在互联网大中台和微服务推动下,我们选择了高 OLTP 解决业务速度的问题。相应地其他问题也要解决,所以基于订单查询我们又采用了 ES 来做相应订单的过滤、订单的查询,当它在 ES 里查询到相应数据后,再以 ID 的方式回流到 DRDS 分库分表里,再把数据吐出来,这样才能满足一些场景。

再往后,就到了业务报表的统计、分析。我们在搭建“IT+DT”(注:DT 为数据中台)双中台的时候,很多客户就说,原来在 IT 里的业务统计、业务分析,用互联网的架构感觉并没有带来什么好的突破,反而还带来了负担。因为IT不能闭环,必须要有 DT 进行闭环,所以在日常的报表和企业相应数据支撑里,我们又采取了其他的数据库和数据中间件来支撑它在 IT 里日常过程中的业务支持。采用 Binlog 解析,通过 DTS 或者 Kafka,将相应的数据流传输到带有 OLTP 能力的关系型数据库里,来作为日常的数据支撑。处理不了的数据,我们再通过 Flink 直接发送到DT,做最终的数据统计与分析。

这一套下来不难发现整体架构太过于复杂,如果能在 2018 遇见 OceanBase,我们就不用走那么多弯路。因为当时市场上还是互联网推动的时候,大家都在讲,某一个技术只为一个业务场景来进行服务,所以我们不得不一步一步去尝试在不同业务场景下选择各种各样的技术方案,来满足客户当下的业务。

五年过后,客户的业务发生了变化,互联网架构下也慢慢开始发现一些问题。第一个问题,成本越来越高。每年的成本,比如雷打不动的那么多中间件,每一个中间件每年的费用高达三、四十万,四个中间件加起来一百多万,就解决“OLTP+OLAP”一体化这一个问题;第二个问题,接下来还有人员的边际成本来运维所有中间件,后续还有企业如何从技术平台迁移到其他云,迁移到自己的信息化里,这一块带来的问题越来越多。

图片

伯俊软件一直与零售行业走得很近,我们发现在目前的大环境下,所有电商流量也开始均摊化。过去的“双 11“只有当天算是活动高峰期,但现在已经变成多波段,从 10 月 25 开始预售到 11 月 11 号付尾款,流量已经被打散。

当年在互联网蓬勃发展的大背景下,企业的想法很简单,就是我拥有了互联网的架构、互联网的技术来满足相应的业务体量。如今的企业市场经济增长不再高歌猛进,零售企业为信息化做的投入也可以进行流量均摊。接下来我们再往深水区走一些,中台技术基于数据库的转型也应该要升级了。

此时,伯俊软件希望能找到一个能够融合所有技术,比如基于 OLTP 和 OLAP 为一体的融合型数据库。所以去年我们找了很多数据库厂家一起做测试,基于业务场景的契合度,我们最终选择了 OceanBase。

图片

OceanBase 目前的能力,一个数据库已经能够满足行业客户 80% 的需求,所有业务的查询和业务配套的分析基于 OceanBase 都可以一并解决,此时的整体架构也变得异常简单。

自从和 OceanBase 合作后,我们的客户口碑和业务满意度都得到了提升,既满足了客户业务的常态化需求,又满足了客户在高可用、高并发等性能上的提升,不仅如此,对当下企业最受益还是人员边际成本的降低、多余系统采购成本的降低。比如,中间件成本就可以节省掉了,大家想一想,零售企业的毛利本来就低,每年少交的一百多万,要卖多少东西才能把这一百多万挣出来。总的来说,企业负担减少了,但仍然享受相同甚至更高的数据库能力。

图片

R3 属于战略型产品,主要是满足营收大概 30 亿以上的头部客户,伯俊软件还有很多中长尾客户。我们将在这方面尝试与 OceanBase 打造基于公有云的 PaaS 能力的直接订阅,因为 OceanBase 能显著降低原来基于订阅的费用。

未来,作为零售行业服务商,我们将与 OceanBase 携手一起将技术能力转化成背后的普惠服务客户,以最好的性能和最优的价格,让更多中小型客户能在如此不容易的市场环境下还能用得起、还能挣钱,让现金带动内需,让大家都过上最好的生活。

图片

以上就是伯俊软件站在零售行业的当下,分享的落地 OceanBase 数据库实践,希望能对大家有所帮助,谢谢。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

洗地机哪个牌子好用?洗地机希亦、石头、添可、西屋谁的清洁力更强?

洗地机的出现极大地改善了清洁过程,提高了效率,减少了人力投入。但随着市场上洗地机的种类和功能不断增加,人们可能会感到困惑,不知道如何选择适合自己需求的机器。为了帮助消费者更好地了解洗地机的选择,今天我将带大…

Redlock算法实现Redis分布式锁

Redlock算法实现Redis分布式锁 为什么基于故障转移的实现还不够 使用 Redis 锁定资源的最简单方法是在实例中创建密钥。密钥通常是在有限的生存时间内创建的,使用 Redis 过期功能,以便最终它被释放(我们列表中的属性 2)。当客户…

老师需要具备的能力

作为一名老师,需要具备许多能力,来有效地教授学生知识和技能。本文将从以下几个方面探讨老师所需具备的能力。 一、教学能力 教学是老师工作的核心,因此老师需要具备高超的教学能力。这包括了开展教学计划、教学设计、授课技巧和引导学生思考…

数据分享 I 各类制造业企业进入数量数据,shp/excel格式数据,覆盖2002-2019年数据,已可视化处理

随着经济的发展和社会的进步,制造业作为国民经济的重要支柱,一直保持着快速的发展态势。近年来,随着国家对制造业的大力扶持,各类制造业企业如雨后春笋般涌现出来,为经济的发展注入了新的活力。 各类制造业企业进入…

CAD画图-模型和布局区别,视图命令MV使用(用于局部放大显示)

模型和布局的图像区别 模型的图像: 是我们常编辑的cad文件,我们可以对里面内容进行编辑和测量等操作 布局的图像:为了可以更好的看到每个部件的相对位置,但对于里面的点位的标注就不行了,但可以对图像中的某些部位进行…

【多线程】-- 12 线程协作之生产者消费者问题及解决办法

多线程 9 线程协作 “生产者消费者问题” ——并非二十三种设计模式之一 9.1 生产者消费者问题 “线程通信” 应用场景:生产者和消费者问题 假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费如果…

【6】PyQt信号和槽

1. 信号和槽简介 信号和槽机制是 QT 的核心机制,应用于对象之间的通信 信号和槽是用来在对象间传递数据的方法当一个特定事件发生的时候,signal会被emit出来,slot调用是用来响应相应的signal的Qt中对象已经包含了许多预定义的 signal&#…

从开发到测试,你需要掌握哪些必备测试技能?

一、为什么从开发转测试 我从2019年5月开始从一名java开发女程序猿正式转为测试开发工程师,原因除了机缘凑巧之外,当然是因为这个行业对测试工程师的要求已经越来越高,简单做些UI脚本录制和回放的自动化,参考度娘写出框架demo却不…

【ecology】通过F12抓取页面SQL

1、点击流程监控,打开浏览器的”开发者工具“(F12); 2、点击搜索,在开发者工具中找到sessionkey,复制后面的值。 3、http://58.213.83.186:8081/api/ec/dev/table/getxml?dataKey 上面的网址的IP地址修改…

变电站设计综合应用软件

产品概述 变电站设计综合应用软件,以下称为软件,是一款面向智能变电站虚拟二次回路设计和光纤回路设计的单机版桌面应用软件。软件为用户提供了直观易用、一键安装、功能齐全的轻量级的设计支撑。像常规的工具化软件一样,该软件在开始设计时需要通过新建一个项目,开启一段…

widnows 使用cprofile、gprof2dot、graphviz对python项目进行可视化性能分析

1. 运行cprofile生成python方法调用信息 pr cProfile.Profile() pr.enable() # 开始记录# 要执行的代码 res your_method()pr.disable() # 结束记录 pr.dump_stats(your/path/restats.dump) #写入dump文件 pr.print_stats() #打印 2. 安装gprof2dot和graphviz 2.1 安装gpr…

【亲测有效,超详细】收到微信小程序限期完成微信认证通知怎么处理?微信小程序年审认证都需要哪些资料?

背景:近期部分微信小程序管理员最近收到了年审认证通知如下图 微信官方通知 微信小程序认证流程 第一步:登录微信公众平台 网址:微信公众平台 第二步:登录进入后会看到年审通知弹窗,点击去年审 第二步:登…

JAVA-JVM 之Class字节码文件的组成 【下篇】

字节码 类元数据接口元数据字段元数据方法元数据属性元数据 主页传送门:📀 传送 类元数据 此部分元数据主要包含类索引(This_Class)和父类索引(Super_Class)。 类索引:指向Class字节码常量池表…

UDP数据报套接字

文章目录 DatagramSocket APIDatagramPacket API示例一: 请求响应UDP服务端UDP客户端 DatagramSocket API Socket是操作系统中的一个概念,本质上是一种特殊的文件,Socket就属于把“网卡”这个设备给抽象成了文件。往 Socket 文件中写数据,就…

Qt 中的窗口类

目录 QWidget 设置父对象 窗口位置 测试代码 窗口尺寸 窗口标题和图标 信号 槽函数 QDialog 常用API QDialog的子类 QMessageBox QFileDialog QFontDialog QFontDialog类的静态API QColorDialog 颜色类 QColor 静态API函数 测试代码 QInputDialog 静态函数…

花店小程序商城制作攻略教程分享

现如今,随着互联网的快速发展,越来越多的实体店面对客流量不足的问题。特别是对于花店来说,客流量的多少直接影响着销售额和收益。为了解决这一问题,开发一个花店小程序商城成为了不可忽视的选择。 为了开发花店小程序商城&#x…

10倍提升启动的时间?Graalvm打包Springboot+MyBatis实测

graalvm使用前后对比图 相关代码博客:https://blog.csdn.net/weixin_43914278/article/details/134446327 工具大小时间graalvm打包的exe文件84.14MB0.251秒graalvm打包的docker文件121.27MB0.253秒jar包51.34MB2.153秒 解析 文件大小: graalvm打包的Docker文件…

【数电笔记】09-逻辑代数的基本定律、常用公式

目录 说明: 逻辑代数的基本定律 1. 常量间的运算 2. 逻辑变量与常量的运算 3. 与普通代数相似的定律 4. 摩根定律(反演律) 5. 等式证明方法例题 逻辑代数的常用公式 1. 吸收律 2. 冗余律 3. 示例应用 4. 关于异或运算的一些公式 …

【深度学习笔记】08 欠拟合和过拟合

08 欠拟合和过拟合 生成数据集对模型进行训练和测试三阶多项式函数拟合(正常)线性函数拟合(欠拟合)高阶多项式函数拟合(过拟合) import math import numpy as np import torch from torch import nn from d…

动态类型语言与静态类型语言的对比与比较

编程语言可以根据类型系统和类型检查时机分为动态编程语言和静态编程语言两大类,它们在运行时的代码检查方式、变量类型的使用方式等方面有很大的区别。这一块你知道吗? 本文将为您详细讲解两种编程语言的优缺点,以及它们的应用场景。 动态编…