热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

es数据定时清理_数据泵+Kafka实践(一)

数据泵中间件的意义在于解耦,我司数据泵产品采用Maxwell。几个月前在admin后台积分速报仪表盘查看会员单笔积分详情时页面无法展示,一直报conne

数据泵中间件的意义在于解耦,我司数据泵产品采用Maxwell。

几个月前在admin后台积分速报仪表盘查看会员单笔积分详情时页面无法展示,一直报connection timeout,正常展示出来的积分明细:

d004cb008e6f45d0f6e4961cffaab0dc.png

93c92201d559db73bf2dabd71f6dc398.png

该问题除了发现开发人员本身没有对代码没有优化外,也思考着结合已有的ELK来解决统计和查询效率,原因在于订单、积分表数据量过大,业务先行导致模型设计存在一定的缺陷,java层处理关联数据查询&统计工作就相当耗时,改进架构如下:

012502eaeb1373be4d2ffa6defdc0dbf.png

上游java应用产生业务数据-》MySQL-》Maxwell-》Logstash-》ES-》反哺admin系统查询&统计

实施过程中遇到的问题:

1、全量数据导入(Logstash-jdbc解决,也可以使用Maxwell-bootstrap)

2、ElasticSearch去重计数存在5%误差(产品上容忍)

3、ElasticSearch From size限制10000条记录(放弃)

4、ElasticSearch Ractive searchAfter(改造产品设计,禁止分页跳页)

5、ElasticSearch Rest searchAfter(改造产品设计,禁止分页跳页)

6、ElasticSearch Rest scroll(放弃)

7、日期时间格式转换(Logstash这一层解决)

8、Webflux

容错处理:

java层设计一个静态代理service,在这里加一个开关放redis,可来回切换mysql、ES查询两种实现,应急ES使用不成熟问题

改造后查询性能提升显著:

ff018593ad8f25750186d1ec21ab09c4.png

订单查询提升6倍左右(7200转硬盘,无缓存,首次查询)

e7ad2df030703a89afe4e75d19db89c0.png

积分查询提升10倍左右(7200转硬盘,无缓存,首次查询)

待改进点:

1、我司除MySQL服务器配置SSD硬盘外,其他所有服务器硬盘均为7200转

2、数据预热(warm up new order),定时任务或者延迟任务查询ES最近一条数据,将冷数据加载到内存

3、java使用ES语法时尽可能采用filter,少用query,丢弃评分,将冷数据加载到内存

解耦的优点看到了,如果不用Maxwell+kafka怎么把数据同步到ES呢,很显然在下单、积分代码的逻辑尾部增加ES接口操作,想象一下1000行的下单逻辑和复杂的积分规则再增加额外代码的堆叠,即使不考虑漏单的情况,望着那么一坨代码,越看越像shit




推荐阅读
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 【爬虫】关于企业信用信息公示系统加速乐最新反爬虫机制
    ( ̄▽ ̄)~又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构。升级后网站的层次结构并没有太多变化,表面上 ... [详细]
  • 基于分布式锁的防止重复请求解决方案
    一、前言关于重复请求,指的是我们服务端接收到很短的时间内的多个相同内容的重复请求。而这样的重复请求如果是幂等的(每次请求的结果都相同,如查 ... [详细]
  • python+selenium十:基于原生selenium的二次封装fromseleniumimportwebdriverfromselenium.webdriv ... [详细]
  • [翻译]PyCairo指南裁剪和masking
    裁剪和masking在PyCairo指南的这个部分,我么将讨论裁剪和masking操作。裁剪裁剪就是将图形的绘制限定在一定的区域内。这样做有一些效率的因素࿰ ... [详细]
  • Ansem 最新雄文:软着陆后,加密市场下阶段趋势与核心叙事
    市场最糟糕的时候已经过去,以太坊合并前不太会看到新的低点;但仍需来自关注宏观市场的不确定风险。撰文:Ansem ... [详细]
  • MySQL锁--(深入浅出读书笔记)
    MySQL锁的概述1.针对不同的引擎,采用不同的锁机制;(表锁,页面锁,行锁)myisam和memory存储引擎:表级锁;BOB存储引擎:页面锁,表级 ... [详细]
  • <!DOCTYPEhtml><html><head><metacharsetUTF-8><meta ... [详细]
  • 2.ElasticSearch练习索引 : sms-logs-index类型:sms-logs-type   数据导入部分PUTsms_logs_indexsms_logs_typ ... [详细]
  • 使用场景使用es聚合时,有时还需要获取query(或filter)的相关文档结果(数据)。比如统计各个地区编码的营业额,得到了聚合的统 ... [详细]
  • 架构师必读:日均500万数据,如何进行数据存储选型?
    点击上方关注我,选择“置顶或者星标”作者:麦田里的老农来源:https:zhuanlan.zhihu.comp37964096小编公司有一 ... [详细]
  • ELK stack 学习记录
    ELK日志分析平台学习记录首先ELK主要指elasticsearch、logstash和kibana,三个开源软件组合而成的一套日志平台解决方案。可以将平时收集到的日志,通过前台展 ... [详细]
author-avatar
赵小坑_38825
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有