上一页 1 2 3 4 5 6 7 ··· 16 下一页
摘要: 性能优化理解 性能问题的复杂性增加了我们大家的学习难度,但这并不能成为我们进阶路上的“拦路虎”。 在我看来,大多数人对性能问题“投降”,原因可能只有两个。 1、一个是你没找到有效的方法学原理,一听到“系统”、“底层”这些词就发怵,觉得东西太难,自己一定学不会,自然也就无法深入学下去,从而不能建立起性 阅读全文
posted @ 2020-07-29 23:12 星火燎原智勇 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 对一个数组按照快速排序方式排序: public class Solution { public int[] sortArray(int[] nums) { int len = nums.length; quickSort(nums, 0, len - 1); return nums; } priva 阅读全文
posted @ 2020-06-28 17:58 星火燎原智勇 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 不分配大内存给 Elasticsearch,事实上 jvm 在内存 < 32G 的时候会采用一个:内存对象指针压缩技术。 需要明白:不一定是 32GB,一般 linux 系统上都是介于 (31, 32),所以为了安全起见我们统一都可以设置为 31GB。 在 java 中,所有的对象都分配在堆上,然后 阅读全文
posted @ 2020-06-28 16:22 星火燎原智勇 阅读(1138) 评论(0) 推荐(0) 编辑
摘要: 1、为什么需要 3 次握手 目的:为了防止 已失效的连接请求报文段 突然又传送到了服务端,因而产生错误。主要防止资源的浪费。 额外补充:TCP作为一种可靠传输控制协议,其核心思想:既要保证数据可靠传输,又要提高传输的效率,而用三次恰恰可以满足以上两方面的需求!两次无法保证数据可靠,四次及以上无法保证 阅读全文
posted @ 2020-06-28 14:40 星火燎原智勇 阅读(1154) 评论(0) 推荐(0) 编辑
摘要: 1、后端服务 php 为什么迁移到 java? 网上流传已久的 “世界上最好的语言是 php”,说实话,php 基本上什么都能做,每个领域都能找到一些库。但是在性能上确实有一定的问题。 1、性能及格的服务端 性能上,传统有 C++ 和 Java,现代有 Go 和 Node 还有 Rust,php 虽 阅读全文
posted @ 2020-06-28 12:30 星火燎原智勇 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 前言 搜索其实是一个很复杂的场景,且如何将搜索从 0 构建到 1 其实也蛮有挑战的,尤其要保证构建的整个闭环架构合理、服务稳定、性能高效,这是需要下功夫思考和实践才能想清楚的。 分层 数据源层 索引层 es 构建和调优 搜索业务层 搜索微服务架构 搜索必备配套服务 搜索体系监控和报警 详解 1、数据 阅读全文
posted @ 2020-06-27 23:16 星火燎原智勇 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 1、分词源码升级一段时间后异常 主要特点:其中几个数据节点 CPU 负载飙升,线程池阻塞 线上升级完分词后,线下测试与压测都没有什么问题,统一大规模上线一段时间后频繁的出现数据节点所在的服务器节点 CPU 飚的非常高,查看日志只看到: java.lang.OutOfMemoryError: unab 阅读全文
posted @ 2020-06-27 22:45 星火燎原智勇 阅读(2247) 评论(0) 推荐(0) 编辑
摘要: 背景 这里介绍的优化是基于 ik 分词源码的优化。首先,我们知道,ik 分词默认有两种分词模式,分别为:ik_max_word 和 ik_smart 这里针对这两种分词方式分别存在的问题有: ik_max_word :最细粒度分词方式 分的太细了,召回率确实很高,但是会导致召回的内容存在语义问题。例 阅读全文
posted @ 2020-06-26 23:50 星火燎原智勇 阅读(2754) 评论(1) 推荐(2) 编辑
摘要: 1、避免深分页操作 es是一个搜索引擎,所以如果用这个搜索引擎对大量的数据进行搜索,并且返回搜索结果中排在最前面的少数结果,是非常合适的。 类似于后台下载功能,如果要做成类似数据库的东西,每次都进行大批量的查询,是很不合适的。如果真的要做大批量结果的查询,记得考虑用scroll api。 2、避免业 阅读全文
posted @ 2020-06-26 18:07 星火燎原智勇 阅读(651) 评论(0) 推荐(0) 编辑
摘要: 1、尽量少的字段 elasticsearch 的搜索引擎严重依赖于底层的 filesystem cache,你如果给 filesystem cache 更多的内存,尽量让内存可以容纳所有的 indx segment file 索引数据文件,那么你搜索的时候就基本都是走内存的,性能会非常高。 比如说, 阅读全文
posted @ 2020-06-26 00:13 星火燎原智勇 阅读(1370) 评论(0) 推荐(0) 编辑
摘要: 1、使用 bulk 批量写入 你如果要往es里面灌入数据的话,那么根据你的业务场景来,如果你的业务场景可以支持让你将一批数据聚合起来,一次性写入es,那么就尽量采用bulk的方式,每次批量写个几千条这样子。 bulk批量写入的性能比你一条一条写入大量的 document 的性能要好很多。但是如果要知 阅读全文
posted @ 2020-06-25 23:35 星火燎原智勇 阅读(1252) 评论(0) 推荐(0) 编辑
摘要: 【申明】这里启动 elasticsearch 用户名为:elastic 1、设置启动 elasticsearch 用户所持有的文件句柄数 vim /etc/security/limits.conf # 在文件末尾增加以下内容 elastic soft memlock unlimited elasti 阅读全文
posted @ 2020-06-25 23:03 星火燎原智勇 阅读(989) 评论(0) 推荐(0) 编辑
摘要: 没有多余的废话,直接上方案吧! 方案一: 最笨的方案即:for * for,对应的时间复杂度为:O(n*n) 每个搜索词命中的网页是非常多的,O(n*n) 的复杂度是明显不能接受的。倒排索引是在创建之初可以进行排序预处理,问题转化成两个有序的list求交集,就方便多了。 画外音:比较笨的方法。 方案 阅读全文
posted @ 2020-06-24 17:35 星火燎原智勇 阅读(1291) 评论(1) 推荐(0) 编辑
摘要: 1、为什么需要倒排索引 倒排索引,也是索引。 索引,初衷都是为了快速检索到你要的数据。 每种数据库都有自己要解决的问题(或者说擅长的领域),对应的就有自己的数据结构,而不同的使用场景和数据结构,需要用不同的索引,才能起到最大化加快查询的目的。 对 Mysql 来说,是 B+ 树,对 Elastics 阅读全文
posted @ 2020-06-24 11:40 星火燎原智勇 阅读(1819) 评论(0) 推荐(0) 编辑
摘要: CAP C(Consistency):强一致性 A(Availability):可用性 P(Parition tolerance):分区容错性 这三个基本需求,最多只能同时满足其中的两项,在分布式环境下因为P是必须的,因此往往选择就在 CP 或者 AP 中。 各种组合的场景 CA - 这个比较特殊, 阅读全文
posted @ 2020-06-24 11:04 星火燎原智勇 阅读(787) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 16 下一页