从零到一,臻于至善|网易邮箱基于StarRocks 开发大数据平台的实践

news2024/11/15 20:09:42

作者:网易邮箱 黄贤康。现任职网易邮件事业部资深数据开发工程师,作为主要开发人员参与网易邮箱大数据平台的建立、优化、重构等工作,并取得相当的成效。他长期从事服务端应用及大数据领域的架构研发工作,对相关领域的底层架构、开发流程及技术细节等都有一定积累。

(本文为作者在 StarRocks Summit Asia 2022 上的分享)

从零到一,臻于至善,反映了网易人对于数据追求的不断进步,也反映了 StarRocks 在技术方面尽善尽美的追求。本次分享给大家介绍网易邮箱基于 StarRocks 开发大数据平台的实践心得。

#01

网易邮箱业务背景

1.1 网易邮箱发展史

网易邮箱作为国内互联网行业一个活化石级别的业务,从诞生到现在已经进入第二十五个年头:

  • 1997年:第一个国内互联网电子邮箱系统。

  • 2000年:VIP收费邮箱和免费邮箱齐头并进。

  • 2008年:桌面端的闪电邮面世。

  • 2009年:企业邮箱上线。

  • 2010年:拥抱移动互联网浪潮,手机号码邮箱以及邮箱大师 APP 上线。

  • 2016年:从网易邮箱孵化的网易严选电商平台上线

网易邮箱见证了国内互联网行业从诞生到发展以及壮大的整个过程,相应的数据处理架构也发生了一系列变化:

  • 2005年至2017年:基于 Hadoop 生态构建的大数据架构。

  • 2018年到2020年:基于 Flink + ClickHouse 自研的批流合一的大数据平台。

  • 2021年至今:基于StarRocks构建的极速统一的大数据平台。

1.2 邮箱数据应用场景

业务日志数据存储:所有业务日志都要求永久冷备存储,同时在一些关键的业务上面,要求至少有半年以上的热点数据的热备存储。不同的数据分别存储,离线数据存储到 HDFS ,实时数据存储到 ClickHouse。

业务可用性保障:网易邮箱作为一个通信性质的业务,它的核心收发信链路以及用户登录验证机制对可用性要求非常高。

核心指标统计:包括用户的活跃度,用户新增/流失/挽回等转化率,APP的安装率, Webmail 的登录等数据,会生成数据报表进行数据展现。

运营策略指引:包括直邮、推送等的转化率的分析,以及引流用户的留存率等方面的一些数据统计。

反垃圾与风控:邮箱需要具备反垃圾的能力以及风控的能力,会对用户的敏感行为做出判断,通过数据的反馈来进行捕捉,同时制定反垃圾策略。

业务产品优化:邮箱的数据产品会支持一些业务的优化,包括对一些新业务的用户使用数据的采集分析,以及诸如用户支付和订阅情况的分析等。

1.3 数据规模与业务现状

服务器方面。包括一些实体机和云上的一些虚机,总的算力超过1万核,服务器分布在华北和华东等各个 IDC 机房。数据比较分散,汇总处理的难度较高。

用户量方面。网易邮箱存量的注册用户达到10亿级别,同时每天还在新增巨大的新注册用户量。存量和增量巨大,风控的压力较大。

数据量方面。冷备的历史压缩数据已经达到PB级别,同时每天新增的数据量也很大,内外网的数据流量峰值达到每秒上G的级别。资源吃紧,维护成本高。

业务线方面。核心的收发信数据链路和登录服务的可用性要求都是 SLA 达到 99.99%,同时每天都有超过1000个的离线数据处理任务,实时数据处理要求7×24小时无间断运行,下游支撑超过1万个数据服务。业务模型复杂,服务精度、可用性要求高。

#02

OLAP 引擎演进与选型

2.1 OLAP 平台演进

网易邮箱作为国内互联网行业里面最早接触大数据领域的互联网厂商之一,从05年就开始接触 Hadoop 架构作为大数据处理平台。当时主要功能是数据的存储和采集,使用 MapReduce 进行数据处理,使用 Hive 和 HBase 进行离线和实时数据查询任务,数据输出使用 Oracle 的 BI 系统实现。

随着技术的不断发展,到18年逐渐过渡到基于 Flink + Kafka + ClickHouse 以及网易杭研自研的猛犸平台组建的一个批流合一的数据平台。ClickHouse 作为 ODS 基础数仓,主要用来支持实时性的查询任务,猛犸平台主要负责任务的编排和调度,自研的数据报表系统进行数据的呈现。

随着业务深入的发展,现有的架构在一些特殊的场合或需求下,有些力不从心。包括一些跨表的或者复杂度较高的查询,以及一些高并发的场景,还有一些大数据的热点更新的场景,现有的架构都没有办法做到满意。

网易邮箱从21年开始引入了 StarRocks,作为下一代数据引擎架构,解决高并发查询输出,复杂事务跨表查询,数据热更新支持等问题。

2.2 为什么引入 StarRocks

网易邮箱为什么会引入 StarRocks,这要从业务痛点说起。

首先,从资源方面来说,网易邮箱因为用户量和数据量都非常大,资源显得有些不足,造成 Kafka 和 ClickHouse,以及运算机器本身等,经常会出现一些因为压力过大而产生的报警,影响数据业务的开展和数据处理任务的开发。

其次,因为现有架构里面会同时存在多个数据平台,每个平台都要相应的运维人员介入,造成运维成本和采购费用居高不下。

再次,在数据需求方面,当前的架构与一些业务需求不匹配,主要体现在包括离线实时,和一些高并发以及跨表的查询,都没有一劳永逸的方案。

同时,作为移动互联网的一个永恒不变的矛盾,产品对于数据需求的紧迫性,当前的架构没有办法很好的快速支持。

另外,在数据开发方面,由于邮箱的一些历史原因,一些比较老旧的基础服务的日志,开发的时候并没有考虑到数据统计方面的需求,这些日志的格式参差不齐,对数据清洗以及下游的数据存储的技术迭代有一定影响。

最后,系统的一些链路经过多年的迭代之后有些臃肿,而数据需求经常变化多端,导致开发人员的人力资源不是很够,造成开发难度的增大。

因为上述问题,我们迫切需要一个性能强悍、上手容易、部署简单、使用方便、适配性高、安全稳定的 OLAP 系统,而 StarRocks 刚好能满足我们的需求,这是我们为什么要引入 StarRocks 的根本原因。

2.3 OLAP 指标维度对比

我们对比了国内外一些比较常见的 OLAP 系统,包括 StarRocks、ClickHouse、Impala 以及最基础的 Kylin。下图是我们的对比结果。

我们对比的维度包括底层技术、查询性能、维护难度、场景适配、兼容易用、安全稳定和扩展伸缩7个维度。

ClickHouse 作为当前比较流行的 OLAP 系统,我们重点分析一下它跟 StarRocks 的一些区别。

底层技术方面, StarRocks 与 ClickHouse 都是基于 MPP 架构实现。

查询性能方面,StarRocks 的性能在单表查询上表现良好,多表联合查询方面比 ClickHouse 更有优势。

维护难度方面,StarRocks 没有三方依赖,可以开箱即用,而 ClickHouse 的维护难度在业界是出了名的高。

场景适配方面,我们当前的实际应用是实时数仓,存储海量的流水数据。StarRocks 提供了若干种数据模型,可以覆盖大部分的业务场景。

兼容易用方面,两者的表现差不多。ClickHouse 支持 HTTP 接口,StarRocks 的优势则体现在提供多种 IO 的支持,以及对于 MySQL 协议的兼容。

安全稳定方面,分区分桶和多副本架构两者都支持,最大区别是 ClickHouse 的分布式高可用是基于ZooKeeper 实现的。我们在实际应用中发现,在高负载的情况下,ZooKeeper 的表现是比较差的,经常出现一些诸如复制失败、数据丢失的情况。StarRocks 则是基于自研的 BDBJE 来实现,在我们的实际应用过程中并没有发现它出现类似 ClickHouse 那样的数据异常的问题。

扩展伸缩方面, StarRocks 的优势主要体现在它可以对每一个分区来灵活的定制它的数据扩容的方案,同时它在扩容之后,可以自动实现数据均衡,相对来说 ClickHouse 则需要人工介入来处理。

经过以上7大方面的对比,StarRocks 在各方面的均衡表现,都非常适合作为网易邮箱的下一代 OLAP 系统的选型。

#03

系统架构

3.1 系统架构描述

下图左边就是网易邮箱大数据处理系统的系统结构图,从左到右,从下到上可以分为5个层次。

左下角是数据采集层,它主要的任务就是将分布在各个服务器上的日志数据,通过 Flume 采集汇总到数据处理层,按照不同的类型诸如离线的或者是实时的分别存储到对应的存储介质上。

再上一层是数据加工层,对应不同的数据类型,离线数据使用MapReduce 任务处理,实时数据使用 Flink 任务处理,然后把数据存储到数据存储层。

再往上是数据存储层,最原始的没有经过任何加工的 ODS 数据会存储到 HDFS 上,经过一定的清洗形成的结构化数据会放到 ClickHouse 的实时数仓里面。从21年开始,数据存储层引入了 StarRocks 把 ClickHouse 实时数仓上的基础数据进行聚合提炼,以应对更深层更复杂的查询,和一些实时性的查询。

在数据存储层上面就是数据应用层了,应用层主要包括了数据大盘报表的输出,以及给下游业务提供的实时查询的业务接口。

右面绿色部分是数据治理框架,包括数据链路的监控,实时和离线任务的配套 Sloth,以及 Azkaban 的模型,还有我们出于对数据血缘方面的考虑,自己研发的一套任务执行框架,以及对应的 Kibana 和 Promethues 的数据监控系统。

这5大部分共同组成了一个完整的大数据处理架构。

3.2 StarRocks 使用场景

StarRocks 在网易邮箱的实际业务中的使用场景,可以分为4个类型:

  • 多维度数据查询:包括支付链路漏斗分析、活动引流效果分析以及风控用户行为分析等。

  • 日常数据处理:在这方面是把 StarRocks 作为一个工具库来使用,比如一些推广或者一些用户导流方面的用户筛选,以及一些多元数据的合并处理如关联过滤去重等。

  • 实时数仓的聚合处理:用户的存储容量需要实时的叠加汇总,来生成一个最终的指标,另外还需要对用户行为进行分析、识别恶意用户等。

  • 高并发数据查询接口:包括数据链路的告警,还有一些用户行为机制的触发等。

以上4种场景都是基于 StarRocks 提供的,包括跨表查询的能力、聚合模型实现的数据热更新以及高并发的数据查询响应能力等。这使得 StarRocks 能够适应网易邮箱大部分的使用场景,能够做到以往要靠多个系统才能完成的工作。

3.3 StarRocks 表现

  • 性能

下图中的3是我们生产环境中的一个 StarRocks 集群,包括三台物理机。

图中的1是一个跨表查询的结果,在若干个数据规模超过亿级的大表上进行一个联合查询,大概两分钟左右能够产生结果,这是比较强悍的一个跨表查询,解决掉了我们以往的比较头痛的问题。

对于这些复杂的查询,以往只能在数据规划阶段,把所有维度都合成一个大宽表来实现,一来导致维护的难度较高,二来会造成数据冗余,实现不够优雅。有了 StarRocks 之后,可以充分利用它的跨表查询的能力,把不同的数据,按照各自的特性切分到最合适的维度,在查询时根据各自的特性,组合成一个结果输出。

图中的2是在一个高并发场景下的压测结果,在100个并发以内,StarRocks 的响应时间都可以控制在50毫秒以内,这样的高并发的响应效率,已经足以媲美 HBase 或关系型数据库的能力了。因此StarRocks 其实已经能够取代关系型数据库的部分应用场景,从而不需要部署多种不同的业务架构,实现我们减少投入的目标。

图中的4是数据的 IO 的压测结果,基于文件的 Stream Load 来进行压测,导入1.1亿条数据,耗时5分钟左右。比较强大的交互式数据导入能力,保证了 StarRocks 作为基础数仓对接不同数据源的扩展能力。

  • 运维

对比 ClickHouse 和 Hadoop 这些比较传统的大数据架构,StarRocks 的系统维护门槛相对较低,主要体现在它是一个没有第三方依赖的系统,能够开箱即用

StarRocks 的 FE/BE 的分离设计,分区分桶的数据存储方案,还有多副本机制,能够最大程度的保证数据的可用性。

StarRocks 分区分桶的设计,保证了能够支持在线扩容、自动数据均衡、自动冷备等特性,很大程度上降低了维护人员的工作强度。

StarRocks 还配备了覆盖面比较广的Grafana模板,提供集群性能指标的全方位可视化监控,使我们能够随时随地监控集群的运行情况。

  • 使用

StarRocks 提供了多种数据模式来支持不同的业务场景,像明细、聚合以及主键更新等,可以选择最贴切的数据模型来应对业务场景的开发。

StarRocks 支持文件、流以及外部表等多种数据交互方式,还提供了 Flink Connector 来提供流数据的支持,可以直接对接 Flink 任务实现数据流的导入。

StarRocks 的存储可以灵活的配置,像分区分桶的策略、TTL 的自动实现以及对外部表和物化视图的支持等,这些设计都能更好的提升查询性能。

StarRocks 支持标准的 SQL95 语法,同时提供了丰富的函数以及 UDF 自定义函数的功能。另外 Bitmap 可以实现数据的过滤去重以及索引的管理等。

StarRocks 在交互接口方面,它提供了 FE 多节点自动轮巡的 HTTP 接口,能够实现负载均衡。同时它对于 MySQL 协议的全兼容,很大程度上方便了业务开发,可以直接使用 MySQL Client 或者 JDBC 的驱动来开发对接。

StarRocks 有充分的技术团队支持,这也是它最重要的优势。镜舟公司提供了强大的业务团队,帮助解决我们在开发过程中遇到的问题,对于一些数据处理的工作,也提供了强大的业务支持。

#04

应用案例

4.1 用户登录处理链路

左边是数据链路的一个示意图,用户登录的行为数据,经过 Kafka 以及 Flink 的实时处理之后,存储到 StarRocks 数仓,然后同时支持下游4个不同的数据需求。

  1. 数据的落盘存储。

  1. 基于存储之后的数据,在 T+1 的时间窗口进行数据的统计,最终生成 OKR 指标,输出到下游的数据报表系统。

  1. 实时的用户登录,我们要求进行一些监控,来保证用户的敏感行为能够自动聚合叠加,到达一定阈值之后,触发一些风控处理。

  1. 针对需要实时查询的数据,提供一个查询接口,供下游业务调用。

以上4个需求,正好分别对应 StarRocks 的4个特性

  • 明细模型可以很好的支持海量数据的落盘。

  • 聚合模型能够最大程度的简化数据叠加的处理逻辑。

  • 跨表查询能力能够简化 OKR 指标的生成。

  • 高并发的能力能够最大程度的支持数据接口的开发。

4.2 推广活动漏斗分析模型

左上角的图是网易邮箱比较常见的推广活动的节点链路的示意图,它包括6个数据节点,每个节点都会按照用户的操作行为,将数据反馈到后台的数仓里面。

我们的任务就是根据这些反馈的素材数据,建立如右图这样的漏斗模型,方便产品和推广人员直观的分析出推广链路里面的短板是哪个环节,用户在每个环节里流失的具体原因是什么。在模型的建立过程中充分利用了 StarRocks 的跨表查询的能力,能够根据用户ID以及一些时间参数,对6个不同节点上反馈的数据进行串联,最终生成大宽表来支持模型的建立。

#05

未来展望

5.1 StarRocks 的优势和展望

StarRocks 的优势包括开箱即用、投入较少、功能强大、覆盖的场景多、架构先进简洁、迭代迅速、支持到位等。

这里重点说一下我们的展望。首先,网易邮箱作为一个历史比较久的业务,有大量的数据存储在一些比较老旧的数据架构里面,如何快速并且低成本的将这些数据迁移到 StarRocks 平台上,同时能够保证迁移过程中数据的安全稳定,并且不影响正常的数据链路,很希望能够看到 StarRocks 有相应的支持。

其次,对于像AI算法之类的数据挖掘的需求,也希望看到 StarRocks 的支持。

再者,网易邮件里面存储了很多图片文件视频等非结构化的内容,如果要把它们全部迁移到 StarRocks 存储系统里面来,也希望能有一个类似数据湖的解决方案。

最后,在可视化工具方面,也希望能够看到 StarRocks 的有力支持。

5.2 总结

网易邮箱从21年开始接触 StarRocks,到现在一年多的时间里,作为一个刚刚崭露头角的 OLAP 系统,StarRocks 在各方面的表现都很不错,它在功能、性能以及覆盖的场景方面的表现,都让我们相当满意,甚至超出了我们当初的预期。

后续网易邮箱会上线更多基于 StarRocks 的业务应用,同时也会在网易集团内部推广,希望能够得到厂商更有力的支持。

希望在厂商的不断努力,以及 StarRocks 开源之后的用户反馈和积极参与下,StarRocks 能够实现更进一步的能力发挥。最后也借此机会再次感谢镜舟公司对于网易邮箱在大数据开发方面的最体贴最有力的支持,谢谢大家!

  • 关于 StarRocks

StarRocks 是数据分析新范式的开创者、新标准的领导者。面世三年来,StarRocks 一直专注打造世界顶级的新一代极速全场景 MPP 数据库,帮助企业建立“极速统一”的数据分析新范式,是实现数字化转型和降本增效的关键基础设施。

StarRocks 持续突破既有框架,以技术创新全面驱动用户业务发展。当前全球超过 200 家市值 70 亿元以上的头部企业都在基于 StarRocks 构建新一代数据分析能力,包括腾讯、携程、平安银行、中原银行、中信建投、招商证券、众安保险、大润发、百草味、顺丰、京东物流、TCL、OPPO 等,并与全球云计算领导者亚马逊云、阿里云、腾讯云等达成战略合作伙伴。

拥抱开源,StarRocks 全球开源社区飞速成长。截至 2022 年底,已有超过 200 位贡献者,社群用户近万人,吸引几十家国内外行业头部企业参与共建。项目在 GitHub 星数已超 3800 个,成为年度开源热力值增速第一的项目,市场渗透率跻身中国前十名。

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

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

相关文章

什么是一站式人力资源管理系统?

首先什么是人力资源管理系统?简单来讲,人力资源管理系统就是帮助企业人力资源部门进行日常管理的辅助工具。人力资源部门通常需要负责企业员工管理的各个方面,无论是招聘,培训,考勤还是薪资绩效,都需要企业…

Jmeter使用手册

Jmeter使用手册Jmeter使用手册1.Jmeter安装教程下载地址Jmeter环境变量配置启动应用实例1.Jmeter安装教程下载地址https://jmeter.apache.org/download_jmeter.cgiJmeter环境变量配置新建变量名称:JMETER_HOME值为:D:\work_tools\apache-jmeter-5.5添加到path:%JMETER_HOME%\bi…

服务器应该如何做好防护以及被攻击之后如何处理

服务器是每个软件运行的基础,也是运行过程中最重要的一部分,所以在运行的过程中,服务器会受到黑客的不法攻击,那么服务器我们应该如何做好防护以防被攻击呢!接下来小蚁君给大家一一讲解。首先可以安装最新的安全补丁&a…

仪表板展示 | DataEase看中国:数据呈现中国能源发展情况

背景介绍 能源是经济发展的基石,能源的供给与人们生活和经济发展息息相关。二十大报告强调:“要积极稳妥推进碳达峰碳中和,立足我国能源资源禀赋,坚持先立后破,有计划分步骤地实施碳达峰行动。深入推进能源革命&#…

Elasticsearch使用篇 - 更新文档

更新的内部机制 注意:实际使用 murmurhash 算法 注意:更新任何一个字段都是全部删除。并发更新操作之间无事务隔离保证,会产生数据错位问题。 更新操作 1、单条覆盖更新 1、覆盖式更新,由客户端完成所有数据的组装,…

35. 实战:Python实现视频去水印(文末源码)

目录 前言 目的 思路 代码实现 1. 请求URL,查看源代码 2. 源代码中没有就去抓包工具 3. 拿到视频源链接,继续检索来源 4. 拿到数据和链接,二进制写入到本地 完整源码 运行效果 总结 前言 我们在刷某短视频平台时,有些…

SpringCloud搭建微服务之Vault密钥管理

1. 概述 Vault是一款管理密钥和保护敏感数据的组件,用于保护、存储和严格控制对令牌、密码、证书和加密密钥的访问,可以使用UI客户端、CLI和HTTP API访问密钥和其他敏感数据。更多详细介绍,可以参阅vault官网 2. Vault下载与安装 本文以wi…

【Python学习笔记】6. Python3 基本数据类型(下)——列表、元组、集合、字典、数据类型转换

前言 本文介绍Python3基本数据类型——列表、元组、集合、字典、数据类型转换。 List(列表) List(列表) 是 Python 中使用最频繁的数据类型。 列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同&#xff0…

MySQL存储结构

数据结构 数据结构可视化:https://www.cs.usfca.edu/~galles/visualization/ 树 二叉树缺点: 单边节点过多时无法提高效率 红黑树: 具有平衡功能的二叉树,解决了单边节点过多导致的效率无法提高的问题,缺点是平衡算法…

移动端 自适应布局方案

文章目录DPRrem布局实现机理优点缺点相关技术方案viewport 布局优点缺点相关技术方案媒体查询等比缩放原理DPR DPR 设备物理像素 / CSS像素 DPR 2 为例,把 4(2x2)个物理像素当一个 CSS 像素使用 rem布局 rem 就是相对于根元素 html 的…

【正点原子FPGA连载】第二十章Linux图形化配置及其原理 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第二十章Linux图…

Python获取信用企业的数据

文章目录前言一、需求二、分析三、测试运行前言 本系列文章来源于真实的需求本系列文章仅供学习参考本系列文章你来提我来做 one:Leave a message at the end of the article two:Get wechat contact information 一、需求 需求 URL:https://szxt.zjamr.zj.gov.cn…

如何保持线上安全:你们的个人网络安全指南

在互联网上保持安全的最佳做法。 我们之前写过关于保护你们的加密资产的文章——你们可以在此处查看我们的加密操作安全指南。现在是时候准备一组更通用的提示来帮助你们保持线上安全。我们知道你们可能大部分的购物都是在网上进行的,我们真的不希望你们被黑客攻击。…

HTB_Funnel_ssh隧道转发

文章目录信息收集hydra ssh 暴破ssh 隧道转发 postgresql 流量postgresql 使用动态端口转发信息收集 nmap -sC -sV 10.129.143.249 账号密码 Anonymous:ftp 发现两个文件,下载 默认密码 funnel123#!# 一封邮件 邮箱名可能是用户名 hydra ssh 暴破 hydra -L userna…

Redis_主从复制

一、介绍主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。二、作用读写分离,性能拓展容灾快速恢复(一主多从)三、搭建配置1、创建/myredis文件夹2、复制Re…

一篇五分生信临床模型预测文章代码复现——FIgure 9.列线图构建,ROC分析,DCA分析 (二)

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…

【GPLT 二阶题目集】L2-041 插松枝

人造松枝加工场的工人需要将各种尺寸的塑料松针插到松枝干上,做成大大小小的松枝。他们的工作流程(并不)是这样的: --->每人手边有一只小盒子,初始状态为空。 --->每人面前有用不完的松枝干和一个推送器&#xf…

[NSSRound#7 Team]Web学习

系列文章目录 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录一、ecRCE二、Shadowflag三、[NSSRound#7 Team]新的博客四、[NSSRound#7 Team]0o0提示:以下是本篇文章正文内容,下…

【异常】发送失败,此请求可能存在风险,已被微信拦截

一、背景说明 今天上线了新年红包的功能,但是部分用户提示了如下的异常,没有明显的异常提示,就是在查询ELK时,看了如下的错误提示,错误截图如图 提示“发送失败,此请求可能存在风险,已被微信拦…

【Redis】hmdp点赞、排行榜、分页功能的实现

【Redis】hmdp点赞、排行榜、分页功能的实现 文章目录【Redis】hmdp点赞、排行榜、分页功能的实现1.点赞功能实现1.1 需求1.2 实现步骤1.3 思路分析1.4 代码实现1.5 逻辑解析2. 排行榜功能实现2.1 需求2.2 实现步骤2.3 思路分析2.4 代码实现2.5 逻辑解析3. 分页功能实现3.1 需求…