自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

陈旭猿的博客

轻轻的写,慢慢的学

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

原创 使用pprof分析golang内存泄露问题

pprof解决线上golang程序内存泄露问题

2023-03-07 16:20:39 1786

原创 Flink集群(standalone)安装

三台机器,搭建Flink(standalone)集群

2023-02-17 09:51:01 303

原创 ClickHouse集群(三副本)安装

三台机器,clickhouse三副本安装

2023-02-16 18:10:22 190

原创 Docker Kafka集群安装

三台机器,使用docker创建kafka集群

2023-02-16 16:30:41 130

原创 Docker Zookeeper集群安装

三台机器,使用docker安装zookeeper集群

2023-02-16 16:27:29 113

原创 Docker Redis集群安装

三台机器,docker安装redis集群

2023-02-16 16:21:27 44

原创 linux批量操作某一类型文件

【代码】linux批量操作某一类型文件。

2022-09-06 13:51:44 127

原创 解决git revert后再次merge代码丢失问题

问题场景公司使用gitlab作为代码管理工具,开发人员新功能开发结束时(开发分支:feature-member),合并代码需要提交mr(pr)给相关负责人,由负责人将代码合并到master。此时产品说暂时不上线此版本,和下一个版本一起发布,为了保证master分支代码的准确性,我们使用git revert将本次mr撤销。然后等下个版本开发完成后,提交了mr,发现变动的文件只有revert之后的变动,第一次mr的文件改动都没有了(git revert后再次merge,git默认会丢弃这段代码)。解决方案

2022-04-20 15:39:49 3346

原创 nginx中斜杠(/)详解

不知大家日常在nginx配置时,是不是会对是否加斜杠充满疑惑?配置location、proxy_pass时,加“/”与不加“/”的区别,今天我们通过实操去验证下。talk is cheap, show me the code!!!通过nginx代理访问地址:http://127.0.0.1/v1/pt/apply/pagelocation、proxy_pass都不加斜杠 location /v1 { proxy_pass http://127.0.0.1:8899;} 实.

2021-10-13 08:30:54 8312 7

原创 C++初识

hellworld打印"hello world"#include <iostream>using namespace std;int main(){ cout << "hello world" << endl; return 0;}注释作用:在代码中加一些说明和解释,方便自己或其他程序员理解和阅读代码单行注释:// 我被注释了多行注释:/* 我被注释了 */变量作用:给一段制定的内存空间起名,方便操作这段内存语法:数据类型 变

2021-08-08 09:22:43 79

原创 centos7.x安装docker

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-07-19 08:42:27 87

原创 redis命令行执行lua脚本

大家都知道:在Redis中执行的每条命令都能保证其原子性,但是如何保证多条原生命令执行的原子性呢?这时候Redis为这样的用户场景提供了 lua 脚本支持,用户可以向服务器发送 lua 脚本来执行自定义动作,获取脚本的响应数据。Redis 服务器会单线程原子性执行 lua 脚本,保证 lua 脚本在处理的过程中不会被任意其它请求打断。 常用命令 1.1 EVAL script numkeys key [key ...] arg [arg ...] numkeys 是key的个...

2021-04-07 11:21:59 683

原创 ribbon负载均衡之轮询算法

最近在看spring-cloud相关模块源码,刚好看到了ribbon负载均衡的各种策略实现,今天我们看下轮询算法是如何实现的。Talk is cheap. Show me the code.public class RoundRobinTest { private static AtomicInteger nextServerCyclicCounter = new AtomicInteger(0); private static int incrementAndGetModulo(

2021-03-12 10:25:17 410

原创 k8s集群搭建(kubeadm)

kubeadm 是官方社区推出的一个用于快速部署 kubernetes 集群的工具,这个工具能通过两条指令完成一个 kubernetes 集群的部署: 创建一个Master节点 kubeadm init 将Node节点加入到当前集群中 $ kubeadm join <Master 节点的IP和端口>环境准备: 服务器三台(虚拟机,192.168.228.10/11/12,2C/2G,centos7.5)系统配置:关闭防火墙 # 临时关闭防火墙systemct...

2021-03-02 07:57:21 466 1

原创 arthas反编译线上服务器应用包

相信大家在工作中可能会遇到这个问题:有个bug你修复了,在测试环境测试通过,但是部署到生产环境,bug还是原来的bug,然后你就开始怀疑人生了。怀疑自己的代码还有bug、怀疑线上的数据问题、怀疑。。。。。。其实如果大家对自己的代码质量有信心,你就可以直接找下运维,是不是部署的问题(部署包拿错了、压根没替换部署包、替换了没重启等)。这时候想要验证自己的猜想,直接使用arthas反编译看下相关代码是不是最新的就可以了。下面划重点,如果在线上反编译看代码呢?# 下载arthascurl -O htt

2021-03-01 14:15:32 702

原创 mac使用VMware Fusion安装centos

环境准备macbook pro (16 GB 2133 MHz LPDDR3 / 2.6 GHz Intel Core i7) VMvare Fusion 11.1.0 (https://www.vmware.com/cn.html) CentOS 7.5 (https://mirrors.aliyun.com/centos-vault)安装VMware Fusion略安装CentOS新建虚拟机 选择镜像 配置选择 选择系统 网络配置 设置root密码、等待安装、最后重启以.

2021-02-28 21:58:25 491

原创 arthas监控方法的入参出参以及耗时

今天客服人员反馈,线上环境用户收到不到绑定会员的验证码(阿里云短信服务),我脑海中的第一反应是:“操,阿里云账户余额是不是又没钱了”。为什么会这么想呢?因为之前都发生过好几次这样的事情了。再仔细想想,“我前几天不是刚买了短信包吗?应该不会没钱了”。然后我熟练的打开了日志监控平台,看到了让我无法淡定的日志(见下图):在看下发送短信的代码,简直让我崩溃,这日志打印和不打印有什么区别吗?我就想看下发送短信的结果,咋这么难?(之前开发人员的杰作):public static SendSmsRespo.

2021-02-23 20:21:30 4106

原创 利用binlog恢复生产环境误操作的数据

什么是binlogbinlog是记录所有数据库表结构变更(例如CREATE、ALTER、DROP TABLE…)以及表数据修改(INSERT、UPDATE、DELETE…)的二进制日志。切记binlog中是不会记录select、show等对数据库数据库没有产生变更操作的操作的。binlog的作用数据复制 在MySQL主从架构中,从库的数据如何保持和主库的数据一致?其实就是利用的binlog,其实在实际的开发中,也有场景使用binlog来同步复制数据,比如将MySQL中的数据同步到ES中等;

2021-02-07 21:40:29 225

原创 JavaAgent原理及实践

Java Agent是什么?java agent本质上可以理解为一个jar包插件,这个jar包通过JVMTI(JVM Tool Interface)完成加载,最终借助JPLISAgent(Java Programming Language Instrumentation Services Agent)完成对目标代码的修改。-javaagent是java命令的一个参数,应用启动是我们可以利用这个参数javaagent指定一个jar包,去实现我们想要它做的一些事情。Java Agent能做什么?可以

2021-01-14 10:45:41 5167 2

原创 分布式事务seata之AT模式原理分析及实战

seata是干什么的?Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。本文主要介绍seata中AT模式的原理以及使用方式。seata中关键角色TC (Transaction Coordinator) - 事务协调者维护全局和分支事务的状态,驱动全局事务提交或回滚。TM (Transaction Manager) - 事务管理器定义全局事务的

2020-12-03 13:23:51 1204

原创 git tag常用方法

使用场景可以在上线某个版本时,打个tag标签,方便以后版本回溯,追踪每个版本修改的记录。使用方法新建标签 删除标签 查看tag历史 推送标签至远程仓库 git tag -a tag_name

2020-11-17 16:40:33 192

原创 插入排序有点强

定义一个有序数组,插入数据后,仍然要保证有序,我们该怎么做?其实很简单,我们只需要遍历数组,找到数据应该插入的位置将其插入即可。排序过程将数组中的数据分为两个区间,已排序区间和未排序区间。初始已排序区间只有一个元素,就是数组的第一个元素。插入算法的核心思想是取未排序区间中的元素,在已排序区间中找到合适的插入位置将其插入,并保证已排序区间数据一直有序。重复这个过程,直到未排序区间中元素为空,排序结束。图解时间复杂度如果要排序的数据已经是有序的,我们并不需要搬移任何数据。如果我们从尾

2020-11-05 22:04:48 101

原创 冒泡排序知多少

定义冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就让它俩互换。一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序工作。排序过程 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2. 对每一对相邻元素作同样的操作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3. 针对所有的元素重复以上的步骤,除了最后一个。 ...

2020-11-03 22:44:33 480 3

原创 nacos伪集群安装部署

Nacos的单节点模式(standalone),配置的数据是默认存储到内嵌的数据库derby中。如果我们要搭建集群的话,数据需要共享,此时内嵌数据库无法满足,需要将Nacos对接Mysql进行数据存储。同时因为有多个节点,我们需要可以使用nginx进行负载均衡,代理多个节点,如下图:我在这里演示如何搭建伪集群,生产环境部署类似,只需要将ip改为每台服务器的ip即可,同时端口也可以都使用相同的。新建集群安装目录mkdir nacos_cluster下载nacos安装包cd n.

2020-11-01 19:07:27 928

原创 CentOS7安装部署redis5

下载压缩包cd /usr/localwget http://download.redis.io/releases/redis-5.0.8.tar.gz解压压缩包tar -xzvf redis-5.0.8.tar.gz安装gcc依赖yum -y install gcc 安装redis# 解压tar -zxvf redis-5.0.8.tar.gz # 重命名mv redis-5.0.8 redis# 进入rediscd redis# 编译redismake

2020-10-18 21:27:35 100

原创 go get命令详解

go get [-d] [-t] [-u] [-v] [-insecure] [build flags] [packages]

2020-06-03 10:03:24 13977

原创 使用golang进行慢查询告警,邮件通知相关人员

之前项目中,生产环境经常因为慢查询导致数据库CPU告警,导致服务不可用,为了让开发人员注意到sql中慢查询,笔者使用使用golang开发了如下慢查询告警功能

2020-05-14 22:21:12 979

原创 centos7一键部署fastdfs

受人之托,写了个一键部署fastdfs的脚本,并配置好通过nginx访问资源。环境资源:centos-7、nginx-1.15.4、fastdfs-最新版大家可以根据自身需要更换版本,同时也可以更换安装包的镜像地址(有的资源下载比较慢),加快部署速度。#!/bin/bash#关闭防火墙systemctl stop firewalld.service#安装编译环境yum i...

2020-02-27 13:39:16 1747 1

原创 应用重启脚本

工作中,不管是开发还是运维都避免不了经常升级部署应用,如果没有集成CI/CD系统,每次升级都经历如下步骤:1. 查找进程号2. kill进程3. 启动应用4. 查看启动日志为了方便,抽空写了一个重启脚本,具代码如下:```#!/bin/bashusage(){ echo "Usage: sh restart.sh [start|stop|restart]" exit ...

2020-02-27 13:22:12 676

空空如也

空空如也

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

TA关注的人

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