自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Dubbo集成测试工具

DubboUtil

2023-04-13 16:27:53 337

原创 分支合并自动化脚本

闲来无事,写了个自动化合并分支的脚本,可以实现各个分支的代码自动合并,有冲突的代码文件会自动展示出来,手动修改冲突后会自动提交和推送远程分支。

2023-04-09 07:49:35 367

原创 自动化批量更新脚本

进了新项目,需要对版本号进行批量更新,因此写了个自动化更新脚本,脚本内容如下。

2023-03-24 19:55:37 331

原创 记一次本地项目启动异常打成jar包启动正常问题跟踪和解决

在项目开发过程中,遇到了一个问题,项目打包后使用start.sh脚本启动没有问题,但是在本地运行main方法启动不了。

2023-03-24 11:17:28 186

原创 冒泡排序可视化

背景闲来无事,写了一个可在控制台可视化显示的冒泡排序过程的小程序,废话不多说,直接上代码代码import java.util.Random;public class Main7 { public static void main(String[] args) { int[] arr = generateArr(10, 10); for (int to = arr.length - 1; to > 0; to--) { prin

2021-06-13 16:20:29 556 2

原创 Jstat/Jps执行时报进程不存在问题解决

背景在项目上线后,我们通常都需要查看jvm的运行状况,但是使用jps或者jstat命令的时候有时候会发现报进程编号找不到的问题,如下:问题解决经过在网上一番查找,jps或者jstat等jdk自带的命令会使用到/tmp/hsperfdata_系统用户名/{系统用户名}/系统用户名/{java进程号}这个文件,但是进入到/tmp/hsperfdata_${系统用户名}目录下发现这个进程文件不存在,那么这个进程文件为什么没有生成呢?继续查找原因,发现tomcat启动的时候是使用systemctl命令启动

2021-05-21 10:18:08 608

原创 记一次虚拟机内存泄漏问题跟踪及解决

在最近的一次线上部署项目中,发现有一个部署的tomcat内存一直在增长,第一感觉就是内存泄漏了,然后各种查看虚拟机的运行状态,终于将问题解决了,下面记录一下我解决的方法和步骤java及tomcat版本使用jstat命令查看虚拟机内存的运行状况从图上我们发现,eden区一直在稳定的增长,增长到100M的时候就会发生YGC,S0,S0中的对象就行复制拷贝,YGC之后M中的值也在变化,说明有对象保存在常量池中。使用jmap查看哪个对象占用空间最多jmap -histo [进程ID] >

2021-05-21 10:14:40 274

原创 Apollo与Springboot集成

背景在项目开发中,我们经常会遇到这么一种问题,就是开发、测试、线上环境连接的数据库、redis等参数配置都是不一样的,当我们在开发环境把项目开发完成之后,就需要将代码放到测试或者线上环境,由于不同环境的参数是不一样的,我们还得将配置文件修改一遍,这样很麻烦,现在出现一个可以动态配置不同环境参数变量的工具,apollo,可以很方便的就解决了我们遇到的难题。Apollo是由携程框架部门研发的分布式配置中心,能够集中化管理不同环境、不同集群的配置,配置修改后能实时的推送到应用端,并且具备规范的权限、流程治理等

2021-05-20 15:24:55 184

原创 高性能队列--Disruptor

背景Disruptor是英国外汇交易公司LMAX开发的一个高性能队列。基于Disruptor开发的系统单线程可以支撑每秒600万的订单。那么,这种高性能的内存队列是如何实现的呢?JAVA内置的队列下面是CPU与缓存的示意图,查询效率是L1>L2>L3>主存下面是CPU访问不通层级缓存数据的时间概念缓存行概念cache是由多个cache line组成的,每个cache line 通常是64个字节,并且它有效地引用内存中的一块地址。cpu每次从主存中拉取数据时,都会将相邻的

2021-05-20 13:43:48 311 1

原创 canal源码解读

什么是canalcanal是一个开源中间件,由阿里集团开发,主要原理是伪装成MySQL slave,接收MySQL master的binlog日志,最终来实现跨MySQL数据库或者MySQL数据库与非MySQL数据库之间的数据的准实时同步功能。canal支持的源端 MySQL 版本: 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.xcanal架构图参考资料:https://github.com/alibaba/canal...

2021-05-20 13:43:38 745

原创 高阶架构 -- 数据同步之ABA问题

背景由于数据库的like %xxx% 对大文本检索效率很差,所以在实际开发过程中,遇到文本检索的应用场景,我们会考虑使用ElasticSearch这种专业的全文搜索和分析引擎来替换掉传统的数据库检索。使用ElasticSearch进行全文检索,数据从哪来?对,从数据库来,这样就涉及到了数据库与ES之间的数据同步的功能。数据同步方案那么,数据同步应该如何实现呢?传统的实现数据库到ES的数据同步实现方案有以下几种。第一种方案:数据双写顾名思义,就是写入数据库的同时,也写入到ES索引。但是这样会出现数

2021-05-20 13:43:28 614 1

原创 请求合并框架 -- HystrixCollapser

背景远程调用最常见的问题:通信消耗与连接数占用高并发场景下,因通信次数的增加,总的通信时间将会变得不那么理想因为对依赖服务的资源占用有限,将出现排队等待与响应延迟的问题Hystrix提供了HystrixCollapser来实现请求的合并,以减少通信消耗和线程数的占用HystrixCollapser 实现了在 HystrixCommand 之前放置一个合并处理器:将处于一个很短时间窗(默认10毫秒)内对同一依赖服务的多个请求进行整合并以批量方式发起请求的功能(服务提供方也需要提供相应的批量实

2021-05-20 13:43:15 410 1

原创 Kafka技术总结

控制台调用创建topic/usr/local/kafka/kafka_2.11-2.2.0/bin/kafka-topics.sh --bootstrap-server kafka:9092 --create --topic topic01 --partitions 2 --replication-factor 1创建控制台消费者/usr/local/kafka/kafka_2.11-2.2.0/bin/kafka-console-consumer.sh --bootstrap-server ka

2021-05-20 13:43:02 162

原创 Docker技术总结

Docker描述docker是开源的应用程序引擎,基于go语言开发容器是完全使用沙箱机制,容器开销极低docker就是容器化技术的代名词docker也具备一定虚拟化职能安装docker下载docker下载地址:https://docs.docker.com/engine/install/安装yum-utils安装包yum install -y yum-utils安装数据存储驱动包 yum install -y device-mapper-persistent-data lvm2

2021-05-20 13:42:51 129

原创 ES文档新增冲突问题

问题公司现在使用的ES版本是5.5,发现在生成索引文档的时候,会有新增文档冲突问题。比如同一个索引文档中的数据来自两个后台服务,当服务A查询到索引中没有文档1,同一时间服务B也查询到索引中没有文档1,于是两个服务都使用index的方式新增索引文档,导致最后的结果是:文档中要么保存着服务A中的所有字段数据,丢失了服务B中的所有字段数据;要么文档中保存着服务B中的所有字段数据,丢失了服务A中的字段数据。这种情况就导致了数据丢失的问题。解决方案使用版本控制,在插入的时候传入一个版本号为1的值,如果文档已

2021-05-20 13:42:34 828

原创 快速统计HBase表行数

背景对于其它数据库而言,统计一张表的行数是最基本的操作,但是对于HBase这种列式存储的数据库而言,使用不同方式统计表的行数效率差别巨大,本文将提供两种java客户端代码统计HBase表行数的方法方案一:scan + filter引入jar包<dependency> <groupId>com.aliyun.hbase</groupId> <artifactId>alihbase-client</artifactId>

2021-05-20 13:42:15 407

原创 Mysql安装

背景本次安装是在centos7上安装mysql-5.7.29下载安装包下载mysql 5.7wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar解压安装包解压安装包并安装tar -xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar安装新版mysql前,需将系统自带的mariadb-lib卸载(mariadb-libs-5.5.6

2020-12-25 10:31:28 81

原创 zookeeper安装

背景本次安装是在centos7上安装zookeeper3.6.2下载下载安装包,下载地址: https://zookeeper.apache.org/releases.html创建安装目录创建安装目录 mkdir /usr/local/zookeeper解压压缩包解压压缩文件到指定目录:tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz -C /usr/local/zookeeper/创建配置文件进入目录:/usr/local/zookeeper/apa

2020-12-25 10:21:28 86

原创 Kafka安装

背景本博客描述的是在centos7上安装kafka_2.11_2.2.0安装java安装java8以上,配置好环境变量修改主机名vi /etc/hostnamereboot修改/etc/hosts将主机名和ip追加上Ping一下主机名,看能否ping通关闭防火墙systemctl status firewalld.servicesystemctl stop firewalld.servicesystemctl disable firewalld.service安装zookeepe

2020-12-25 10:06:50 129

空空如也

空空如也

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

TA关注的人

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