美团酒旅实时数据规则引擎应用实践

378 篇文章 71 订阅
订阅专栏

背景

美团点评酒旅运营需求在离线场景下,已经得到了较为系统化的支持,通过对离线数据收集、挖掘,可对目标用户进行T+1触达,通过向目标用户发送Push等多种方式,在一定程度上提高转化率。但T+1本身的延迟性会导致用户在产生特定行为时不能被实时触达,无法充分发挥数据的价值,取得更优的运营效果。

在此背景下,运营业务需要着手挖掘用户行为实时数据,如实时浏览、下单、退款、搜索等,对满足运营需求用户进行实时触达,最大化运营活动效果。

业务场景

在运营实时触达需求中,存在如下具有代表性的业务场景:

  1. 用户在30分钟内发生A行为次数大于等于3次
  2. 用户为美团酒店老客,即用户曾购买过美团酒店产品
  3. 用户在A行为前24小时内未发生B行为
  4. 用户在A行为后30分钟内未发生B行为(排除30分钟内用户自发产生B行为的影响,降低对结果造成的偏差)

本文以该典型实时运营场景为例,围绕如何设计出可支撑业务需求高效、稳定运行的系统进行展开。

早期方案

运营实时触达需求早期活动数量较少,我们通过为每个需求开发一套Storm拓扑相关代码、将运营活动规则硬编码这一“短平快”的方式,对运营实时触达需求进行快速支持,如图1所示:

图1  早期方案示意图

早期方案的问题

早期方案是一种Case By Case的解决方式,不能形成一个完整的系统。随着实时运营业务开展,相关运营活动数量激增,线上维护着多套相似代码,一方面破坏了DRY(Don’t Repeat Yourself)原则,另一方面线上维护成本也呈线性增长,系统逐渐无法支撑当前的需求。

挑战

为解决早期方案中出现的问题,对系统建设提出了以下挑战:

  • 硬编码活动规则的方式产生了大量重复代码,开发成本较高,需求响应时间较长。
  • 业务规则修改困难,调整运营活动条件需要修改代码并重启线上拓扑。
  • 线上Storm拓扑较多,资源利用率、系统吞吐量低,统一维护成本较高。
  • 缺乏完善的监控报警机制,很难早于业务发现系统及数据中存在的稳定性问题。

针对以上挑战,结合业务规则特点,美团点评数据智能团队调研并设计了酒旅运营实时触达系统。

技术调研

规则引擎的必要性

提高灵活度需要从业务规则和系统代码解耦和入手,规则和代码耦合直接导致了重复代码增多、业务规则修改困难等问题。那如何将业务规则和系统代码解耦和呢?我们想到使用规则引擎解决这一问题。

规则引擎是处理复杂规则集合的引擎。通过输入一些基础事件,以推演或者归纳等方式,得到最终的执行结果。规则引擎的核心作用在于将复杂、易变的规则从系统中抽离出来,由灵活可变的规则来描述业务需求。由于很多业务场景,包括酒旅运营实时触达场景,规则处理的输入或触发条件是事件,且事件间有依赖或时序的关系,所以规则引擎经常和 CEP(复合事件处理)结合起来使用。

CEP通过对多个简单事件进行组合分析、处理,利用事件的相互关系,找出有意义的事件,从而得出结论。文章最前面背景中提到的业务场景,通过多次规则处理,将单一事件组合成具有业务含义的复合事件,进而提高该类仅浏览未下单的用户的下单概率。可以看出,规则引擎及CEP可以满足业务场景的具体需求,将其引入可以提高系统面对需求变化的灵活度。

规则引擎调研

在设计规则引擎前,我们对业界已有的规则引擎,主要包括 Esper和 Drools,进行了调研。

Esper

Esper设计目标为CEP的轻量级解决方案,可以方便的嵌入服务中,提供CEP功能。

优势

  • 轻量级可嵌入开发,常用的CEP功能简单好用。
  • EPL语法与SQL类似,学习成本较低。

劣势

  • 单机全内存方案,需要整合其他分布式和存储。
  • 以内存实现时间窗功能,无法支持较长跨度的时间窗。
  • 无法有效支持定时触达(如用户在浏览发生后30分钟触达支付条件判断)。
Drools

Drools开始于规则引擎,后引入Drools Fusion模块提供CEP的功能。

优势

  • 功能较为完善,具有如系统监控、操作平台等功能。

劣势

  • 学习曲线陡峭,其引入的DRL语言较复杂,独立的系统很难进行二次开发。
  • 以内存实现时间窗功能,无法支持较长跨度的时间窗。
  • 无法有效支持定时触达(如用户在浏览发生后30分钟触达支付条件判断)。

由于业务规则对时间窗功能及定时触达功能有较强的依赖,综合以上两种规则引擎的优劣势,我们选用了相对SpEL更为轻量的表达式引擎 Aviator,将流式数据处理及规则引擎集成至Storm中,由Storm保证系统在数据处理时的吞吐量,在系统处理资源出现瓶颈时,可在公司托管平台上调整Worker及Executor数量,降低系统水平扩展所需成本。

技术方案

确定引入规则引擎后,围绕规则引擎的设计开发成为了系统建设的主要着力点。通过使用实时数据仓库中的用户实时行为数据,按业务运营活动规则,组合成有意义的复合事件,交由下游运营业务系统对事件的主体,也就是用户进行触达。将系统抽象为以下功能模块,如图2所示:

图2  系统模块图

总体来看,系统组成模块及功能如下:

  • 规则引擎:集成于Storm拓扑中,执行运营活动条件转换成为的具体规则,作出对应响应。
  • 时间窗模块:具有可选时间跨度的滑动时间窗功能,为规则判定提供时间窗因子。
  • 定时触达模块:设定规则判定的执行时间,达到设定时间后,执行后续规则。
  • 自定义函数:在Aviator表达式引擎基础函数之上,扩展规则引擎功能。
  • 报警模块:定时检查系统处理的消息量,出现异常时为负责人发送报警信息。
  • 规则配置控制台:提供配置页面,通过控制台新增场景及规则配置。
  • 配置加载模块:定时加载活动规则等配置信息,供规则引擎使用。

其中,规则引擎由核心组件构成的最小功能集及扩展组件提供的扩展功能组成。由于规则引擎解耦了业务规则和系统代码,使得实时数据在处理时变的抽象,对数据监控、报警提出了更高的要求。下面我们将从规则引擎核心组件、规则引擎扩展组件、监控与报警三个方面分别进行介绍。

规则引擎核心组件

规则引擎核心组件为构成规则引擎的最小集合,用以支持完成基础规则判断。

规则引擎核心流程

引入规则引擎后,业务需求被转换为具体场景和规则进行执行,如图3所示:

图3  规则引擎处理流程图

规则引擎在执行规则过程中,涉及以下数据模型:

  • 场景:业务需求的抽象,一个业务需求对应一个场景,一个场景由若干规则组成。用不同的规则组成时序和依赖关系以实现完整的业务需求。
  • 规则:规则由规则条件及因子组成,由路由至所属场景的事件触发,规则由规则条件、因子及规则响应组成。
  • 规则条件:规则条件由因子构成,为一个布尔表达式。规则条件的执行结果直接决定是否执行规则响应。
  • 因子:因子是规则条件的基础组成部分,按不同来源,划分为基础因子、时间窗因子和第三方因子。基础因子来源于事件,时间窗因子来源于时间窗模块获取的时间窗数据,第三方因子来源于第三方服务,如用户画像服务等。
  • 规则响应:规则执行成功后的动作,如将复合事件下发给运营业务系统,或发送异步事件进行后续规则判断等。
  • 事件:事件为系统的基础数据单元,划分为同步事件和异步事件两种类型。同步事件按规则路由后,不调用定时触达模块,顺序执行;异步事件调用定时触达模块,延后执行。
时间窗模块

时间窗模块是酒旅运营实时触达系统规则引擎中的重要构成部分,为规则引擎提供时间窗因子。时间窗因子可用于统计时间窗口内浏览行为发生的次数、查询首次下单时间等,表1中列举了在运营实时触达活动中需要支持的时间窗因子类型(表1 时间窗因子类型):

类型示例因子构成
count近X分钟浏览POI大于Y次count(timeWindow(event.id, event.userId, X * 60))
distinct count近X分钟浏览不同POI大于Y次count(distinct(timeWindow(event.id, event.userId, X * 60)))
first近X天支付的首单酒店first(timeWindow(event.id, event.userId, X * 60))
last近X天最后一次搜索的酒店last(timeWindow(event.id, event.userId, X * 60))

根据时间窗因子类型可以看出,时间窗因子有以下特点:

  1. 时间窗存储中需要以List形式保存时间窗详情数据,以分别支持聚合及详情需求。
  2. 时间窗因子需要天粒度持久化,并支持EXPIRE。
  3. 时间窗因子应用场景多,是许多规则的重要组成因子,服务承受的压力较大,响应时间需要在ms级别。

对于以上特点,在评估使用场景和接入数据量级的基础上,我们选择公司基于Tair研发的KV的存储服务Cellar存储时间窗数据,经测试其在20K QPS请求下,TP99能保证在2ms左右,且存储方面性价比较高,可以满足系统需求。

在实际运营活动中,对时间窗内用户某种行为次数的判断往往在5次以内,结合此业务场景,同时为避免Value过大影响读写响应时间,在更新时间窗数据时设置阈值,对超出阈值部分进行截断。时间窗数据更新及截断流程如图4所示:

图4  时间窗数据更新示意图

文章最前面背景中提到的业务场景,在1. 用户在30分钟内发生A行为次数大于等于3次3. 用户在A行为前24小时内未发生B行为4. 用户在A行为后30分钟内未发生B行为(排除30分钟内用户自发产生B行为的影响,降低对结果造成的偏差)中,均使用了时间窗模块对滑动时间窗内的用户行为进行了统计,以时间窗因子作为规则执行判断的依据。

规则引擎扩展组件

规则引擎扩展组件在核心组件的基础上,增强规则引擎功能。

自定义函数

自定义函数可以扩充Aviator功能,规则引擎可通过自定义函数执行因子及规则条件,如调用用户画像等第三方服务。系统内为支持运营需求扩展的部分自定义函数如表2(自定义函数示例)所示:

名称示例含义
equalsequals(message.orderType, 0)判断订单类型是否为0
filterfilter(browseList, ‘source’, ‘dp’)过滤点评侧浏览列表数据
poiPortraitpoiPortrait(message.poiId)根据poiId获取商户画像数据,如商户星级属性
userPortraituserPortrait(message.userId)根据userId获取用户画像数据,如用户常住地城市、用户新老客属性
userBlackListuserBlackList(message.userId)根据userId判断用户是否为黑名单用户

文章最前面背景中提到的业务场景,在2. 用户为美团酒店老客,即用户曾购买过美团酒店产品中,判断用户是否为美团酒店老客,就用到了自定义函数,调用用户画像服务,通过用户画像标签进行判定。

定时触达模块

定时触达模块支持为规则设定定时执行时间,延后某些规则的执行以满足运营活动规则。文章最前面背景中提到的业务场景,在4. 用户在A行为后30分钟内未发生B行为(排除30分钟内用户自发产生B行为的影响,降低对结果造成的偏差)条件中,需要在A行为发生30分钟后,对用户是否发生B行为进行判定,以排除用户自发产生B行为对活动效果造成的影响。

定时触达模块涉及的数据流图如图5所示:

图5  定时触达模块数据流图

早期的业务需求对延迟时间要求较短,且活动总数量较小,通过维护纯内存DelayQueue的方式,支持定时触达需求。随着相关运营活动数量增多及定时触达时间的延长,纯内存方式对内存的占用量越来越大,且在系统重启后定时数据会全部丢失。在对解决方案进行优化时,了解到公司消息中间件组在Mafka消息队列中支持消息粒度延迟,非常贴合我们的使用场景,因此采用此特性,代替纯内存方式,实现定时触达模块。

监控与报警

对比离线数据,实时数据在使用过程中出现问题不易感知。由于系统针对的运营活动直接面向C端,在出现系统异常或数据质量异常时,如果没有及时发现,将会直接造成运营成本浪费,严重影响活动转化率等活动效果评估指标。针对系统稳定性问题,我们从监控与报警两个角度入手解决。

监控

利用公司数据平台现有产品,对系统处理的实时事件按其事件ID上报,以时间粒度聚合,数据上报后可实时查看各类事件量,通过消息量评估活动规则和活动效果是否正常,上报数据展示效果如图6所示:

图6  实时事件监控图

报警

监控只能作为Dashboard供展示及查看,无法实现自动化报警。由于用于监控所上报的聚合数据存储于时序数据库OpenTSDB中,我们基于OpenTSDB开放的HTTP API,定制报警模块,定时调度、拉取数据,对不同事件,按事件量级、活动重要性等指标,应用环比、绝对值等不同报警规则及阈值。超出设定阈值后,通过公司IM及时发送报警信息。如图7所示,该事件环比出现数据量级下降,收到报警后相关负责人可及时跟踪问题:

图7  报警信息示意图

总结与展望

酒旅运营实时触达系统已上线稳定运行一年多时间,是运营业务中十分重要的环节,起到承上启下的作用,在系统处理能力及对业务贡献方面取得了较好的效果:

  • 平均日处理实时消息量近10亿。
  • 峰值事件QPS 1.4万。
  • 帮助酒店、旅游、大交通等业务线开展了丰富的运营活动。
  • 对转化率、GMV、拉新等指标促进显著。

当前系统虽然已解决了业务需求,但仍存在一些实际痛点:

  • 实时数据接入非自动化。
  • 规则引擎能力需要推广、泛化。
  • 场景及规则注册未对运营PM开放,只能由RD完成。

展望未来,在解决痛点方面我们还有很多路要走,未来会继续从技术及业务两方面入手,将系统建设的更加易用、高效。

作者简介

  • 晓星,美团平台技术部-数据中心-数据智能组系统工程师,2014年毕业于北京理工大学,从事Java后台系统及数据服务建设。2017年加入美团点评,从事大数据处理相关工作。
  • 伟彬,美团平台技术部-数据中心-数据智能组系统工程师,2015年毕业于大连理工大学,同年加入美团点评,专注于大数据处理技术与高并发服务。

招聘

最后发个广告,美团平台技术部-数据中心-数据智能组长期招聘数据挖掘算法、大数据系统开发、Java后台开发方面的人才,有兴趣的同学可以发送简历到lishangqiang#meituan.com

giot:物联网平台,设备管理,数据收集,处理和可视化,多协议,规则引擎
03-09
giot IoT平台,设备管理,数据收集,处理和可视化,多协议,规则引擎 设计初衷 希望能提供IOT平台的一切支持,通过插件开发,支持设备管理,物模型,产品,设备管理,规则引擎,多种存储,接收器,协议(http,mqtt,tcp,自定义协议)等等,只要可行配置文件就可以切换需要存储的方式 架构设计: 1,配置文件中,第一层是数据模块,第二层是数据组件,ModuleConfiguration 2,一个模块(模块)对应多个容器(ContainerDefinition),一个容器有多个服务(服务) 3,加载配置文件 4,初始化容器,实现依赖注入(某些postgresql实例,对应的配置) core : which : default default : metaDataStorage : postgresql deviceDataStorage : postgresql
【不体系】美团酒旅实时数据规则引擎应用实践 avaitor
九师兄
10-13 802
自定义函数可以扩充Aviator功能,规则引擎可通过自定义函数执行因子及规则条件,如调用用户画像等第三方服务。系统内为支持运营需求扩展的部分自定义函数如表2(自定义函数示例)所示:文章最前面背景中提到的业务场景,在2. 用户为美团酒店老客,即用户曾购买过美团酒店产品中,判断用户是否为美团酒店老客,就用到了自定义函数,调用用户画像服务,通过用户画像标签进行判定。
从0到1:构建强大且易用的规则引擎
美团技术团队
06-09 6451
引言 2016年07月恰逢美团点评的业务进入“下半场”,需要我们在各个环节优化体验、提升效率、降低成本。技术团队需要怎么做来适应这个变化?这个问题直接影响着之后的工作思路。 美团外卖的CRM业务步入成熟期,规则类需求几乎撑起了这个业务所有需求的半边天。一方面规则唯一不变的是“多变”,另一方面开发团队对“规则开发”的感受是乏味、疲惫和缺乏技术含量。如何解决规则开发的效率问题,最大化解...
美团:复杂风控场景下,如何打造一款高效的规则引擎
write less , do more
01-11 8899
美团规则引擎
美团酒旅数据治理实践.pdf
09-08
美团酒旅数据治理实践
美团点评酒旅移动端Vue.js最佳实践
01-27
美团点评酒旅前端专注于手机和桌面浏览器,因此不必考虑和客户端共享代码。在对比流行的MVVM框架AngularJS、React和Vue.js后,我们认为,实现上轻量、学习曲线平缓、专注在HTML视图层的Vuejs,能够最大限度地契合酒...
美团酒旅客户端自动化测试实践.pdf
10-14
美团酒旅客户端自动化测试实践.pdf
美团外卖实时数仓建设实践.docx
12-02
美团外卖数据智能组总结的最佳实践是:一个通用的实时生产平台跟一个通用交互式实时分析引擎相互配合,同时满足实时和准实时业务场景。两者合理分工,互相补充,形成易开发、易维护且效率高的流水线,兼顾开发效率与...
美团酒旅数据治理实践
hanxiaolaa的博客
03-03 434
以下文章来源于DataFunTalk,作者李建舒 导读:本文主要介绍美团酒旅数据治理的历程和实践经验,以及业务发展各个阶段中数据体系遇到的问题和解决方案。最后,将探讨数据治理在现阶段的建设思路和发展方向。 01 背景介绍 数据治理这个话题这两年非常火热,很多公司尤其大型互联网公司都在做一些数据治理的规划和动作。为什么大家都要做数据治理?我个人的理解是,从数据产生、采集、生产、存储、应用到销毁的全过程中,可能在各环节中引入各种问题。初始发展阶段,这些数据问题对我们的影响不大,大家对问题的容忍度比...
规则引擎drools-guvnor
05-25
规则引擎drools-guvnor的使用说明文档,便于规则引擎二次开发
规则引擎drools
08-03
NULL 博文链接:https://zhaoshijie.iteye.com/blog/1152013
分布式 KV 存储系统 Cellar 演进之路--美团.pdf
05-22
分布式 KV 存储系统 Cellar 演进之路--美团.pdf
规则引擎Drools 之 springboot 集成、热加载
12-22
前言:   如果对drools还不是特别熟悉的,可以看下 《规则引擎Drools 之 初识drools》这篇文章;   本文源码,github 传送门:https://github.com/vincent9309/drools:   系统架构如下: 二、项目目录结构 三、springboot集成drools  1.pom文件引入依赖 org.drools drools-core 7.0.0.Final org.drools drools-compiler 7.0.0.Final org.drools drools-decisiontabl
KV存储-Cellar和Squirrel
Tezuka
05-12 1710
1、集群架构 整体来看,Cellar是存在代理节点,Squirrel完全是去中心化。 1.1、如何保证一致性,保证的什么层次的一致性 Squirrel是弱一致性,使用的是gossip协议,Cellar是最终一致性,使用了raft协议。 1.2、如何保证可用性 Squirrel使用一个分片下多个副本,master宕机,slave立刻顶上去 Cellar同样基于分片bucket来实现多副本 1.3、如...
美团点评酒旅数据仓库建设实践
xiaoxie920226的博客
04-09 215
美团点评酒旅数据仓库建设实践: https://tech.meituan.com/2017/05/26/hotel-dw-layer-topic.html
从零构建FLINK整合Drools动态规则实时运营系统(项目案例)-第5篇(用户画像篇)
涛哥大数据小屋
04-01 1573
画像标签体系 用户基本属性标签 用户订单属性标签 用户退换货属性标签 用户购物车属性标签 用户活跃属性标签 用户偏好属性标签 用户基本属性标签 用户属性指标主要根据业务数据来源(业务系统中的用户信息) 尽可能全面地描述用户基础属性 这些基础属性值是短期内不会有改变的,如年龄、性别、手机号归属地、身份证归属地等 字段 类型 定义 备注 user_id bigint 用户编码 login_name string 登录名称 user_name string 用户姓名
数据美团酒旅实时数据规则引擎应用实践
weixin_33872566的博客
04-19 630
背景 美团点评酒旅运营需求在离线场景下,已经得到了较为系统化的支持,通过对离线数据收集、挖掘,可对目标用户进行T+1触达,通过向目标用户发送Push等多种方式,在一定程度上提高转化率。但T+1本身的延迟性会导致用户在产生特定行为时不能被实时触达,无法充分发挥数据的价值,取得更优的运营效果。 在此背景下,运营业务需要着手挖掘用户行为实时数据,如实时浏览、下单、退款、搜索等,对满足运营需求用户进行实时...
每天数百亿用户行为数据美团点评怎么实现秒级转化分析?
热门推荐
美团技术团队
03-23 1万+
用户行为分析是数据分析中非常重要的一项内容,在统计活跃用户,分析留存和转化率,改进产品体验、推动用户增长等领域有重要作用。美团点评每天收集的用户行为日志达到数百亿条,如何在海量数据集上实现对用户行为的快速灵活分析,成为一个巨大的挑战。为此,我们提出并实现了一套面向海量数据的用户行为分析解决方案,将单次分析的耗时从小时级降低到秒级,极大的改善了分析体验,提升了分析人员的工作效率。 本文以有序漏斗的...
美团高级技术专家:ddd 在旅游电商架构演进中的实践
最新发布
01-25
美团高级技术专家ddd在旅游电商架构演进中的实践主要包括以下几个方面。 首先,ddd在架构设计中注重解耦和模块化。旅游电商系统涉及多个业务模块,例如酒店、机票、旅游景点等,ddd通过将不同的业务逻辑划分为独立...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 支付系统-对账系统 18967
  • java程序员的必用的9款开发工具 11566
  • 架构师的主要职责是什么? 11372
  • 支付系统-概念与架构 10125
  • 【深度揭秘】百度、阿里、腾讯内部岗位级别和薪资结构,附带求职建议! 10014

分类专栏

  • 美团技术 378篇
  • CTO 2篇
  • 架构设计 11篇
  • 分布式
  • 求职跳槽
  • 负载均衡 1篇
  • 分布式系统 4篇
  • 消息中间件 7篇
  • 职业规划 4篇
  • 分布式缓存 1篇
  • 数据库设计
  • 分布式文件
  • 数据库 2篇
  • 求职简历 3篇
  • Kafka 1篇
  • Spring-Boot 79篇
  • 网赚技术 1篇
  • Spring-Cloud 112篇
  • 架构师 18篇
  • Java多线程 16篇
  • Java学习路线 1篇
  • 面试题 26篇
  • 阿里Java面试题 21篇
  • Redis 10篇
  • Java面试题及答案 11篇
  • Java数据结构与算法 2篇
  • 面试经验 7篇
  • 求职 4篇
  • bat薪资岗位 1篇
  • 阿里P7要求 1篇
  • 学习资料 4篇
  • 技术总监 1篇
  • 产品技术 3篇
  • RPC 5篇
  • JVM 7篇
  • Java 7篇
  • 开发书籍 5篇
  • Netty 1篇
  • Java设计模式 1篇
  • Dubbo 2篇
  • MySQL 6篇
  • Docker 2篇
  • Java集合 1篇
  • 架构师职责 1篇
  • SpringCloud 1篇
  • Java NIO 1篇
  • 中间件 2篇
  • Java基础 1篇
  • Java进阶 12篇
  • 性能优化 8篇
  • 架构技能 16篇
  • 微服务 11篇
  • 支付体系 6篇
  • DevOps 1篇

最新评论

  • java程序员学习路线以及我的学习经验

    endlesswater: 可以的,我学的另一个Java路线和资料,5个月后拿了多个满意Offer:https://knife.blog.csdn.net/article/details/132629361

  • 支付系统-对账系统

    lliiqiang: 支付系统数据有是否成功或者取消和是否需要对账状态,本地从第三方获得唯一标志产生数据是成功并且需要对账,然后和第三方对账,第三方产生成功数据,本地数据为已经对账,如果失败就取消本地数据,外界推送数据本地是未成功数据,直到数据成功。定时对账需要对账的数据,不得使用未成功的数据或者注销含有未成功或者需要对账的数据的账号。

  • 美团酒店直连产品数据一致性演进

    2301_81232141: 您好,想要做API接口对接,所以怎么取得您的联系?

  • 最强京东Java面试题(共现场4面)

    zhouhui001: 现在一个小厂都比这个问的难了

  • 支付系统-会计核心

    idogirl: 不对吧,现在网联已将所有银行收敛到它那儿,结算款是它最后总体轧差后结算给备付金,只需要记一个网联的渠道款就可以。

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • Spring Boot中使用Swagger2构建强大的RESTful API文档
  • Spring boot中使用log4j记录日志
  • Spring Boot中使用RabbitMQ
2020年790篇
2019年26篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司娄底网站优化推广公司重庆百度关键词包年推广报价河源设计公司网站坑梓网站制作设计报价钦州网站制作设计报价安顺网站推广系统公司随州seo排名公司日照关键词排名包年推广价格永湖网站推广公司重庆网站开发多少钱盘锦企业网站建设长治企业网站设计价格伊春seo网站推广推荐邯郸网页制作民治网站改版汕尾网站推广工具报价揭阳网站改版哪家好玉林网站建设设计多少钱塘坑网站优化按天扣费报价保定网站seo优化公司昆明高端网站设计哪家好商丘seo网站推广价格霍邱推广网站报价红河SEO按天扣费陇南百度竞价公司红河企业网站改版报价平顶山网站设计模板长春百度竞价价格阜新关键词排名公司常州百姓网标王推广哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化