自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【定位java应用最耗cpu的线程和代码】

定位java应用最耗cpu的线程和代码

2022-02-08 19:01:03 639 4

原创 docker安装minio

1.拉取镜像docker pull minio/minio2.创建目录mkdir -p /data/minio/configmkdir -p /data/minio/data3.指定控制台端口启动docker run -p 9000:9000 -p 9001:9001 --name minio -d --restart=always -e "MINIO_ACCESS_KEY=admin" -e "MINIO_SECRET_KEY=12345678" -v /data/minio/data:/

2021-11-19 15:08:41 1311

原创 kafka工作中常用命令

以下是kafka工作中常用命令行总结:使用方法:进入kafka目录直接运行以下命令即可。启动zookeeperbin/zookeeper-server-start.sh config/zookeeper.properties &停止zookeeper(kafka自带脚本有问题,需要修改)bin/zookeeper-server-stop.shps -ef|grep zookeeperkill -9 pid启动kafka服务bin/kafka-server-star

2021-09-15 15:46:30 303

原创 CentOS7 使用自动脚本安装和使用docker

在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS 系统上可以使用这套脚本安装:1、使用 sudo 或 root 权限登录 Centos2.下载脚本并保存到get-docker.sh 文件中sudo curl -fsSL get.docker.com -o get-docker.sh3.启动脚本并设置使用阿里云镜像sudo sh get-docker.sh --mirror Aliyun执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 D

2021-09-14 10:27:34 307

原创 Arthas相关文档

git地址:https://gitee.com/arthas/arthas插件地址:https://github.com/WangJi92/arthas-idea-plugin文档地址:https://arthas.aliyun.com/doc/index.html

2021-06-17 11:14:51 192

原创 JAVA远程调试功能

JAVA 支持调试功能,本身提供了一个简单的调试工具JDB,支持设置断点及线程级的调试同时,不同的JVM通过接口的协议联系,本地的Java文件在远程JVM建立联系和通信。一. 基本使用:服务端配置:1.服务器端开启调试模式,启动时增加JVM启动参数,以支持远程调试nohup java -Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=5000 -Xmx500m -jar [jar包名称] &2.开放远程调试端

2021-06-03 20:12:11 1668 2

原创 MySQL 事务

事务得特性(ACID):一般来说,事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。

2021-05-18 16:18:32 106

原创 JDK1.7中HashMap源码

JDK1.7中HahsMap源码:数组+链表 头插法/* * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */package jav

2021-04-09 10:18:34 166

原创 Kubernetes安装使用教程

本文参照和概念补充kubernetes中文社区文档:http://docs.kubernetes.org.cn/kubernetes官方文档:https://kubernetes.io/zh/docs/kubernetes官方集群实践:https://www.kubernetes.org.cn/3096.htmlKubernetes(K8s)是Google在2014年发布的一个开源项目。据说Google的数据中心里运行着10多亿个容器,而且Google十年多前就开始使用容器技术。最初,Google开

2021-03-23 17:57:14 582

原创 JAVA实现快速查找一个单链表的中间位置

最近面试被问到的一个场景问题:如何快速查找到一个单链表的中间位置?package com.pers.guofucheng.demo;import java.util.LinkedList;import java.util.List;/** * 题目:如何快速查找到一个单链表的中间位置? * 快慢指针首先指向第一个节点,快指针每次走2个结点,慢指针每次走1个结点,当快指针走完链表,慢指针刚好走到中间。 * 当前快指针走完链表时,慢指针刚好走到 中间结点。 * 实际上当结点数是奇数时 慢指针

2021-03-19 14:22:42 561

原创 Docker的四种网络模式

Docker服务在启动的时候会创建三种网络,bridge、host和none,还有一种共享容器的模式containerBridge桥接模式,主要用来对外通信的,docker容器默认的网络使用的就是bridge。使用bridge模式配置容器自定的网络配置# 配置容器的主机名docker run --name t1 --network bridge -h [自定义主机名] -it --rm busybox# 自定义DNSdocker run --name t1 --network bridge -

2021-03-09 20:29:12 139

原创 2.分布式事务基础理论

1.CAP理论CAP是 Consistency、Availability、Partition tolerance三个词语的缩写,分别表示一致性、可用性、分区容忍性。在所有分布式事务场景中不会同时具备CAP三个特性,因为在具备了P的前提下C和A是不能共存的。1)AP:放弃一致性,追求分区容忍性和可用性。这是很多分布式系统设计时的选择。例如:上边的商品管理,完全可以实现AP,前提是只要用户可以接受所查询的到数据在一定时间内不是最新的即可。通常实现AP都会保证最终一致性,后面讲的BASE理论就是

2021-01-18 17:26:25 105

原创 1.分布式事务产生的场景

分布式事务:分布式系统会把一个应用系统拆分为可独立部署的多个服务,因此需要服务与服务之间远程协作才能完成事务操作,这种分布式系统环境下由不同的服务之间通过网络远程协作完成事务称之为分布式事务,例如用户注册送积分事务、创建订单减库存事务,银行转账事务等都是分布式事务。1、典型的场景就是微服务架构 微服务之间通过远程调用完成事务操作。 比如:订单微服务和库存微服务,下单的同时订单微服务请求库存微服务减库存。 简言之:跨JVM进程产生分布式事务。2、单体系统访问多个数据库实例 当单体系统需要访问多个数据库(

2021-01-18 17:20:50 351

原创 Mongodb的CRUD

//显示当前链接下所有的数据库show dbs;//使用指定数据库use test;//删除数据库,先使用use指定数据库,然后执行(慎用)//db.dropDatabase();//创建集合(有两个参数 name:新创建的集合名称 options: 创建参数)db.createCollection("student");//删除集合db.student.drop();//增加//插入数据,同一个集合中的文档的key可以不相同,但是建议设置为相同的。 db.student.in

2020-12-27 17:33:44 106

原创 Mongodb基本概念和入门

1.在mongodb中是通过数据库、集合、文档的方式来管理数据,下边是mongodb与关系数据库的一些概念对比:结构如下:1、一个mongodb实例可以创建多个数据库2、一个数据库可以创建多个集合3、一个集合可以包括多个文档。2.mongodb的使用方式是客户服务器模式,即使用一个客户端连接mongodb数据库(服务端)。1、 命令格式mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]

2020-12-27 17:31:37 150

原创 判断Linux是否开启超线程

是否开启超线程,由以下公式来确定:未开启超线程:CPU总线程数 = 物理CPU个数 * 每个物理CPU的逻辑核数 * 1;开启超线程:CPU总线程数 = 物理CPU个数 * 每个物理CPU的逻辑核数 * N。所以我们要收集这三种与 CPU 相关的数据:(1)查看物理 CPU 数wc -l 命令用于统计行数3。cat /proc/cpuinfo | grep "physical id" | sort | uniqLinux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 so

2020-12-27 17:13:25 380

原创 关于mybatis传入0被判断为空的问题

<if test="status!= null and status!= '' "> status=#{status},</if>在mybatis中这样写的话,如果是String类型的话是没有任何问题的,但是如果是传入的Integer的话就会出现传入0被判断为空的现象,但是也不是必现的,为什么不是必现的也不太清,但是如果变量的值是0,即 status= 0, mybatis在进行 status!= ‘’ 的时候会认为 status的值是空字符串, 即 status== ‘

2020-12-20 14:42:32 602

原创 klass模型

Java的每个类,在JVM中,都有一个对应的Klass类实例与之对应,存储类的元信息如:常量池、属性信息、方法信息……看下klass模型类的继承结构从继承关系上也能看出来,类的元信息是存储在原空间的普通的Java类在JVM中对应的是instanceKlass类的实例,再来说下它的三个字类InstanceMirrorKlass:用于表示java.lang.Class,Java代码中获取到的Class对象,实际上就是这个C++类的实例,存储在堆区,学名镜像类【Class对象】**InstanceRe

2020-12-17 10:47:31 432

原创 JVM类加载的过程

类的生命周期是由7个阶段组成,但是类的加载说的是前5个阶段加载1、通过类的全限定名获取存储该类的class文件(没有指明必须从哪获取)2、解析成运行时数据,即instanceKlass实例,存放在方法区3、在堆区生成该类的Class对象,即instanceMirrorKlass实例程序随便你怎么写,随便你用什么语言,只要能达到这个效果即可就是说你可以改写openjdk源码,你写的程序能达到这三个效果即可何时加载主动使用时1、new、getstatic、putstatic、invokest

2020-12-16 19:09:44 156

原创 Linux开机自启java服务脚本(可配置)

基于shell脚本编写的服务自启程序:1.主程序代码(autoboot-2.0.sh):#! /bin/shecho "in autoboot-2.0.sh"cd /autobootwhile read linedo basepath=$linecd $basepathjarStartSh=$(ls $basepath|grep start.sh)jarFullName=$(ls $basepath|grep ".jar$")if [ ${jarStartSh} ]then

2020-12-01 09:29:22 402

原创 mysql执行脚本报错Row size too large. The maximum row size for the used table type

错误:ERROR 1118 (42000): Row size too large. The maximum row size for theused table type, not counting BLOBs, is 65535. You have to changesome columns to TEXT or BLOBs。于是在网上搜索了好久结果发现mysql建表有个长度限制:MySQL要求一个行的定义长度不能超过65535。(1)单个字段如果大于65535,则转换为TEXT 。(

2020-11-30 15:02:07 1027

原创 解决mysql时区问题的两种方案

问题:前段时间新建java工程执行保存数据业务时,数据库实际存储createdTime字段的时间和当前的时间有出入.解决方法1.修改配置文件中的数据库连接:url: jdbc:mysql://192.168.0.1:3306/mysqlName?autoReconnect=true&useSSL=false&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Sha

2020-11-26 17:43:49 480

原创 Docker安装redis

1.查找镜像docker search redis拉取镜像docker pull redis 3.启动容器docker run -d --name project-redis -p 6379:6379 -v /data/redis/data:/data redis --requirepass "mypassword" --appendonly yes4.开放端口firewall-cmd --permanent --add-port=6379/tcp测试是否安全成功服务正常d

2020-11-26 11:42:42 94

原创 CentOS7下防火墙操作大全

防火墙操作查看当前防火墙状态systemctl status firewalld一、service方式查看防火墙状态:[root@centos6 ~]# service iptables statusiptables:未运行防火墙。开启防火墙:[root@centos6 ~]# service iptables start关闭防火墙:[root@centos6 ~]# service iptables stop二、iptables方式先进入init.d目录,命令如下:[root@c

2020-11-25 16:45:56 98

原创 linux使用tar压缩和解压文件或文件夹

使用tar压缩文件tar -zcvf test.tar.gz ./test/该命令表示压缩当前文件夹下的文件夹test,压缩后缀名为test.tar.gz如果不需要压缩成gz,只需要后缀为tar格式的,那么输入如下命令:tar -cvf test.tar ./test/使用tar解压文件tar -xzvf test.tar.gz 该命令表示把后缀为.tar.gz的文件解压到当前文件夹下。如果压缩文件的后缀是.tar,没有gz,则使用命令:tar -xvf test.tar.

2020-11-25 16:39:15 680

原创 自定义注解+工具类忽略Json字段

1.java自定义注解,元注解的使用 ,元注解中值详解元注解:用于注解注解的注解…元注解共有4个:①、@Target:用于明确注解用于目标类的哪个位置ElementType枚举类的值:  Type:用于注解类  Fields:用于注解属性  Methods:用于注解方法  Parameter:用于注解参数  …②、@Retention:用于标识自定义注解的声明周期RetentionPolicy枚举类的值:  SOURCE:没有被编译器编译  CLASS:不会在运行时,被JVM保留

2020-11-20 11:13:52 474

原创 Name or service not known原因和解决

一.确认VMware服务全部开启命令:services.msc二.确认配置无误Centos7路径为例:/etc/sysconfig/network-scripts编辑:vim ifcfg-ens33三.虚拟机编辑器的IP要与物理机对应点击wmware的编辑按钮选择虚拟网络编辑器点击更改设置,net模式,点击net设置,如下图标识处2也可改为1,234必须和下面物理机一致下图是物理机设置,首先打开控制面板,点击网络和共享中心,再点击更改适配器设置找到i.

2020-05-27 14:13:01 15820 4

原创 Linux下卸载旧版本重装JDK1.8

1.卸载jkd1.7 1.测试是否已存在jdkjava -version java javac2.判断jdk是否安装(显示版本号等信息,说明已经安装)查看JDK的安装路径which java rpm -qa | grep -i jdkrm -rf JDK1.8.0_172 (卸载JDK)vi /etc/profile删除以上三行,保存后,卸载成功。2.下载安装JDK1.81.创建文件夹mkdir -p /u...

2020-05-27 14:00:17 732

原创 Linux下MySQL的启动、停止、重启

一、启动1、使用 service 启动:service mysql start2、使用 mysqld 脚本启动:/etc/inint.d/mysql start3、使用 safe_mysqld 启动:safe_mysql&二、停止1、使用 service 启动:service mysql stop2、使用 mysqld 脚本启动:/etc/inint.d/mysql stop3、mysqladmin shutdown三、重启1、使用 service 启动:s

2020-05-26 16:43:02 210

原创 数据接口配置服务-Dataway

官方文档地址:https://www.hasor.net/web/dataway/about.htmlDataway的demo地址:https://github.com/Guofucheng0822/spring-boot-demo/tree/master/project-hasor-dataway1.Dataway介绍Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具。使得使用者无需开发任何代码就配置一个满足需求的接口。整个接口配置、测试、冒烟、发布。一站式都.

2020-05-25 13:09:24 1698

原创 Linux系统重启后 Docker服务及容器自动启动设置

重启[reboot]操作系统后,发现docker 服务未启动,容器也未启动:1.docker自动启动设置:systemctl enable docker.service2、docker容器自动启动设置在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启:docker run --restart=always如果已经启动了则可以使用如下命令:docker update --restart=always <CONTAINER ID>

2020-05-25 11:40:41 2951

转载 RabbitMQ的消息确认机制

一:确认种类RabbitMQ的消息确认有两种。一种是消息发送确认。这种是用来确认生产者将消息发送给交换器,交换器传递给队列的过程中,消息是否成功投递。发送确认分为两步,一是确认是否到达交换器,二是确认是否到达队列。第二种是消费接收确认。这种是确认消费者是否成功消费了队列中的消息。二:消息发送确认(1)ConfirmCallback通过实现ConfirmCallBack接口,消息发送到交换器Exchange后触发回调。使用该功能需要开启确认,spring-boot中配置如.

2020-05-21 22:18:12 576

原创 RabbitMQ研究和使用

MQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开 发中应用非常广泛。RabbitMQ官方地址:https://www.rabbitmq.com/开发中消息队列通常有如下应用场景:1、任务异步处理。将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。

2020-05-21 21:52:54 348

原创 查看nginx是否启动成功

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。前后端分离的项目也经常会见到它的身影,下面来说下部署在linux下的Nginx查看是否启动。第一种方法:查看进程列表并过滤Linux每个应用运行都会产生一个进程,那么我们就可以通过查看Nginx进程是否存在来判.

2020-05-21 21:33:37 15588

原创 Linux系统下Nginx的基础操作

启动启动代码格式:nginx安装目录地址 -c nginx配置文件地址例如:[root@LinuxServer ~ sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf停止nginx的停止有三种方式:从容停止  1、查看进程号[root@LinuxServer ~]# ps -ef|grep nginx2、杀死进程[root@LinuxServer ~]# kill -QUIT 进程号快速停止

2020-05-21 17:41:07 142

原创 Nginx启动成功无法访问

ps aux|grep nginx执行结果如下,的确Nginx服务已经启动。然后执行netstat -ntlp查看80-端口是否被分配给了Nginx,执行结果如下:一切正常啊,那到底情况出在何处呢?解决办法第一步,对80端口进行防火墙配置:firewall-cmd --zone=public --add-port=80/tcp --permanent第二步,重启防火墙服务:systemctl restart firewalld.service然后重新在浏览器中访问你的ip,应该就可

2020-05-21 17:36:10 599

原创 Java冒泡排序

package pers.guofucheng.test;/** * 冒泡排序 * 原理:比较两个相邻的元素,将值大的元素交换至右端。 * 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完...

2019-05-08 15:31:52 181

原创 IDEA装插件,打开失败

在安装了free mybatis plugin后,提示重启,然后重启后便无法再次打开项目了,反复尝试过几次都不行。报错如下:cannot load project fatal error initializing plugin com.seven7.plugin.mybatis确实是因为插件引起的,所以只能去idea的插件路径下把此插件删除,路径一般为:C:\Users\用户名.Intelli...

2019-04-19 15:22:33 449

原创 IDEA使用maven常见问题

Maven Projects 工具栏中的 dependencies 报红线;解决办法:1.确认jar包在本地库已经存在;2.删除pom文件中的依赖,再重新添加即可(原因,没有及时刷新工具栏)使用tomcat 启动,在控制台输出乱码;解决办法:1.打开settings;2.搜索maven;3.选择子菜单 runner;4.在VM Options中 配置 -Dfile.encodi...

2019-01-24 23:55:59 334

空空如也

空空如也

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

TA关注的人

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