LeeQingShui's Blog

  • 标签

  • 分类

  • 归档

  • 关于

(三)Spring Security 鉴权原理

发表于 2021-10-25 | 更新于 2022-10-22 | 分类于 信息安全
本文字数: 2k | 阅读时长 ≈ 3 分钟
文章完善中,暂不对外开放
阅读全文 »

消息队列之 RabbitMQ

发表于 2021-08-23 | 更新于 2023-01-10 | 分类于 MQ
本文字数: 22k | 阅读时长 ≈ 31 分钟

简介

  RabbitMQ 是采用 Erlang 语言实现 AMQP (Advanced Message Queuing Protocol ,高级消息队列协议)的消息中间件, 它最初起源于金融系统, 用于在分布式系统中存储转发消息。

阅读全文 »

(六)ElasticSearch 集群分片未分配问题探究及解决方案

发表于 2021-05-20 | 更新于 2024-01-23 | 分类于 全文检索
本文字数: 4.6k | 阅读时长 ≈ 7 分钟

前言

  正常来讲,Elasticsearch 的集群状态status属性应该显示为green,但在 ES 的使用过程中,我们经常会遇到这么一个问题——集群状态显示为yellow或red。

阅读全文 »

(运维篇)MySQL CRON 定时全量备份

发表于 2021-02-13 | 更新于 2022-08-20 | 分类于 关系型数据库
本文字数: 263 | 阅读时长 ≈ 1 分钟

前言

  在互联网中,数据就是金钱,为了防止出现数据丢失无法找回的意外,通常都会对数据库做定期备份动作。
  那么,MySQL 如何实现此目的呢?

  下面,我们就使用 MySQL 自带的 mysqldump 命令结合 Linux 的 crontab 工具来定时全量备份数据!

阅读全文 »

Java 异步编程实战学习笔记

发表于 2020-12-19 | 更新于 2023-01-12 | 分类于 Java
本文字数: 2.2k | 阅读时长 ≈ 3 分钟

序言

  通过对此书的学习,能够让我们获取以下问题的答案:

  • 为什么使用异步编程?
  • 在 Java 中如何编写异步编程的代码?
  • 在 Java 中如何编写对异步编程的结果进行特殊处理的代码?
阅读全文 »

(五)ElasticSearch 分片深入研究

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

序言

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

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

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

阅读全文 »

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

发表于 2020-10-30 | 更新于 2026-09-01 | 分类于 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 | 更新于 2026-09-02 | 分类于 Java 高并发
本文字数: 6.8k | 阅读时长 ≈ 10 分钟

序言

  针对并发场景,Java 提供了众多的并发工具类供我们使用,可以按照具体的业务场景选择合适的工具类:

工具类 核心解决的问题 典型业务场景 关键词
CountDownLatch 等多个任务完成继续执行 主线程等待多个子任务完成 等完成
CyclicBarrier 多个线程互相等待,到齐后一起继续 多线程分阶段计算 等大家
Semaphore 控制同时访问资源的线程数量 限流、连接池、库存资源控制 限并发
Lock / Condition 更灵活的线程同步与等待 队列、生产者消费者 锁
Atomic 等 无锁线程安全地更新变量 计数器、状态更新 原子操作
CompletableFuture 异步任务编排 并行查询、任务组合、异步回调 异步编排
BlockingQueue 线程安全的生产消费队列 任务队列、线程池内部队列 生产消费
阅读全文 »

Nginx 总结

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

序言

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

阅读全文 »
1…345…16
LeeQingShui

LeeQingShui

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