首先声明,我们团队在使用solrcloud过程中踩了一些坑,同事(晓磊和首富)进行了总结,我列到我的博客上做记录用:

Q:为什么Solr里面的时间比数据库里面早8小时?

Solr默认采用的时区是UTC时区,而DB中用的则是CST时区,这两个时区本身就相差了8个小时。可以通过修改Solr启动配置SOLR_TIMEZONE="UTC+08:00"将时区设置为CST。注意:修改SOLR_TIMEZONE只在导入数据时起到自动转换时区的作用。即使修改了以上配置,Solr在展示数据时任然采用UTC时区,通过solrj交互时任然需要手动转换时区。

Q:Solr集群配置域名无法作用。

在搭建Solr集群时,不同机器上的核心具有不同的命名例如:

127.0.0.1:8983上有financeLog_shard1_replca1核

127.0.0.2:8983上有financeLog_shard1_replca2核

127.0.0.3:8983上有financeLog_shard1_replca3核

三个核共同组成了名为financeLog的集群。

如果为三台机器配置solr.nonobank.com域名,通过ngx来做负载均衡是不行的,因为在具体方位时url中需要指定相应的核名。如

解决方案,通过solrj提供的SolrCloudClient,通过Zookeeper地址进行访问。

Q:SolrClient连接Zookeeper超时问题

SolrClient首次连接需要较长的时间可以通过setZkConnectTimeout()方法设置一个较长的超时时间。

Q:关于Solr中文分词问题

Solr对中文的原生支持较差,只能单个字分词,如“真开心”只能分词成:真、开、心,这样在搜索“心开”时该条同样会被搜索出来,这不是我们所想要的。

解决方案:使用ICUTokenizer替代solr默认的Tokenizer,ICUTokenizer对中文有较好的分词,可以将“真开心”只能分词成:真、开心、真开心。

Q:如何记录较慢的查询

在Solr启动配置中添加1000将超过1s的查询记录。

Q:Solr日志量太大

可以将CONSOLE的日志级别由INFO调整为WARN;或者控制日志文件的大小,如:

log4j.appender.CONSOLE=org.apache.log4j.RollingFileAppender

log4j.appender.CONSOLE.MaxFileSize=1000MB

log4j.appender.CONSOLE.MaxBackupIndex=10

保证最多记录10G的日志文件。

Q:修改Solr配置是否需要重启服务器

Solr的配置文件分为两部分,一部分留在本地,一部分留在Zookeeper,留在Zookeeper的配置只需先下载,再修改,最后再上传回Zookeeper即可,无需重启。留在本地的配置修改后需要重启当前服务器才会生效。

使用bin目录下的zkcli.sh脚本完成配置文件的上传下载。

Q:Solr集群无法恢复

Solr集群恢复在最坏的情况下需要2倍当前core的存储空间,所以有时会出现磁盘空间不够的情况。

Q:通过solr自带的delta-import增量导入会丢数据

Solr本身会记录最后一次执行增量导入的时间,设为time1,下一次通过执行 SELECT * FROM finance_log WHERE update_time >= time1 找出增量数据。

丢失数据的根本原因在于DB中一条记录的update_time并不是该条记录实际提交的时间(即出现在DB中的时间)。

例如, DB在8:00:00执行一条update语句更新一条数据data后,data的update_time会被设置为8:00:00,而对应事务实际提交(执行commit)的时间可能是 8:00:20。假设Solr在8:00:10时执行增量导入,执行后会记录最后一次更新时间为8:00:10,此时由于data的更新状态尚未被提交,其对应Solr数据不会被更新。下一次执行增量导入时通过SELECT * FROM finance_log WHERE update_time >= 8:00:10找出增量的数据时并不包含data,即data被丢失了。

性能方面

solr上线后我们发现了几个性能方面的问题

Q: Solr在多核情况下只能使用一个CPU,如下图所示,一共有8个核,永远只有一个核在工作

分析:有可能和我们的VM配置有关,我们换成多CPU单核的情况下(8个CPU),CPU使用率上去了

Q:Solr GC 吞吐量低,如下图所示,gc的吞吐量只有85%

分析: 初步怀疑是young heap设置了太小

解决方案:使用G1GC,增大了Xmn后吞吐量提升很明显 (85%-> 98%)

Q:Out of Memory

分析:观察log发现有很多OOM的错误,通过分析一台solr的JVM Heap,发现solr dump中的FieldCache占了大约5G(不能被GC),fieldCache这个配置在solrcloud不能控制,是底层的lucene来控制,它是用来做sorting 和faceting的,也就是说我们业务中会在solr中进行大批量数据的排序(比如拿最大值是时候)。

解决方案:优化业务方每一次取排序数据的量

tmux使用中出现的问题和解决方式

常用操作: tmux ls 看当前都有哪些sessiontmux new -s my1 创建窗口,名为my1ctrl+B,D 退出窗口 (这个就是同时按ctrl和B,然后松开后再按D键)tmux at ...

mysql中limit与in不能同时使用的解决方式.

mysql中limit与in不能同时使用的解决方式. 分类: MySQL2011-10-31 13:53 1277人阅读 评论(0) 收藏 举报 mysqlsubquery MySQL5.1中子查询是 ...

Android加载图片OOM错误解决方式

前几天做项目的时候,甲方要求是PAD (SAMSUNG P600 10.1寸 2560*1600)的PAD上显示高分辨率的大图片. SQLITE採用BOLD方式存储图片,这个存取过程就不说了哈,网上一 ...

Android内存优化-内存泄漏的几个场景以及解决方式

转自:http://blog.csdn.net/a910626/article/details/50849760 一.什么是内存泄漏 在Java程序中,如果一个对象没有利用价值了,正常情况下gc是会对 ...

Linux下Chrome浏览器不支持WebGL的解决方式。

今天使用Chrome浏览器,总是报这样一个错误: Uncaught TypeError: Cannot read property 'canvas' of null. 细看之下是无法获取WebGL上下 ...

get传递中文产生乱码的解决方式汇总

1 最基本的乱码问题. 这个乱码问题是最简单的乱码问题.一般新会出现.就是页面编码不一致导致的乱码.

Ubuntu安装出现左上角光标一直闪解决方式

Ubuntu安装出现左上角光标一直闪解决方式: 01下载ubunu http://cn.ubuntu.com/download/ 02.软碟通 http://pan.baidu.com/s/1qY8O ...

https 页面中引入 http 资源的解决方式

相对协议 应用场景 浏览器默认是不允许在 https 里面引用 http 资源的,一般都会弹出提示框. 用户确认后才会继续加载,用户体验非常差. 而且如果在一个 https 页面里动态的引入 http ...

随机推荐

UP Board USB无线网卡一贴通

前言 原创文章,转载引用务必注明链接,水平有限,欢迎指正. 本文环境:ubilinux 3.0 kernel 4.4.0 本文使用Markdown写成,为获得更好的阅读体验和正常的图片.链接,请访问我 ...

手机端页面自适应解决方案-rem布局

rem布局 布局前插入原生js即可 (function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationch ...

composer安装yii2问题总结

今天周六,在家安装yii2的advanced版本, 过程有些坎坷, 不过最后总算安装好了. 总结一下, 主要遇到下面两个问题: 1, 下载速度慢, 主要原因是网络问题 下载yii2时, 模板(除了ve ...

ActiveMQ学习(三)——MQ的通讯模式

1) 点对点通讯:点对点方式是最为传统和常见的通讯方式,它支持一对一.一对多.多对多.多对一等多种配置方式,支持树状.网状等多种拓扑结构. 2) 多点广播:MQ适用于不同类型的应用.其中重要的,也是正 ...

UI:tomcat(说话小程序)、相框动画、UISgmentcontrol、UISwitch

UISegmentedControl 分段控件 //1. UISegmentedControl 分段控件 (就是一个一个的按钮) //分段显示的标题是以一个数组存储的 NSArray * titles ...

EasyTouch和NGUI的使用心得

今天来写一写Unity3D中两个比较常用插件:EasyTouch和NGUI的学习心得.我用的版本分别是EasyTouch 3.1.1和NGUI 3.6.0,下面也是对这两个版本的学习心得. 1. Ea ...

linux-CentOS初学terminal命令(3)rm、chmod、mkdir、who、w、id、systemctl、

PS 1:windows不允许出现字母相同,但是大小写不同的文件名,因为在windows下会将它们认作是同名. 但是linux允许出现字母相同,大小写不同的文件名. ps 2:prompt 提示 1. ...

solrcloud mysql_solrcloud使用中遇到的问题及解决方式相关推荐

  1. solrcloud使用中遇到的问题及解决方式

    首先声明,我们团队在使用solrcloud过程中踩了一些坑,同事(晓磊和首富)进行了总结,我列到我的博客上做记录用: Q:为什么Solr里面的时间比数据库里面早8小时? Solr默认采用的时区是UTC ...

  2. 关于python的环境配置和编辑器Geany的使用中遇见的问题及解决方法

    Geany 使用中遇见的问题及解决方法 一,相关配置信息 1,我的相关信息 win10 - 64位 Geany 1.36版 python 3.8版 2,Geany,Python的安装,直接在浏览器搜索 ...

  3. html5官网中遇到的问题,html5的input的required使用中遇到的问题及解决方法

    form提交时隐藏input发生的错误 问题描述 在form表单提交的时候,有些input标签被隐藏,表单验证过程中会出现An invalid form control with name=" ...

  4. Android加载图片OOM错误解决方式

    前几天做项目的时候,甲方要求是PAD (SAMSUNG P600 10.1寸 2560*1600)的PAD上显示高分辨率的大图片. SQLITE採用BOLD方式存储图片,这个存取过程就不说了哈,网上一 ...

  5. js long类型精度丢失_后端Long类型传到前端精度丢失的正确解决方式

    原因:前端js对Long类型支持的精度不够,导致后端使用的Long传到前端丢失精度,比如现在分布式id生成算法"雪花算法"在使用中就会出现问题. 解决方式: 1.后端的Long类型 ...

  6. JAVA Web项目中所出现错误及解决方式合集(不断更新中)

    JAVA Web项目中所出现错误及解决方式合集 前言 一.几个或许会用到的软件下载官网 二.Eclipse的[preferences]下没有[sever]选项 三.Tomcat的安装路径找不到 四.T ...

  7. sqlserver导入excel的电话号码(身份证)变为科学计数解决方式

    如果excel中有一列存的是手机号码或者身份证号码,那么导入到sql中时,会把手机或者身份证当作数字格式对待,因而会以科学记数法的形式存在sqlserver表中,解决方式,先将excel文件另存为文本 ...

  8. 服务器自动post,jquery ajax $.post自动变GET的解决方式(for CI)

    环境:CI 3.x + windows 2008 + phpstudy + jquery 1.7.2 + apache 以往一直用lnmp,这次用windows+apache,遇到了一些问题,记录下来 ...

  9. redis的分布式解决方式--codis (转)

    codis是豌豆荚开源的分布式server.眼下处于稳定阶段. 原文地址:https://github.com/wandoulabs/codis/blob/master/doc/tutorial_zh ...

最新文章

  1. Django model.py表单设置默认值允许为空
  2. IT项目管理总结:第十二章 项目采购管理
  3. 第49讲:实战上手,Scrapy-Redis 分布式实现
  4. spring boot访问templates目录下的html静态页面
  5. pandas切割字符串并保存为新列
  6. oracle 序列_Oracle好记性不如烂笔头序列及日期时间的插入
  7. 点击场景中的物件无法定位到Hierarchy
  8. 如何将本地窗口上方地址栏隐藏_Firefox火狐浏览器将提供导出密码至本地的功能...
  9. 服务器安全配置常用软件
  10. 大学学习路线规划建议贴
  11. java rgb565转rgb888_RGB565 转RGB888的循环补偿(zz)
  12. 【MacBook】激活有个步骤要输面的问题:Enter the passcode you use to unlock the MacBook ***.
  13. 爬虫(二) parse、各类请求和伪装UA
  14. sd卡烧写linux内核,uboot从SD卡烧写内核和文件系统
  15. 基于hi3531、ffmpeg、x264的h264压缩
  16. 09-word不显示段落标记(去掉回车符号)取消拼写错误
  17. 用excel来构建柯布-道格拉斯Cobb-Douglas生产函数的可视化
  18. time秒和年月日时分秒的转化
  19. MTK平台创建Vendor方法-v1.4
  20. 学术会议 Rebuttal 模板资料留存

热门文章

  1. 基于MATLAB计算MIMO信道容量(附完整代码与分析)
  2. Phoenix 启动报错: Error: ERROR 726 (43M10): Inconsistent namespace mapping properties. Cannot initiate
  3. 【云原生--Kubernetes】Pod重启策略
  4. python 暂停后等待按任意键继续,实现python版本的按任意键继续/退出
  5. 基于SSM+mysql的Web人事HR系统实现,Java实现的OA考勤管理系统
  6. SRCNN-基于深度学习的图像超分入门
  7. 李宏毅《机器学习》国语课程(2022)来了!附Slides和视频!
  8. 让你宝贝从小知道真正的富贵到底是什么?
  9. matlab电阻阻器的符号,电阻器电路图形符号
  10. Python在生物学领域的简单应用——处理DNA序列