LeeQingShui's Blog

  • 标签

  • 分类

  • 归档

  • 关于

(五)ElasticSearch 分片深入研究

发表于 2020-11-10 | 更新于 2024-01-29 | 分类于 全文检索
本文字数: 4.2k | 阅读时长 ≈ 6 分钟

序言

  分片是 ES 中的一个重要概念,围绕着分片,我们会有很多疑问:

  • 文档是什么?
  • 分片是什么?
  • 文档与分片关系如何?
  • 分片的作用?
  • 文档存储在哪个分片?
  • 主副分片间如何交互?

  本文将通过一些说明来解答这些疑问。

阅读全文 »

Prometheus + Grafana 打造实时全链路监控系统

发表于 2020-10-30 | 更新于 2024-02-08 | 分类于 Ops
本文字数: 12k | 阅读时长 ≈ 18 分钟

序言

  人非圣贤,孰能无过?
  对程序而言,同样如此,即使一个产品经历了一系列的开发测试工作,在此过程中又遇到并解决了成百上千个 Bug,最终交付给客户并正式上线了,后期还是可能会出现一些问题。
  这些问题的产生,可能是客户进行了不符合逻辑的异常操作引起的,也可能是程序代码原先判断逻辑本就存在问题,还有可能是某个应用或服务器资源(CPU、内存、磁盘、网络)出现异常了。但不管怎样,是问题就应当给客户解决,不然客户不满意了,公司的企业形象降低了,若后期还有合作,说不定就泡汤了呢!合作泡汤了,说不定整个业务部门就给你优化掉,程序员就没班上了呢!!!
  作为程序员,为了防止被优化的意外发生,还是老老实实的帮客户解决问题吧!
  那么,怎么去解决问题呢?
  作为一个程序员,接到一个产品问题,想的应该不是解决,而是分析问题的类型,待分析出问题的类型后,才去解决问题。
  那么,问题大概又可以分为哪几种类型呢?
  笔者认为,其大致可以分为以下三种:

  • ① 理解问题:做的需求不符合客户的预期效果,客户不买帐,那么,互相扯皮或者重新做~
  • ② 代码问题:程序存在 Bug,这又进一步可以分为三种:
    • 前端 Bug:前端程序问题,页面设计不合理或与后端对接不正确
    • 后端 Bug:后端程有问题,逻辑错误或重大 Bug 导致应用的宕机,那么让后端同学修复
    • 运维 Bug:服务器配置问题,让实施同学(通常被后端同学替代…)解决
  • ③ 服务器问题:CPU、内存、磁盘,网络资源引起的问题

  现在,我们得到了一个结论——问题的存在形式是多种多样的,因此我们遇到问题不能局限在某一块思考(后端开发不能碰到问题就想的是看日志,得明确是后端问题才去看日志),因为不同的问题解决方案也不一样。

  由于只有在大致分析出问题的类型后,才能尝试去解决问题:

  • 针对问题 ①,我们有时可以甩锅给产品同学——你的需求不对呀,我肯定做错呀(叉腰:理直气壮),当然有时也需要自己接锅(自己理解不到位)
  • 针对问题 ②,通常需要看线上日志来定位问题的产生原因,尝试复现 Bug
  • 针对问题 ③,需要去看服务器某段运行时间里资源情况(注意哦,是观测服务器在某段运行时间里资源情况,因为线上出问题了,肯定是之前某个时间点出的问题,我们仅仅观察出错后的资源占比情况不一定能找出问题所在)

  那么,又该如何去观察服务器在某段运行时间里的资源情况是怎样的呢?
  这个时候,就需要布置一套监控系统来辅助我们程序员观察分析了。

阅读全文 »

(四)ElasticSearch 集群

发表于 2020-10-22 | 更新于 2022-12-08 | 分类于 全文检索
本文字数: 5.5k | 阅读时长 ≈ 8 分钟

集群

  一个运行中的 Elasticsearch 实例称为一个节点,而集群是由一个或者多个拥有相同 cluster.name 配置的节点组成, 它们共同承担数据和负载的压力。

阅读全文 »

Java 高并发之工具类

发表于 2020-09-05 | 更新于 2023-05-30 | 分类于 Java 高并发
本文字数: 2.6k | 阅读时长 ≈ 4 分钟

序言

  

阅读全文 »

Nginx 总结

发表于 2020-08-06 | 更新于 2025-12-04 | 分类于 Ops
本文字数: 16k | 阅读时长 ≈ 23 分钟

序言

  作为一名后端工程师,Nginx 的学习必不可少。

阅读全文 »

初识 Shell

发表于 2020-08-01 | 更新于 2025-04-10 | 分类于 Ops
本文字数: 6.4k | 阅读时长 ≈ 9 分钟

序言

  在 Linux 中,我们经常需要输入一些长命令。
  比如,我们现在需要以后台模式指定内存大小运行一个 jar 文件,并且还将运行日志输出到nohup.out文件中,那么需要输入以下命令达到该效果:

1
nohup java -jar -Xms256m -Xmx256m xxx.jar &

  除此之外,我们还想看看输出后的日志信息,那么又需要执行以下命令:

1
tailf nohup.out

  这两行命令能否一起执行呢?
  并且,我们知道:代码开发完成后,一般会在测试服务器上进行测试。既然需要测试,那么测试出 Bug 是再正常不过的一件事情了。
  出了 Bug 那就修呗,修好后就需要重新打 jar 包并部署到服务器,那么就又需要重新启动该应用!
  若每次部署都重复输入同样的长命令,无疑会非常耗费时间,那么有没有一种方法来保存该命令以方便后续快速运行呢?
  对于以上问题的答案,均可通过 Shell 脚本解决,并且 Shell 比这更强大!

阅读全文 »

初识 Aerospike

发表于 2020-07-02 | 更新于 2022-10-22 | 分类于 NoSQL
本文字数: 5.2k | 阅读时长 ≈ 7 分钟

简介

  Aerospike 是一个高性能、高可扩展、高可用、高复杂性的分布式的 Key-Value 的 NoSQL 数据库(注意不是缓存哦,其定位就是数据库),可基于行进行随机存取,支持多种部署模式(纯内存、内存 + SSD、纯 SSD)。

  Aerospike 的体系结构主要具有三个目标:

  • 为 Web 规模的应用程序创建一个灵活的可扩展平台
  • 提供传统数据库期望的鲁棒性和可靠性(如 ACID)
  • 以最少的人工参与提供运营效率
阅读全文 »

消息队列之 Kafka

发表于 2020-06-16 | 更新于 2025-01-16 | 分类于 MQ
本文字数: 27k | 阅读时长 ≈ 39 分钟

什么是 Kafka?

  Kafka 用于构建实时数据管道和流媒体应用程序。
  Kafka 具有横向可扩展性、容错性、高速性等特点,目前已有成千上万家公司在使用它。

阅读全文 »

(三)ElasticSearch 数据纵览——聚合

发表于 2020-06-16 | 更新于 2022-12-17 | 分类于 全文检索
本文字数: 10k | 阅读时长 ≈ 14 分钟

什么是聚合?

  通过 ES 聚合,我们将得到一个数据的概览。

  若我们需要的是纵览和分析全部的数据而不是寻找单个文档,比如说想要知道:

  • 世界上有多少手机厂商?
  • 每月新增的手机厂商有多少?
  • 按照手机厂商来划分,手机的平均定价是多少?

  通过聚合,可以搜寻到以上问题的答案,并且聚合也可以回答更加细微的问题,比如说:

  • 最受欢迎的手机厂商是哪家?
  • 目前性能最高的手机是哪家厂商的?是哪一款?
阅读全文 »

初识 Elastic Job

发表于 2020-06-03 | 更新于 2022-11-22 | 分类于 分布式
本文字数: 2.3k | 阅读时长 ≈ 3 分钟

序言

  我们都听过愚公移山的故事,对个人来讲,移走一座山需要耗费的时间无疑是十分漫长的。因此,愚公找亲朋好友帮忙一起挖山,最终感动了天帝,天帝叫部下施展了法力将太行、王屋山移走。
  愚公不愚,知道将任务拆解,分而治之。
  那么,在分布式任务中,我么又何须使用传统的定时任务框架去完整的执行一个任务呢?
  现在,让我们使用起 Elastic Job 吧!

阅读全文 »

1…345…15
LeeQingShui

LeeQingShui

147 日志
16 分类
67 标签
RSS
© 2018 – 2025 LeeQingShui | 站点总字数: 864k
赣 ICP 备 2022002212 号
本站已运行
本站总访问量 次 | 本站访客 人次
0%