首页 > 其他分享 >SolrCloud实践过程中问题思考以及处理方法

SolrCloud实践过程中问题思考以及处理方法

时间:2023-06-25 10:55:34浏览次数:56  
标签:HTTP SolrCloud 报文 实践 查询 时间 思考 集合 节点

一:数据量大后,单个集合存储量过大。 问题:一方面写入过慢,另一方面:查询读取速度也过慢。 解决步骤: 1.按时间维度拆分集合,保证单个集合中在每个节点的shard,数据量在3000-5000万条之间。 这样写入在最近时间归属的集合中操作。 2.写入的时候,按数量进行批次写。(数百至千条之间,经验值) 3.查询读取的时候,如果分布在最近时间集合内,则用最近的集合名称查询。 如果在之前的某个时间集合内,则用该集合名称查询。 如果横跨多个时间集合,则用别名包含多个集合名称的方式,进行汇聚查询(可以考虑所有集合放在一个别名中,以及将非当前时间的集合归并为一个别名)。 4.思索,但未实行的措施。 最近时间集合用速度较快的SSD存储,历史数据迁移至速度较慢的机械硬盘。   二:一个文档汇中有多个字段检索,客户需要模糊搜索,且是包含的那种模糊匹配。 问题难点:1.集合中数据量过大,用keyword 前后*号,模糊匹配的方式查询,速度过慢。 2.结果需要是包含的那种模糊匹配,不能包含推荐的结果。 优化步骤: 1.将需要检索字段,合并到新增的复制字段,进行固定长度的ngram分词。 查询时,将查询条件进行ngram拆分,然后对复制字段进行多个词组进行and交集检索。 这样模糊检索的速度,正常在数百毫秒之间。 2.为保证结果是包含的模糊匹配,对检索的特定字段,在进行keyword的前后*号模糊匹配过滤, 这样保证命中的结果,都是客户需要的。   三: 描述:从大量的HTTP报文流中,提取域名IP、域名脚本、域名跳转关系需要记录关系中报文最后时间,由于有个处理节点处理HTTP报文流,他们节点内部有序,节点之间无序。最初的时候,是判断当前小批HTTP信息中最大的报文时间和 SolrCloud关系集合中的最后时间相比较,取大值为该关系的最后时间。 问题: 批量的HTTP流中每个关系都需要查询SolrCloud中对应集合相应的最后时间比较,每秒需要查询上千次Solr。一方面极大增加了SolrCloud的查询负载;另一方面查询Solr耗时较长,使得关系数据提取成为数据处理瓶颈。   思路: 原则:正常情况下,数据流推送到每个处理节点,数据在每个处理节点内部,最后时间应该是有序的,各处理节点之间最后的时间也相差不大。 1.利用各节点正常情况下,节点间的HTTP报文时间相隔不久。利用Redis记录HTTP中提取的关系ID及其最后时间(最晚的HTTP报文时间),Redis缓存半个小时的数据, 2.若关系ID在Redis中存在,则和比较当前HTTP报文时间取大值; 3. 不在Redis中,如果当前节点正常,则直接以当前报文时间为关系最后时间,并存入Redis。如果节点不正常,则还是检索solr中该ID的最后时间进行比较。 4.判断节点是否正常,也是通过redis记录各处理节点的最近时间比较的,如果当前节点和最新节点相差20分钟,则认为该节点不正常。  

标签:HTTP,SolrCloud,报文,实践,查询,时间,思考,集合,节点
From: https://www.cnblogs.com/seufelix/p/17502398.html

相关文章

  • “事后达尔文”—— 游戏业务效果评估方法实践
    作者:vivo互联网数据分析团队LuoYandong、ZhangLingchao本文介绍了互联网业务数据效果评估的几种常见问题及方法,并基于分层抽样的逻辑优化出一套可应用于解决用户不均匀的“事后达尔文"分析法,可适用于无法AB测试或人群不均匀的AB测试等场景下的效果评估中,本文会基于实际应用......
  • 深入Python网络编程:从基础到实践
    Python,作为一种被广泛使用的高级编程语言,拥有许多优势,其中之一就是它的网络编程能力。Python的强大网络库如socket,requests,urllib,asyncio,等等,让它在网络编程中表现优秀。本文将深入探讨Python在网络编程中的应用,包括了基础的socket编程,到高级的异步IO网络编程,以及我们如何......
  • 思考互联网发展三阶段
    互联网经历了三个时代,门户时代、搜索/社交时代、大互联网时代,每一个时代都给中国互联网历史留下了深深的足迹,推动着中国互联网上不断的创新和发展。1.门户时代(Web1.0)网络是信息提供者,单向性的提供和单一性理解,此阶段最典型是门户网站,以百度为主的搜索引擎提高了用户获取信息的效......
  • requests Python中最好用的网络请求工具 基础速记+最佳实践
    简介requests模块是写python脚本使用频率最高的模块之一。很多人写python第一个使用的模块就是requests,因为它可以做网络爬虫。不仅写爬虫方便,在日常的开发中更是少不了requests的使用。如调用后端接口,上传文件,查询数据库等。本篇详细介绍requests的使用。requests是⽤Python......
  • 强化学习从基础到进阶-案例与实践[4.1]:深度Q网络-DQN项目实战CartPole-v0
    强化学习从基础到进阶-案例与实践[4.1]:深度Q网络-DQN项目实战CartPole-v01、定义算法相比于Qlearning,DQN本质上是为了适应更为复杂的环境,并且经过不断的改良迭代,到了NatureDQN(即VolodymyrMnih发表的Nature论文)这里才算是基本完善。DQN主要改动的点有三个:使用深度神经网络替......
  • 百度Amis+React低代码实践
    背景在项目中有集成低代码平台的想法,经过多方对比最后选择了amis,主要是需要通过amis进行页面配置,导出json供移动端和PC端进行渲染,所以接下来讲一下近两周研究amis的新的以及一些简单经验,供大家参考.什么是amisamis是一个低代码前端框架,它使用JSON配置来生成......
  • Java程序设计实践
    Java程序设计实践Java训练集7~12总结与心得训练集链接前言:训练集7~12主要巩固了面向对象基础的继承、多态、接口等内容,考察了面向对象进阶的相关知识点,如覆盖,常用的容器。题目的综合性较强,难度适中。目录:设计与分析踩坑心得改进建议总结设计与分析1.课程成绩统计......
  • 一些关于Research中代码能力的思考
    在Research中,代码能力有时候往往决定了复现的能力。一些优秀的idea并不会公开代码,所以你有相当出色的代码能力就可以很快的实现自己的想法。在之前的research经历中,我有接手他人工作的项目。research的代码和工业界代码无法比较,往往是杂乱无章,我承认这里面有着优秀的idea和新颖的......
  • 强化学习从基础到进阶-案例与实践[3]:表格型方法:Sarsa、Qlearning;蒙特卡洛策略、时序差
    强化学习从基础到进阶-案例与实践[3]:表格型方法:Sarsa、Qlearning;蒙特卡洛策略、时序差分等以及Qlearning项目实战策略最简单的表示是查找表(look-uptable),即表格型策略(tabularpolicy)。使用查找表的强化学习方法称为表格型方法(tabularmethod),如蒙特卡洛、Q学习和Sarsa。本章通过最......
  • ansible部署与实践
    自动化工具ansible部署和实践原创 对点 DevOps云技术栈 2023-06-1623:26 发表于广东收录于合集#ansible1个1介绍和部署1.1介绍ansible的功能ansible是一个基于Python开发的自动化运维工具,基于ssh协议实现远程管理,可以实现多种批量管理操作.批量系统配......