自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

my的博客

爱生活 做自己 爱知识 爱你

  • 博客(77)
  • 收藏
  • 关注

原创 java 快速排序

public static void main(String[] args) { int[] a = {12, 20, 5, 16, 15, 15, 1, 30, 45, 23, 9}; int i = 0; int j = a.length - 1; kuaiPai(a, i, j); Arrays.stream(a).forEach(x -> S...

2019-06-05 17:40:58 136

原创 二分法 (折半查找) 以及其变种

public static void main(String[] args){ int[] arr2 = {1, 2, 3, 7, 8, 8, 8, 8, 9, 10, 18}; int endEqualByHzz = findEndLessEqualByHzz(arr2, 11); System.out.println(endEqualByHzz);}//...

2019-05-30 16:14:19 263

原创 springboot springdata jpa 整合redis作为缓存使用

pom:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency> 在你的应用启动类上边 添加如下注解...

2018-08-30 20:49:52 5837 1

原创 CI/CD详解 & Jenkins 介绍与实战

本文大纲概览:CI/CD 概念与工作流程 详解Jenkins安装、启动、初始化配置使用Jenkins部署github上的 xzll-im 微服务项目freestyle方式push代码后自动部署pipeline方式部署pipeline + push 方式本文实操过程中,相关工具版本信息如下:centos版本: CentOS Linux release 7.9.200...

2024-07-16 19:44:30 1013

原创 常用第三方类库总结

1. 概述 在项目开发过程中,一般我们都会用到很多类库,比如 spring,guava,hutool,apache io/commons等等等等相关一堆类库。本文就来介绍一下常见的类库以及使用方式,以作备忘和学习。1.1 为什么学习类库?1.1.1 提高效率 这是使用类库最重要的原因!使用别人写好的类库可以很大程度上提高开发效率,在Java开发中我们自己写的代码(这...

2024-07-09 12:27:22 851

原创 docker 重要且常用命令大全

本文将总结一些常见的重要的docker命令,以作备忘。后续如果有新的比较常用重要的也会更新进来。欢迎补充。docker服务管理首先我们要解释一下:systemctl和docker命令的不同 systemctl:是许多 Linux 发行版中默认的初始化系统和服务管理器。使用 systemctl 可以管理系统服务,包括启动、停止、重启和查看服务状态,通常需要超级用户权限。可使用他来管理...

2024-07-05 16:34:56 896

原创 给我的 IM 系统加上监控两件套:【Prometheus + Grafana】

监控是一个系统必不可少的组成部分,实时,准确的监控,将会大大有助于我们排查问题。而当今微服务系统的话有一个监控组合很火那就是 Prometheus + Grafana,嘿你别说 这俩兄弟配合的相当完美,Prometheus负责数据采集,Grafana负责可视化展示,各就其位,各司其职一起来完成 监控 这个活儿。紧接着我们简单对这两工具做个介绍~1、Prometheus 与 Grafana ...

2024-07-05 01:33:32 923

原创 maven卸载旧版本3.1.0 并安装新版本3.8.8

最近准备docker运行一下 rocketmq-exporter, 以便实现使用 grafana + prometheus监控RocketMQ的运行详情,但是无奈 rocketmq-exporter这玩意没有提供官方镜像,找了社区和个人的镜像 都不好使,后来干脆自己根据官方代码,构建个镜像吧。构建就这么几步很简单:但当执行 mvn clean install 时 报错了,信息如下:[I...

2024-07-04 13:03:20 500

原创 使用Dockerfile构建镜像 & 使用docker-compose 一键部署IM项目

本文讲解:使用Dockerfile构建镜像 & 使用docker-compose 一键部署IM项目。im项目地址:xzll-im ,欢迎志同道合的开发者 一起 维护,学习,欢迎star ????1、Dockerfile编写与镜像构建&容器运行Dockerfile 是构建镜像的基础 ,首先创建两个空文件夹,用于存放im-connect和im-business的jar:之后...

2024-06-28 23:12:41 869

原创 Elasticsearch初识与 index+mapping+document 基操

前言在21年多少有使用过es 当时是在艺术赛道的一个教育公司,大概流程就是 将mysql中的各种课程数据通过logstash汇总到es 然后提供rest接口出去。由于在职时间较短(很不幸赶上了教育双减),所以对es的了解其实仅仅是些皮毛,当然elk在我的任职经历中基本上每家都有使用,不得不说elk真的是查询日志的好工具。不管是elk 还是当年的课程数据亦或者其他使用到es的场景,我们可以发现他...

2024-06-26 22:03:20 1004

原创 IM系统开发、部署等过程中 遇到的问题记录

本文是对个人系统:xzll-im 的一篇记录文章,记录我搭建(搭建估计不会记录了现在已经过了这一阶段)、开发、部署im系统以及周边中间件过程中遇到的问题以及解决方式。遇到的问题太多了,时间充足就尽可能记录上,不充足或者问题比较小就在代码中注释记录一下。这文章只给我自己看。以便多年后 回首曾经走过的路????。仅此而已????。此文将不断更新(只要是此系统相关并且我有时间并且我个人觉得有必要)。由于之前...

2024-06-25 22:18:20 908

原创 tomcat 改为 jetty后 文件上传报错:Missing content for multipart request 的解决记录

1、前言jetty版本:9.4.52.v20230823springboot版本:2.6.14以前的项目大多是用的 apache tomcat ,但是最近新开发的一个项目,由于这个项目功能不是那么重,所以使用了比tomcat更轻量级的jetty作为 servelt容器,关于这俩的区别,可以看看这篇文章:apache-tomcat-vs-eclipse-jetty ,或者网上其他的博文...

2024-05-15 19:42:58 404

原创 用python 下载&替换markdown文章中的图床url为本机图片路径, 从此再也不怕图床链接失效!...

1、问题&困扰下边这个问题困扰我有段时间了:因为文章是在掘金,知乎这类技术网站发表的,在发表时文章中的图片都是上传到了掘金 or 知乎的图床上了,不管是用的哪家哪个大厂的图床,我总是担心哪一天网站崩掉或者其他什么不可控的事情发生,那我博客中的所有的图床文件(大部分都是图片)那岂不是都访问不到了? 像这样:这就尴尬了,我一般写文章很重视图解,没有图片的文章那没法串联起来,所以我总...

2024-04-26 13:46:17 363

原创 使用Java Agent 插桩技术:实现 DB中敏感字段自动加解密

在上篇文章中由于字数限制,没有将本文内容加进去,所以这里单独写一篇关于Java Agnet实际应用的文章。如果你看完了上篇文章:关于Java Agent的使用、工作原理、及hotspot源码 解析,那么此篇的应用文章就相当轻松了 当然你需要使用过 mybatis plus 这个框架(因为我们本文是对这个框架的代码进行插桩) 不过我想干Java的这个(mybatis plus)应该是基本功,对这...

2024-04-25 18:05:06 488

原创 关于Java Agent的使用、工作原理、及hotspot源码 解析

前言之前写了一篇关于链路追踪的文章: 自实现分布式链路追踪 方案&实践 ,期间提到过可以使用ttl(全称:transmittable-thread-local) 去解决线程间链路id丢失的问题,而其中无侵入的使用方式:agent 插桩技术深深的吸引了我,谁曾想一入 agent 深似海,我差点出不来了????????????。说明:本文很长,长到超出了掘金编辑器的限制字符数 10万,所以我在最后边只...

2024-04-25 15:28:40 565

原创 Javassist使用教程【译】

说明由于后续的 agent 相关文章要用到 Javassist,为了不和agent掺和所以这里把Javassist单独拿出来。本文是对Javassist官网指南的翻译! ,原文:https://www.javassist.org/tutorial/tutorial.html,作者:Shigeru Chiba (抛开民族ch来说,日本的这个教授开发的这个Javassist还是不错的毕竟没有A...

2024-03-08 18:03:29 494

原创 RocketMQ安装记录

本文记录RocketMQ在centos7上的安装过程,没有技术的探讨,仅仅是安装记录,以作备忘。首先看下我的安装环境:```[root@localhost /usr/local/softhzz]# lsbrelease -aLSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desk...

2023-12-29 18:06:15 426

原创 nginx 一把梭!(超详细讲解+实操)

前言:nginx作为当今火爆的、高性能的http及反向代理服务,不管前端还是后端,都需要全面去了解,学习,实操。一句话:搞懂nginx如何使用以及工作逻辑对于程序员来说是必不可少的!我们看看本文的大纲 先了解一下本文都讲了哪些东西,大纲如下:1. nginx介绍2. nginx安装3. nginx目录一览3. nginx.conf文件解读3. location路由匹配规则3. ...

2023-11-28 11:37:56 1200

原创 关于brew更新后 mysql启动失败的解决记录

最近安装了些东西,期间可能有版本问题所以升级了 brew ,升级不要紧,要紧的是升级后,突然发现mysql连不上了,md这忍不了,我一个后端离了数据库没法活!所以开始尝试修复。首先我启动mysql(命令:mysql server start)时候,提示如下:然后我查看错误日志,mysql提示我以下内容:dyld: Library not loaded: /usr/local/opt/i...

2023-11-10 13:38:20 373

原创 Centos7安装mysql8.0.35(亲测)

今天在centos7上安装了mysql8,特此记录以作备忘。说明:- 我安装的mysql版本:8.0.35- centos版本:7- 我的虚拟机没安装过mysql,如果之前安装过mysql记得卸载干净 - 卸载步骤: - rpm -qa|grep mysql (搜索mysql)比如返回了: mysql80-community-release-el7-11.noar...

2023-11-10 12:11:12 1538

原创 Centos7安装Elasticsearch和Kibana 记录(无坑版)

说明:本文命令全部标红elasticsearch使用版本是7.17.5ik分词器也是7.17.5虚拟机配置:2核4gcentos版本:71、获取elasticsearch的安装包下载:wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.5-linux-x86_64.ta...

2023-10-31 12:30:48 457

原创 Mac使用VirtualBox安装Centos7及配置桥接模式(亲测)

一直梦想有个舒服的Linux环境,可以部署各种中间件或者我本地的项目,以及学习熟悉各种命令,我是2019年的intel mac笔记本,本来搞了个Docker Desktop里边已经装了redis mysql centos7 nginx zk nacos rabbitmq,本来想docker内部搭建个centos 然后再那上边安装各种软件,但是总感觉怪怪的,一层套一层的很难受。而且在docker上的...

2023-10-28 12:11:22 1186

原创 centos中安装nginx

本文记录nginx安装过程,以作备忘(仅此而已)。安装nginx所需的几个包:yum -y install wget pcre pcre-devel zlib zlib-devel openssl openssl-develwget方式下载nginx的包:wget http://nginx.org/download/nginx-1.23.0.tar.gz下载后查看下:...

2023-10-24 13:55:15 199

原创 docker安装centos7进入后不显示当前路径的解决记录

本文记录一个小问题(仅此而已):最近我的mac使用docker安装了centos,但是每次(使用 docker exec -it f925c71d28ef48e7b66ed93555e30e6c272727eecd5285639b6a66c5231a99b2 /bin/sh)进入到centos时候,都不显示当前路径,只有一个 sh-4.2,如下:想知道自己在哪个路径下 只能pwd或者...

2023-10-23 15:34:12 167 1

原创 关于AQS等待/唤醒机制:ConditionObject的原理分析

highlight: androidstudio在上一篇文章 认真的并发基石:AQS源码分析与图解 中,我们留了个小尾巴,没对ConditionObject进行源码分析,这一篇我们补上。说明: 本篇不再啰嗦AQS相关知识,因为我们上一篇都讲过了,稍微介绍下ConditionObject,写个小案例然后直入主题再来个图解就完活。注意: 条件等待队列(一定要和 等待队列 区分开来),...

2023-10-20 18:01:46 169

原创 认真的并发基石:AQS源码分析与图解

theme: juejinhighlight: androidstudio学习并发,理解并发,掌握并发是Java程序员迈不过去的一道坎。现实业务中很多情况下都会涉及到并发操作,知己知彼百战不殆。学好并发知识非常且极其有必要。这篇文章我们就来分析下并发知识中 非常核心 的一个知识点:AbstractQueuedSynchronizer 简称(AQS)。在开篇前,我们先看下本文的结构:...

2023-10-19 12:18:39 93

原创 Mysql锁理论 & 加锁实战

前言:由于在上篇文章记一次线上间隙锁引发的死锁问题 中,讲到了间隙锁,Next-key lock和记录锁,所以我觉得有必要搞一个锁的文章,于是有了这篇长文(本文比较长,需要一定耐心)。提起锁我想很多开发同学都不陌生,不管是工作还是面试中,锁都是一个绕不开的知识点。今天我们不讨论Java的锁,而只专注Mysql的锁。本文将会 理论+实践 来分析演示下mysql都有哪些锁 ,以及在不同场景...

2023-09-27 18:02:49 121 1

原创 记一次线上间隙锁引发的死锁问题

highlight: androidstudiotheme: juejin最近线上钉钉群告警 mysql.jdbc.exception异常,这种db层面的异常一般都需要重视起来,于是抓紧排查和bugfix,没想到居然是一个死锁,于是有了这篇文章。前提说明:mysql版本: 8.0.27隔离级别: REPEATABLE-READ事务自动提交:是死锁检测机制:开启数据库...

2023-09-13 18:19:56 143

原创 幂等 那点事儿

前言作为一个开发者,在实现业务功能时, 要尽可能考虑周全,这样才可以尽量减少bug,减少技术债的产生。在编码时,有些坑是未知的, 有些坑是已知的。对于未知的,那只能是踩到了再说,对于已知的,那就要做到 不去踩坑。要做到 ---> 不踩坑,首先我们要知道坑是什么。 下面我简单列一下平时开发常见的:并发时 数据安全性涉及同步数据时 数据一致性操作db(多个写操作)时 可能部分成...

2023-09-06 20:45:16 55

原创 记一次CMS GC耗时46.6秒的 排查与解决过程

今天 早上7.16分左右 ,有个服务发生了紧急告警,很多接口超时,出于 学习+好奇 的心态,我开始了排查之旅~~~ 【排查到最后发现,并不是这些超时的接口都有问题,而是 其中某一个接口影响了整个服务,只要是这个服务上的接口,都有可能超时、异常、 等不正常现象】一、看下现象:钉钉群告警:下图为 告警机器JVM 监控面板:1.1、 观察监控面板看到的现象,如下:...

2023-07-18 18:57:30 64

原创 接口耗时2000多秒!我人麻了!

接口耗时2000多秒!我人麻了!前几天早上,有个push服务不断报警,报了很多次,每次都得运维同学重启服务来维持,因为这个是我负责的,所以我顿时紧张了起来,匆忙来到公司,早饭也不吃了,赶紧排查!1、 现象与排查步骤:下面是下午时候几次告警的截图:来看下图。。。。接口超时 2000多秒。。。。我的心碎了!!!人也麻了!!!脑瓜子嗡嗡的。。。另外还总是报p...

2023-06-08 20:13:16 325

原创 MongoDB分片简介

1、MongoDB分片ps: 1. 由于最近遇到了一些问题,使我不得不对mongodb的分片机制做一个总结。后续将会写一篇mongodb 聚合查询优化的文章。2. 本文是对mongodb分片知识点的梳理以及一些个人经验之谈,其中分片理论知识大部分来源于官方资料:https://www.mongodb.com/docs/v4.2/core/ranged-sharding/1.1、分片概念...

2023-03-21 20:50:46 845

原创 自实现分布式链路追踪 方案&实践

# 前言:排查问题是程序员的基本能力也是必须要会的,在开发环境,我们可以debug,但是一旦到了服务器上,就很难debug了,最有效的方式就是通过日志揪出bug,而一次请求的日志如果没有一个唯一的链路标识(我们下边称他为traceId),单靠程序员人工分析的话,费时费力,尤其是请求量高频的接口,更是雪上加霜,排查问题效率大打折扣,作为程序员,低效的方式是忍不了的!!!本文我将用一次实战演练,来...

2023-03-02 13:41:01 317

原创 万字长文分析synchroized

1、前言起因 虽然网络上不乏各种大佬,讲解synchronized的文章更是数不胜数,但是看一千遍不如做一遍,我希望将知识转化成自己的 (因此有了本文)。目的: 本文尝试通俗易懂的讲清楚 synchronized ,我们将从线程安全讲起,引出synchronize的使用,然后对synchronized的字节码进行分析,然后是讲解Objectmonitor,再到各种锁(轻量...

2023-02-24 19:08:05 116

原创 对象组成与Java内存模型JMM分析

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 3 天,点击查看活动详情ps: 本来是想把这篇文章放到 synchroized(下一篇) 文章中的,但是思来想去还是分开吧,否则很唐突,另外也显得文章主次不分(synchroized主要讲的 使用&原理分析&锁)。 本文分两部分: 第一部分:我们理论+实践看看对象都由哪些部分组成,以及各个...

2023-02-21 19:36:46 138

原创 Integer缓存那点小事儿

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情 Integer 面试中我们经常被问到,另外工作中我们也经常遇到Integer的比较,所以今天来快速总结下这个知识点。1. Integer i=200; 会发生什么?首先我们假设声明了两个局部变量:javaInteger i=200;Integer j=100;事实上,Ja...

2023-02-10 23:55:44 247

原创 一文搞懂Redis分布式锁

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 天,点击查看活动详情前言: 日常开发中,我们经常会使用到锁,以保证某一段逻辑是线程安全的,同步的。 但是当今一般都是同一个服务部署到多台机器上,在这种情况下,如果用java中的锁,将只能保证在某台机器上的线程安全,而不能保证真正意义上的线程安全,那么此时分布式锁就上场了。下边我们将以层层递进的方式,看看怎...

2023-02-06 21:36:12 214

原创 【网络编程系列_01 】Linux内核启动与收包分析

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情前言:1. 最近在学习netty,由于源码中有很多和网络连接,读取数据等这些和网络编程密切相关的东西(因为netty本身定位就是网络编程框架)。 我自认为如果不去一探究竟,可能会对以后或者当前的学习造成障碍,同时我也深知,对底层实现理解的越深,上层的框架分析起来其实就很简单了,有种 “透视”...

2022-10-16 14:47:16 521

原创 Mysql递归查询父/子级

今天备忘个小技巧。准备工作准备建表ddlsql create table hr_organization ( id bigint unsigned auto_increment comment '主键' primary key, name varchar(255) ...

2022-09-08 13:29:13 1941

原创 记一次惊险的线上事故

我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第3篇文章,点击查看活动详情一次惊险的线上事故记录起因:最近上线了一版关于敏感内容过滤的一个需求,半夜上线时,一切正常,but....在第二天中午时段,突然报警并有线上反馈相关功能有问题,查elk日志显示相关接口耗时很大,并且有部分连接都超时了(包括redis mysql 以及部分调用外部的http请求也是,系统响应巨慢,平常几毫秒...

2022-09-07 12:53:25 101

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除