记一次 Redisson 线上问题 → ERR unknown command 'WAIT' 的排查与分析
开心一刻 昨晚和一个朋友聊天 我:处对象吗,咱俩试试? 朋友:我有对象 我:我不信,有对象不公开? 朋友:不好公开,我当的小三 问题背景 程序在生产环境稳定的跑着 直到有一天,公司执行组件漏洞扫描,有漏洞的 jar 要进行升级修复 ...[2023/9/20]
MySQL高级10-InnoDB引擎存储架构
一、逻辑存储结构 表空间(Tablespace):一个mysql实例,及一个数据库实例,可以对应多个表空间(ibd文件),用于存储记录,索引等数据。 段(Segment):分为数据段(Leaf node segment)、索引段(Non-leaf node segmen...[2023/9/20]
Linux服务器使用Redis作为数据缓存,并用log4j2进行日志记录
前言 个人网站使用Vue作为前端,SpringBoot作为后端,MySQL作为数据库,但前端每次请求都会从MySQL数据库中读取数据,而MySQL数据库的数据是存储于服务器磁盘中,所以响应速度有一定影响。之前了解过一点Redis数据库,该数据库数据存储于内存中(也可以持久化于磁盘中),数据读...[2023/9/20]
MySQL 表分区使用实践
在使用 MySQL 8.0 表分区时,需要注意以下一些关键事项和最佳实践: 支持的存储引擎: MySQL 8.0 表分区仅支持一些特定的存储引擎,如 InnoDB 和 NDB(NDB 是 MySQL Cluster 存储引擎)。因此,在选择分区时,请确保你的表使用的是支持分区的存储引擎。 分区...[2023/9/20]
MySQL高级11-后台进程
一、前言 MySQL的服务实现通过后台多个线程、内存池、文件交互来实现对外服务的,不同线程实现不同的资源操作,各个线程相互协助,共同来完成数据库的服务。MySQL常用的后台线程概括如下,分为Master Thread,IO Thread,Purge Thread,Page Cleaner Th...[2023/9/20]
加密 K8s Secrets 的几种方案
前言 你可能已经听过很多遍这个不算秘密的秘密了--Kubernetes Secrets 不是加密的!Secret 的值是存储在 etcd 中的 base64 encoded(编码) 字符串。这意味着,任何可以访问你的集群的人,都可以轻松解码你的敏感数据。任何人?是的,几乎任何人都可以,尤其是在集...[2023/9/19]
图解Spark排序算子sortBy的核心源码
原创/朱季谦 一、案例说明 以前刚开始学习Spark的时候,在练习排序算子sortBy的时候,曾发现一个有趣的现象是,在使用排序算子sortBy后直接打印的话,发现打印的结果是乱序的,并没有出现完整排序。 例如,有一个包含多个(姓名,金额)结构的List数据,将这些数据按照金额降序排序时...[2023/9/19]
SpringBoot + Redis + Token 解决接口幂等性问题
前言 SpringBoot实现接口幂等性的方案有很多,其中最常用的一种就是 token + redis 方式来实现。 下面我就通过一个案例代码,帮大家理解这种实现逻辑。 原理 前端获取服务端getToken() -> 前端发起请求 -> header中带上token -...[2023/9/18]
记一次阿里云日志导致的服务宕机
导航 引言 火线告警,访问502 猜测: I/O频繁惹的祸 真相:FullGC突发高频导致程序崩溃 移除阿里云日志,稳了 结语 最后 参考 引言 技术人应该具备系统分析,并快速定位问题的能力。 资深技术人需要具备的核心竞争力有哪些? 系统分析,并快速定位问题的能力 快速地理解需求,转...[2023/9/18]
RocketMQ 消息重试与死信队列
RocketMQ 消息重试与死信队列 RocketMQ 前面系列文章如下: RocketMQ系列(一) 基本介绍 RocketMQ 系列(二) 环境搭建 RocketMQ 系列(三) 集成 SpringBoot RocketMQ 系列(四) 消息存储 RocketMQ 系列(五)高可用与负...[2023/9/18]
ES 2023新特性速解
ES 2023新特性速解 一、新增数组方法 操作数组的方法 Array.prototype.toSorted(compareFn) 返回一个新数组,其中元素按升序排序,而不改变原始数组。 Array.prototype.toReversed() 返回一个新数组,该数组的元素顺序被反转,但不...[2023/9/18]
SQL Server关于AlwaysOn的理解-读写分离的误区(一)
前言 很多人认为AlwaysOn在同步提交模式下数据是实时同步的,也就是说在主副本写入数据后可以在辅助副本立即查询到。因此期望实现一个彻底的读写分离策略,即所有的写语句在主副本上,所有的只读语句分离到辅助副本上。这是一个认知误区,本文通过原理和测试进行解释。 实现原理 从下图可以看到,在同...[2023/9/15]
Mysql慢查询优化
Mysql慢查询优化实战 效果:效率提升十倍左右 优化前 mysql> use test_old; Database changed mysql> set profiling = ''ON''; Query OK, 0 rows affected mysql> show...[2023/9/15]
MySQL系列1:MySQL体系架构
1. 背景 刚入行时,大部分Java工程师对MySQL停留在一个黑盒的认识,包括我自己。最近一段时间,这几年通过项目实践与不断反思,对MySQL的新认知提升到一个新层次,供大家分享。 下图是初始阶段的认识,就是对数据库建库、建表、建索引,然后执行增删改查操作。 2. 数据库驱动 大家都知...[2023/9/15]
后端常用的Linux命令大全,建议收藏
引言 作为一名后端工程师,使用终端是一种常见的做法,也是你应该学习的技能。许多命令和实用程序可以帮助你在使用 Linux 时更有效地完成任务。 基本 Linux 命令 如果你想使用 Linux 操作系统,学习常用的命令将会大有帮助。本篇将为后端工程师回顾一些基本到高级的 Linux 操作命令...[2023/9/15]
使用MySQL存储过程提高数据库效率和可维护性
MySQL 存储过程是一种强大的数据库功能,它允许你在数据库中存储和执行一组SQL语句,类似于编程中的函数。存储过程可以大幅提高数据库的性能、安全性和可维护性。本文将详细介绍MySQL存储过程的使用。 什么是MySQL存储过程? MySQL存储过程是一组预编译的SQL语句,它们以一个名称存储在...[2023/9/15]
MySQL系列2:InnoDB存储引擎
1. 架构回顾 上一篇我们讲解了MySQL的逻辑架构,重新回顾一下,用一张新的图来认识一下该架构。 整体架构分为service层与存储引擎层,请求交给连接池后,由后台线程处理,并将请求转发给SQL接口,随后交给解析器执行,如果解析器发现命中缓存,直接从缓存读数据返回,如果没有,依次往下执行...[2023/9/15]
【RocketMQ】【源码】延迟消息实现原理
RocketMQ设定了延迟级别可以让消息延迟消费,延迟消息会使用SCHEDULE_TOPIC_XXXX这个主题,每个延迟等级对应一个消息队列,并且与普通消息一样,会保存每个消息队列的消费进度(delayOffset.json中的offsetTable): public cla Me ageS...[2023/9/15]
MySQL 分表查询
分表是一种数据库分割技术,用于将大表拆分成多个小表,以提高数据库的性能和可管理性。在MySQL中,可以使用多种方法进行分表,例如基于范围、哈希或列表等。下面将详细介绍MySQL如何分表以及分表后如何进行数据查询。 基于哈希的分表 基于哈希的分表是一种将数据分散到多个子表中的数据库分表策略。这种...[2023/9/15]
五分钟k8s实战-使用Ingress
背景 前两章中我们将应用部署到了 k8s 中,同时不同的服务之间也可以通过 service 进行调用,现在还有一个步骤就是将我们的应用暴露到公网,并提供域名的访问。 这一步类似于我们以前配置 Nginx 和绑定域名,提供这个能力的服务在 k8s 中成为 Ingre 。 通过这个描述其实也...[2023/9/15]
Linux禁止root用户ssh登录
1、背景描述 出于安全考虑,需要禁止使用root用户通过 h远程登录Linux 禁用root用户远程登录后,需要提供一个权限用户用于 h远程登录 2、创建拥有sudo权限的用户 2.1、创建一个普通用户rain useradd命令用于创建一个用户, 选项 -m 表示创建用户...[2023/9/14]
MySQL-通过存储过程来添加和删除分区(List分区)
1.背景原因 当前MySQL不支持在添加和删除分区时,使用IF NOT EXISTS和IF EXISTS。所以在执行调度任务时,直接通过ADD PARTITION和DROP PARTITION不可避免会报错。本文通过创建存储过程来添加和删除分区,可以避免在分区存在时添加分区报错,或者分区不存在时...[2023/9/14]
MySQL面试题——隔离级别相关面试题
隔离级别相关面试题 MySQL事务隔离级别 未提交读——可以读到其他事务未提交的数据(最新的版本) 错误现象:脏读、不可重复读、幻读的现象 提交读(RC)——可以读到其他事务已提交的数据(最新已提交的版本) 错误现象:不可重复读、幻读现象 使用场景:希望看到最新的有效值 可重复读(R...[2023/9/14]
RocketMQ 系列(五)高可用与负载均衡
RocketMQ 系列(五)高可用与负载均衡 RocketMQ 前面系列文章如下: RocketMQ系列(一) 基本介绍 RocketMQ 系列(二) 环境搭建 RocketMQ 系列(三) 集成 SpringBoot RocketMQ 系列(四) 消息存储 上一篇讲了 RocketM...[2023/9/14]
提高 MySQL查询效率的方法
当涉及到提高MySQL查询效率时,以下是一些重要的策略和技巧,可以帮助你优化数据库性能。无论你是一个Web开发者、数据工程师还是系统管理员,这些方法都可以帮助你确保你的MySQL数据库运行得更快、更有效。 索引优化: 使用索引是提高查询性能的关键。确保在经常用于过滤和排序的列上创建索引。...[2023/9/13]
如何保持 SSH 会话不中断?
哈喽大家好,我是咸鱼 不知道小伙伴们有没有遇到过下面的情况: 使用终端(XShell、secureCRT 或 MobaXterm 等)登录 Linux 服务器之后如果有一段时间没有进行交互,SSH 会话就会断开 如果正在执行一些非后台命令,SSH 会话断开就可能会使得这些命令可能会被中...[2023/9/13]
SQL Server实例间同步登录用户
SQL Server实例间同步登录用户 问题痛点:由于AlwaysOn和数据库镜像无法同步数据库外实例对象,例如 登录用户、作业、链接服务器等,导致主库切换之后,应用连接不上数据库或者作业不存在导致每晚跑批任务漏跑等 目前来看,作业等其他实例对象的同步还比较难实现,比如作业分为很多步骤,而且作...[2023/9/13]
Redis从入门到放弃(12):pipeline管道技术
1、引言 在现代应用程序中,高性能和低延迟是至关重要的因素。而在处理大规模数据操作时,Redis作为一种快速、可靠的内存数据库,成为了许多开发人员的首选。 在Redis中,每个操作都需要与服务器进行往返通信,存在网络开销损耗,当有批量命令执行时,就会有较大的网络开销损耗。为了解决这个问题,Re...[2023/9/13]
返璞归真:命令行下逛园子,发布博客园 CLI 预览版 团队
一边在会员救园,一边我们在码不停蹄地加快园子的建设。 为了让大家体验命令行中逛园子的味道,今天发布一个小工具的预览版 —— 博客园命令行工具 cnb 。 该工具用 Rust 开发,代码开源在 github 上:https: github.com/cnblog cli ,帮助文档见 readm...[2023/9/13]
Shell脚本中文英文多语言国际化和命令行批处理(bash sh cmd bat)中定义函数的简单写法
目录命令行脚本参考 - bat命令行脚本参考 - bash值得学习的知识点1. 识别终端使用的语言2. 函数的编写3. 获取用户的输入4. bat文件老是乱码怎么办 有时候为了方便别人使用,我们会选择去编写各种各样的命令行脚本:给Windows用户编写.bat cmd批处理脚本,给macOS...[2023/9/13]
Java开发面试--Redis专区
1、 什么是Redis?它的主要特点是什么? 答: Redis是一个开源的、基于内存的高性能键值对存储系统。它主要用于缓存、数据存储和消息队列等场景。 高性能:Redis将数据存储在内存中,并采用单线程的方式处理请求,使得其读写速度非常快,能够达到10万+的读写操作每秒。 数据结构丰富...[2023/9/13]
一次性全讲透GaussDB(DWS)锁的问题
本文分享自华为云社区《Gau DB(DWS)锁问题全解》,作者: yd_211043076。 一、gau db有哪些锁 1、常规锁:常规锁主要用于业务访问数据库对象的加锁,保护并发操作的对象,保持数据一致性;常见的常规锁有表锁(relation)和行锁(tuple)。 表锁:当对表进行DDL...[2023/9/13]
【RocketMQ】消息的拉取总结
在上一讲中,介绍了消息的存储,生产者向Broker发送消息之后,数据会写入到CommitLog中,这一讲,就来看一下消费者是如何从Broker拉取消息的。 RocketMQ消息的消费以组为单位,有两种消费模式: 广播模式:同一个消息队列可以分配给组内的每个消费者,每条消息可以被组内的消费者进...[2023/9/10]
Excel单元格快速交换相邻位置内容
一、相邻两列内容交换(A1与B1交换) 1.首先选择A1单元格的边框位置,出现了向上下左右的十字标志 2.此时按住shift键,并且拖向B1单元格的右边,出现"工"汉字标志 3.松开鼠标,不松开shift键盘,完成A1与B1单元格的交换 二、相邻两行内容交换(A...[2023/9/10]
MongoDB下载和可视化工具NoSQL Manager for MongoDB 软件的下载,连接数据库
在官网下载MongoDB的版本为4.0.28,之前试了好几个高版本和低版本,都不行,最后,4.0.28版本好了。下载网页:https: www.mongodb.com/try/download/community 安装和配置环境变量的方法一搜就行...[2023/9/10]
NAT模式LVS负载均衡集群
NAT模式LVS负载均衡集群 负载调度器:内网 网关 ens33:192.168.1.200,外网 网关 ens36:12.0.0.10 Web节点服务器1:192.168.1.100 Web节点服务器2:192.168.1.101 NFS服务器:192.168.1.102 客户端:12.0...[2023/9/10]
redis
博客地址:https: www.cnblogs.com/zylyehuo/ 五大数据类型 参考链接:redis学习 string,字符串类型 hash,哈希类型,如同python的dict set,无序集合 zset,有序集合 list,双向队列,向左插入数据,向右插入数据,向左、右...[2023/9/10]
Redis的三大问题
一般我们对缓存读操作的时候有这么一个固定的套路: 如果我们的数据在缓存里边有,那么就直接取缓存的。 如果缓存里没有我们想要的数据,我们会先去查询数据库,然后将数据库查出来的数据写到缓存中。 最后将数据返回给请求 代码例子: 1 @Override 2 public R sel...[2023/9/10]
Linux虚拟机安装及下载
centos 7操作系统下载及安装步骤 (仅供参考) 下载: 1.打开如下网站:先下载镜像文件 ping:https: www.centos.org/download/ 2.进入到如下界面 3.然后到如下界面 4.点击下载 5.等待下载...[2023/9/10]
五分钟 k8s入门到实战--跨服务调用
背景 在做传统业务开发的时候,当我们的服务提供方有多个实例时,往往我们需要将对方的服务列表保存在本地,然后采用一定的算法进行调用;当服务提供方的列表变化时还得及时通知调用方。 student: url: - 192.168.1.1:8081 - 1...[2023/9/9]
安装CentOS7虚拟机
1、前期工作 下载CentOS7镜像:CentOS-7-x86_64-DVD-2009.iso 安装虚拟机工具:VirtualBox 2、新建虚拟机 2.1、设置新建虚拟机的名称、安装路径、类型及版本 注意:CentOS Linux 的发行版本是通过编译 Red Hat...[2023/9/9]
从软件工程师角度聊聊 Kubernetes
作为软件工程师,我们应该熟悉 K8s,尽管它有点像 DevOps,但它能让我们更好地了解幕后发生的事情,让我们与部署工作更密切相关,更有责任感。本文将从软件工程师的角度探讨 Kubernetes (K8s),我们将介绍其动机、原理和核心组件,助力于开发者们提升 Kubernetes 的专业知识水...[2023/9/9]
【后端面经-数据库】Redis数据结构和底层数据类型
目录1. Redis数据类型1.1 基本数据类型1. string2. hash3. list4. set5. sortset/Zset1.2 特殊数据类型1. bitmap2. hyperloglog3. GEO4. stream2. Redis底层数据类型2.1 简介2.2 动态字符串SD...[2023/9/9]
mysql 大表如何ddl 👑
大家好,我是蓝胖子,mysql对大表(千万级数据)的ddl语句,在生产上执行时一定要千万小心,一不小心就有可能造成业务阻塞,数据库io和cpu飙高的情况。今天我们就来看看如何针对大表执行ddl语句。 通过这篇文章,你能了解到下面的知识点, 传统ddl 和online ddl的区别 mys...[2023/9/6]
oracle导入导出某个schema数据
背景 公司之前部门拆分,但一些服务并没有拆分清楚。其中一个老服务,两个部门都在用,现在为了避免互相影响,决定克隆该服务。克隆就要克隆全套,当然也包括数据库,我们这个老服务,用的oracle,所以,就涉及到从旧的oracle中导出数据,然后再导入到另一套新的oracle实例中。 届时在线上肯定是...[2023/9/6]
ptp 时钟同步
转载请注明出处: PTP(Precision Time Protocol)的功能可以帮助实现网络中各个节点的时钟同步,以提供更精确的时间参考。 作用: 时钟同步:通过PTP协议,在网络中不同节点之间实现高精度的时钟同步,确保各设备具有一致的时间参考。 时间敏感应用:在需要高度时间...[2023/9/6]
win11安装ubuntu(by wsl2)
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https: github.com/zq2599/blog_demos 本机情况 省吃俭用入手了ThinkPad T14,打算装好Linux后作为开发机器使用,本文记录了安装过程,以便将来在新系统上用到 作为参考,机器...[2023/9/6]
纯分享:将MySql的建表DDL转为PostgreSql的DDL
背景 现在信创是搞得如火如荼,在这个浪潮下,数据库也是从之前熟悉的Mysql换到了某国产数据库。 该数据库我倒是想吐槽吐槽,它是基于Postgre 9.x的基础上改的,至于改了啥,我也没去详细了解,当初的数据库POC测试和后续的选型没太参与,但对于我一个开发人员的角度来说,它给我带来的不便主要...[2023/9/4]
图解Spark Graphx基于connectedComponents函数实现连通图底层原理
原创/朱季谦 第一次写这么长的graphx源码解读,还是比较晦涩,有较多不足之处,争取改进。 一、连通图说明 连通图是指图中的任意两个顶点之间都存在路径相连而组成的一个子图。 用一个图来说明,例如,下面这个叫graph的大图里,存在两个连通图。 左边是一个连接图,该子图里每个顶点都存...[2023/9/4]
CDC一键入湖:当 Apache Hudi DeltaStreamer 遇见 Serverless Spark
Apache Hudi的DeltaStreamer是一种以近实时方式摄取数据并写入Hudi表的工具类,它简化了流式数据入湖并存储为Hudi表的操作,自 0.10.0 版开始,Hudi又在DeltaStreamer的基础上增加了基于Debezium的CDC数据处理能力,这使得其可以直接将Debez...[2023/9/4]