yzh_1346983557的博客

私信 关注
yzh_1346983557
码龄5年

做一个有思想有灵魂的。。。“码农”

  • 438,773
    被访问量
  • 116
    原创文章
  • 16,347
    作者排名
  • 39
    粉丝数量
  • 于 2016-08-12 加入CSDN
获得成就
  • 获得107次点赞
  • 内容获得83次评论
  • 获得353次收藏
荣誉勋章
兴趣领域
  • #后端
    #分布式#Spring Boot#Redis#Java
TA的专栏
  • 计算机基础
    1篇
  • spring cloud
    1篇
  • k8s
    1篇
  • 并发
    1篇
  • AQS
    1篇
  • 设计模式
    1篇
  • Quartz
    1篇
  • Keepalived
    1篇
  • yum
  • Centos
  • Spring Boot
    24篇
  • mybatis
    2篇
  • Spark
    3篇
  • Hadoop
    4篇
  • JAVAEE
    1篇
  • RabbitMQ
    2篇
  • storm
    1篇
  • Drools
    1篇
  • JDK
    11篇
  • MongoDB
    3篇
  • Kafka
    4篇
  • Docker
    10篇
  • OpenTSDB
    1篇
  • Node.js
    1篇
  • git
    4篇
  • Spring
    3篇
  • VSCode
    1篇
  • Netty
    4篇
  • temp
  • linux
    13篇
  • idea
    2篇
  • activemq
    1篇
  • protobuf
    3篇
  • MQTT
    3篇
  • JAVA
    14篇
  • Mysql
    6篇
  • parallelStream
  • Kubernates
    4篇
  • Redis
    5篇
  • Slf4j
    2篇
  • Druid
    1篇
  • Shell
    1篇
  • HDFS
    3篇
  • Zookeeper
    2篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

位、字节、字符、字符集、编码之间的关系

1.位(bit)位:bit,“比特”,计算机内部数据存储的最小单位。位只可用二进制数0和1两种状态表示。2.字节(byte)字节(Byte)是一种计量单位,表示数据量多少,它是计算机用于计量存储容量的一种计量单位。字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1byte=8bit)。1 B = 1 byte(字节) = 8 bit;1 KB = 1024 B(字节);1 MB = 1024 KB;(2^10 B
原创
31阅读
0评论
0点赞
发布博客于 1 月前

spring cloud vs k8s

个人总结:spring cloud是从应用框架层面解决了微服务架构的一部分(网关、服务发现,负载平衡,配置管理,指标跟踪等),易于java开发者上手,缺乏打包、持续集成、伸缩、高可用和自我修复等,而且局限于java平台;k8s从平台层面解决了微服务架构整个流程,并且不限语言,上手难度稍高些。(可管理应用程序整个生命周期,应用自动扩展、持续集成、伸缩、高可用和自我修复等)Spring Cloud的微服务架构:该图展示了运行时的方方面面,但没有包括打包、持续集成、伸缩、高可用和自我修复等在微
原创
66阅读
1评论
0点赞
发布博客于 2 月前

ArrayList源码随笔

1.成员变量public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ private static final int DEFAULT_CAPACITY = 10; private static final Object[] EMPTY_ELEMENTDAT
原创
24阅读
0评论
0点赞
发布博客于 2 月前

jdk8 获取上一周、下一周的周几

/** * 获取上周的周几 * * @param day 周几 1-周一...7-周日 * @return yyyy-MM-dd */ public static String getPreviousDay(int day) { //获取今天日期 LocalDate now = LocalDate.now(); //获取上周的今天 LocalDate minusDays = ...
原创
122阅读
0评论
0点赞
发布博客于 3 月前

Java8 Optional判空 代码Demo

1.使用Optional 进行list集合的判空: List<Object> list = null; List<String> result = Optional.ofNullable(list) .map(objects -> objects.stream().map(Object::toString).collect(Collectors.toList()))//list不为null时的处理解析
原创
74阅读
0评论
0点赞
发布博客于 6 月前

java hashCode()理解

作用:hashCode()方法返回对象散列值,作用是为了快速定位对象在hash表中位置。1.JDK的Object中,hashCode()是native方法,jvm根据一定的规则将与对象相关的信息(比如对象的存储地址,对象的字段等)映射成一个数值,这个数值称作为散列值。注意:hashCode()返回的hash值并不能表示对象的内存地址(可能计算的时候只使用了对象内存地址的一部分),最多只能说hashCode()是对象内存地址的一种表现形式,决不能说等价于内存地址。Object.equals()使用的“==
原创
46阅读
0评论
0点赞
发布博客于 7 月前

spring bean创建流程

一、流程图getBean()流程图,来源:https://blog.csdn.net/laravelshao/article/details/82318063其它有关图,来源:https://www.jianshu.com/p/1d0fb520e5c0二、一些属性记录scope="singleton"单例 在启动(容器初始化之前), 就已经创建了bean,且整个...
原创
262阅读
0评论
0点赞
发布博客于 10 月前

ConcurrentHashMap源码笔记(jdk8)

理解了jdk1.8 HashMap的源码再来理解ConcurrentHashMap事半功倍,HashMap传送门:https://blog.csdn.net/yzh_1346983557/article/details/105456563一、ConcurrentHashMap的数据结构图图来源百度图片:可发现ConcurrentHashMap的数据结构和jdk1.8的HashMap...
原创
84阅读
0评论
0点赞
发布博客于 10 月前

LinkedHashMap源码笔记(jdk8)

需先看HashMap源码:https://blog.csdn.net/yzh_1346983557/article/details/105456563一、LinkedHashMap的成员变量 //双向链表的头结点 transient LinkedHashMap.Entry<K,V> head; //双向链表的尾结点 transient Link...
原创
69阅读
0评论
0点赞
发布博客于 10 月前

HashMap源码笔记(jdk8)

个人看源码的笔记记录,基于JDK1.8。一、HashMap的成员变量 //table数组默认初始化容量16 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 //table数组最大容量2^ 30 次方 static final int MAXIMUM_CAPACITY = ...
原创
69阅读
0评论
0点赞
发布博客于 10 月前

Java常用设计模式简易代码Demo:单例、工厂、代理、模板、观察者、适配器、策略、装饰者

一、单例模式节省内存。public class SingleMode { private static volatile SingleMode singleMode = null;//懒汉式 private SingleMode() { } public static SingleMode getInstance() { if (singl...
原创
83阅读
0评论
0点赞
发布博客于 10 月前

ABC三线程顺序执行

一、Lock锁加Condition实现(推荐)LockABC:class RunMain { public static void main(String[] args) { LockABC lockABC = new LockABC(); new Thread(new Runnable() { @Override ...
原创
154阅读
0评论
0点赞
发布博客于 11 月前

ThreadLocal原理与使用场景

一、ThreadLocal原理如果看懂了ThreadLocal的set()方法,get()、remove()方法也就好理解了,所以重点看一下set()方法。set()方法执行流程总结:1.获取当前线程对象2.获取当前线程对象的成员变量ThreadLocalMap3.1不为null,set值3.1.1获取当前ThreadLocalMap对象的Entry数组3.1.2获取T...
原创
69阅读
0评论
0点赞
发布博客于 11 月前

volatile无法保证共享变量i++线程安全原因(JVM字节码层面)

一、i++先看一下局部变量i++执行流程与原理。javap -c -l Demo.class对class字节码文件进行反编译生成汇编代码(只列出我们关心的代码):javap -v 不仅会输出行号、本地变量表信息、反编译汇编代码,还会输出当前类用到的常量池等信息。javap -l 会输出行号和本地变量表信息。javap -c 会对当前class字节码进行反编译生成汇编代码。pu...
原创
198阅读
0评论
0点赞
发布博客于 11 月前

ReentrantLock Condition 随笔

Condition作用和Object.wait()和Object.notify()方法作用类似,但是wait()和notify()是和synchronized关键字结合使用的,而Condition是和ReentrantLock(重入锁)相关联的且更灵活:一个锁实例,可以绑定多个Condition实例,实现多路通知;notify()方法进行通知时,是随机进行选择的,但重入锁结合Condition对象...
原创
73阅读
0评论
0点赞
发布博客于 1 年前

自定义AQS同步器:互斥锁

自定义互斥锁:参考jdk的ReentrantLock可重入锁源码,定义一个互斥锁:import org.jetbrains.annotations.NotNull;import java.io.Serializable;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.AbstractQ...
原创
124阅读
0评论
0点赞
发布博客于 1 年前

Intellij IDEA 折叠注释

源码比较注重注释,在浏览源码的时候有时会很不方便,那么如何默认折叠文档注释呢?把Settings --> Editor --> General --> Code Folding 中的Documentation comments勾选后Apply即可。附:全部方法收缩快捷键:ctrl+shift+'-' ,全部方法展开快捷键:ctrl+shift+'+'...
原创
784阅读
0评论
0点赞
发布博客于 1 年前

springboot自动配置原理:@SpringBootApplication注解分析、全局配置加载流程

springboot的自动配置是使用springboot的一大原因,那自动配置具体是如何加载运行的呢?主要是依靠@SpringBootApplication注解。@SpringBootApplication是一个复合注解:@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherit...
原创
195阅读
0评论
0点赞
发布博客于 1 年前

SpringMVC @ResponseBody使用jackson转化后端javabean对象返回前端时大写字母变小写的解决

javabean的定义:import lombok.Data;@Datapublic class TerminalType10 { private String tThreshold;}返回前端时发现变成了tthreshold,显式声明get方法即可解决:import lombok.Data;@Datapublic class TerminalTy...
原创
446阅读
0评论
0点赞
发布博客于 1 年前

springboot集成quartz实现动态多定时任务

一、引入quartz的starter包: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency>二、编码1...
原创
181阅读
0评论
0点赞
发布博客于 1 年前

keepalived安装

1.下载、解压、编译、安装、查看版本:官网源码下载地址:https://www.keepalived.org/download.html,选择最新版本yum install -y wget gcc openssl-devel libnl-develwget https://www.keepalived.org/software/keepalived-2.0.19.tar.gztar z...
原创
198阅读
0评论
0点赞
发布博客于 2 年前

zookeeper-3.4.14安装

1.下载地址:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz(官方3.5版本的包有问题)2.解压安装:[root@centos60 tmp]# tar zxvf zookeeper-3.4.14.tar.gz -C /usr/local/[root@centos60 t...
原创
4413阅读
3评论
2点赞
发布博客于 2 年前

kafka2.3.0分布式集群HA安装

一、安装环境:kafka_2.12-2.3.0(Scala 2.12,kafka 2.3.0)、zookeeper-3.4.14、centos7、3节点IP:192.168.56.66,192.168.56.80,192.168.56.88。二、官网安装:http://kafka.apache.org/quickstart 官网最新正式版下载:http://kafka.apac...
原创
216阅读
0评论
0点赞
发布博客于 2 年前

Linux下为文件创建软链接ln -s

创建软链接:ln -s源文件绝对路径 目标文件创建链接命令:ln [选项] 源文件 目标文件选项:-s:建立软链接文件。如果不加 "-s" 选项,则建立硬链接文件;-f:强制。如果目标文件已经存在,则删除目标文件后再建立链接文件;创建软链接例子:[root@centos60 yzh]# pwd/home/yzh[root@centos60 yzh]# touch aa....
原创
615阅读
0评论
0点赞
发布博客于 2 年前

linux VM间配置ssh免密互信

一、域名映射配置(所有节点):[root@centos60 jvm]# vi /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.l...
原创
198阅读
0评论
0点赞
发布博客于 2 年前

shell 中 [-eq] [-ne] [-gt] [-lt] [ge] [le]

-eq equal,等于-ne not equal,不等于-gt greater than,大于-lt less than,小于ge greater or equal,大于等于le less or equal,小于等于...
原创
127阅读
0评论
0点赞
发布博客于 2 年前

Failed to start namenode. java.io.FileNotFoundException: No valid image files found

hdfs3.x HA部署时,standby namenode启动失败,查看日志的报错:[root@centos62 logs]# pwd/usr/local/hadoop-3.1.2/logs[root@centos62 logs]# cat hadoop-root-namenode-centos62.log2019-07-30 17:39:39,766 ERROR org.apach...
原创
2596阅读
0评论
1点赞
发布博客于 2 年前

HDFS 3.1.2 HA 分布式安装部署

一、安装环境:centos7、hadoop-3.1.2、zookeeper-3.4.14、3个节点(192.168.56.60,192.168.56.62,192.168.56.64)。centos60 centos62 centos64 NameNode NameNode Zookeeper Zookeeper Zookeeper Data...
原创
338阅读
0评论
1点赞
发布博客于 2 年前

zookeeper cli 随笔

安装好zookeeper集群后,可使用 cli 客户端模式访问zookeeper server。zookeeper很像一个小型的文件系统,/是根目录,下面的所有节点都叫zNode。[root@centos62 zookeeper-3.4.14]# pwd/usr/local/zookeeper-3.4.14[root@centos62 zookeeper-3.4.14]# bin/z...
原创
57阅读
0评论
0点赞
发布博客于 2 年前

hdfs 3.x 分布式安装(超详细)

一、安装环境:centos7、hadoop-3.1.2、3个节点(192.168.56.60,192.168.56.62,192.168.56.64,3个节点都安装datanode 伪分布式保证datanode HA)。centos60 centos62 centos64 NameNode SecondaryNameNode Da...
原创
231阅读
0评论
1点赞
发布博客于 2 年前

k8s pod中文件挂载到本地

apiVersion: apps/v1beta1kind: StatefulSetmetadata: namespace: oasis name: redis-cluster-node-nsspec: serviceName: "redis-cluster-svc" template: spec: containers: vol...
原创
3092阅读
0评论
0点赞
发布博客于 2 年前

redis5 cluster 集群HA安装部署

一、安装环境:centos7、Redis5.0.5 stable二、集群安装2.1 下载源文件:pwd/home/yzhwget http://download.redis.io/releases/redis-5.0.5.tar.gztar xzf redis-5.0.5.tar.gzcd redis-5.0.5/或者本地下载好后winscp传到Linux服务器:http...
原创
253阅读
0评论
0点赞
发布博客于 2 年前

MariaDB10.4 Galera Cluster 集群安装

一。安装环境:centos7、MariaDB 10.4 stable、3节点IP:192.168.56.122、192.168.56.123、192.168.56.124二。集群安装官网最新正式版地址:https://downloads.mariadb.org/mariadb/repositories/#mirror=shanghai-university&distro=CentO...
原创
1621阅读
0评论
0点赞
发布博客于 2 年前

windows下载openjdk1.8

下载官网地址:http://jdk.java.net/java-se-ri/8,其它版本的下载就是把后缀“8”改成其它版本号就ok了。如图:然后,1.添加环境变量:JAVA_HOME=F:\java-se-8u40-ri\bin,其中,F:\java-se-8u40-ri是你解压出来的文件地址。2.修改环境变量:PATH末尾加入:;%JAVA_HOME%,注意%前面有英文分号“;”...
原创
11033阅读
3评论
1点赞
发布博客于 2 年前

chmod +x,赋予“可执行”权限

1、chmod +x的意思就是给执行权限(1)、LINUX下不同的文件类型有不同的颜色,绿色文件: 可执行文件,可执行的程序红色文件:压缩文件或者包文件蓝色文件:目录白色文件:一般性文件,如文本文件,配置文件,源码文件等浅蓝色文件:链接文件,主要是使用ln命令建立的文件红色闪烁:表示链接的文件有问题黄色:表示设备文件灰色:表示其他文件(2)、因此wge...
转载
25488阅读
0评论
3点赞
发布博客于 2 年前

redis4 cluster 集群HA安装部署

因为公司用的是redis4,所以这里记录4.0.14(redis4的最后一个版本)。1.Redis是c开发的,因此安装redis需要c语言的编译环境,即需要安装gcc。[root@centos125 ~]# gcc -v-bash: gcc: command not found说明gcc没有安装,安装命令:yum -y install gcc gcc-c++下载wget、...
原创
101阅读
0评论
0点赞
发布博客于 2 年前

cluster meet 执行流程

cluster meet <ip> <port>:节点 A 会为节点 B 创建一个 clusterNode 结构, 并将该结构添加到自己的 clusterState.nodes 字典里面。 节点A根据CLUSTER MEET命令给定的IP地址和端口号,向节点B发送一条MEET消息。 节点B接收到节点A发送的MEET消息,节点B会为节点A创建一个clusterNode...
转载
588阅读
0评论
0点赞
发布博客于 2 年前

redis持久化rdb、aof的关闭、开启

redis.conf默认配置(4.0.14):# save ""save 900 1save 300 10save 60 10000appendonly no# appendfsync alwaysappendfsync everysec# appendfsync no默认是开启了rdb,aof是关闭的。若开启了aof,一般aof更新频率高,所以优先aof还原数据库...
原创
9207阅读
0评论
3点赞
发布博客于 2 年前

tar -zxvf .tar.gz和tar -xvf .tar

zxvf是linux的tar命令的参数。.tar.gz是一个压缩包,.tar只是打包而没有压缩。z:通过gzip支持压缩或解压缩。x:解压缩。c是压缩。v:在压缩或解压缩过程中显示正在处理的文件名。f:f后面必须跟上要处理的文件名。也就是说你不能写成这样 tar -zxfv test.tar.gzz代表gzip的压缩包;x代表解压;v代表显示过程信息;f代表后面跟的是文件。...
原创
5194阅读
0评论
3点赞
发布博客于 2 年前

springboot+validation的参数验证(含嵌套验证和全局验证异常捕获)

一。pom.xml添加依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> ...
原创
2113阅读
0评论
1点赞
发布博客于 2 年前

rabbitmq exchange的4种类型:direct,topic,fanout,header

direct:exchange在和queue进行binding时会设置routingkey,将消息发送到exchange时会设置对应的routingkey,只有这两个routingkey完全相同,exchange才会选择对应的binging进行消息路由。fanout:直接将消息路由到所有绑定的队列中,无须对消息的routingkey进行匹配操作。(广播)topic:此类型exch...
原创
1117阅读
0评论
0点赞
发布博客于 2 年前

mysql查看连接数有关命令

进入mysql命令行:mysql的安装目录下面有个bin目录,先用命令进入该目录,然后用 mysql -uroot -p123456 来登录。show variables like '%max_connections%'; 查看最大连接数//set global max_connections=1000; ...
原创
1628阅读
0评论
0点赞
发布博客于 2 年前

linux线程数量有关查询命令

ulimit -u 或 ulimit -a 系统限制某用户最多可运行的线程数//cat /proc/sys/kernel/pid_max 系统支持的最大线程数(理论上的)//cat /proc/sys/kernel/threads-max 内核所能使用的线程的最大数目ps -ef |...
原创
2497阅读
0评论
1点赞
发布博客于 2 年前

You have mail in /var/spool/mail/root

centos下提示:You have mail in /var/spool/mail/root,Linux 系统经常会自动发出一些邮件来提醒用户系统中出了哪些问题(收件箱位置:/var/mail/)。可是这些邮件都是发送给 root 用户的。出于系统安全考虑,通常不建议大家直接使用 root 帐户进行日常操作。可把发给 root 用户的邮件也给自己指定的外部邮箱发一份,或者是直接关闭此项服务。(下...
转载
97阅读
0评论
0点赞
发布博客于 2 年前

linux的mount(挂载)理解

原文:Linux学习笔记(二):什么是挂载?mount的用处在哪?1.提一句Windows下,mount挂载,就是给磁盘分区提供一个盘符(C,D,E,...)。比如插入U盘后系统自动分配给了它I:盘符其实就是挂载,退优盘的时候进行安全弹出,其实就是卸载unmount。2.Linux下,不像Windows可以有C,D,E,多个目录,Linux只有一个根目录/。在装系统时,我们分配给linux...
转载
1061阅读
0评论
0点赞
发布博客于 2 年前

linux查看磁盘空间大小

df -h:df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息。(disk find?)文件系统 容量 已用 可用 已用% 挂载目录Filesystem Size Used Avail Use% Mounted ondevtmpfs 16G 0...
原创
5459阅读
0评论
0点赞
发布博客于 2 年前

linux查找文件所在路径:find、locate

find命令:find / -name 文件名locate 命令 : locate 文件名,locate命令搜索文件是比较快的,它不像find一样在我们的搜索范围进行查找也不是在我们的硬盘上进行操作,而是在它所存放的资料库中进行查找。那资料库是什么呢?就类似一个记录操作日志的一个文件库,我们创建一个文件时,就会保存到我们的资料库中,所以我们在搜索文件时只是会检索资料库,从而提高效率。...
原创
3057阅读
0评论
0点赞
发布博客于 2 年前

Kafka的三种ACK机制

Kafkaproducer有三种ack机制 初始化producer时在config中进行配置0意味着producer不等待broker同步完成的确认,继续发送下一条(批)信息提供了最低的延迟。但是最弱的持久性,当服务器发生故障时,就很可能发生数据丢失。例如leader已经死亡,producer不知情,还会继续发送消息broker接收不到数据就会数据丢失1意味着produc...
转载
8920阅读
0评论
0点赞
发布博客于 2 年前

java的定时任务ScheduledExecutorService

ScheduledExecutorService service = Executors.newScheduledThreadPool(10); // 从现在开始1秒钟之后,每隔1秒钟执行一次job1 service.scheduleAtFixedRate(new Runnable(){..}, 1, 1, TimeUnit.SE...
原创
243阅读
0评论
1点赞
发布博客于 2 年前

docker的环境变量设置

ENV <key> <value> Dockerfile中定义环境变量docker run --env <key>=<value> imageID 修改环境变量docker exec -it <CONTAINER-NAME> OR <CONTAINER-ID> env 查看容器中的环境变量...
原创
3217阅读
0评论
0点赞
发布博客于 2 年前

Mysql字段唯一性设置(unique index)

一。建表的时候声明:。。。`username` varchar(255) NOT NULL unique,。。。二。建表后添加:ALTER TABLE ·tb_user· ADD unique(`username`);三。navicat方式:组合索引的唯一性:参考:MySQL数据库唯一性设置(unique index)...
原创
746阅读
0评论
0点赞
发布博客于 2 年前

Mysql的utf8与utf8mb4区别,utf8mb4_bin、utf8mb4_general_ci、utf8mb4_unicode_ci区别

UTF-8是使用1~4个字节,一种变长的编码格式,字符编码。mb4即 most bytes 4,使用4个字节来表示完整的UTF-8。mysql的 utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种平面(BMP)。也就是说,任何不在基本多文本平面的 U...
原创
18810阅读
0评论
5点赞
发布博客于 2 年前

RestTemplate小记

一。简介RestTemplate简介:简化了发起HTTP请求以及处理响应的过程,并且支持REST。DELETE delete GET getForObject getForEntity HEAD headForHeaders OPTIONS optionsForAllow POST postForLocation ...
原创
66阅读
0评论
0点赞
发布博客于 2 年前

k8s pod重启前的日志查看

kubectl logs -p pod名称-p:previous,上一个,前一个。-p, --previous[=false]: If true, print the logs for the previous instance of the container in a pod if it exists.如果容器的前一个实例存在,则在pod中打印它的日志。...
原创
12994阅读
0评论
1点赞
发布博客于 2 年前

docker logs 参数解释

docker logs -f -t --since="2019-04-15T02:14:00" --tail=1000 9c03ea2c-f:实时显示-t:显示日志生成时的时间戳(默认中时区)--since:从指定时间戳开始(默认中时区,即在北京东八区的时间戳上减去8小时)--tail:显示最后的条数9c03ea2c:容器名[root]# docker logs...
原创
1210阅读
0评论
0点赞
发布博客于 2 年前

springboot的pom.xml中的parent作用

转载自:你真的理解 Spring Boot 项目中的 parent 吗?定义了 Java 编译版本为 1.8 。使用 UTF-8 格式编码。继承自 spring-boot-dependencies,这个里边定义了依赖的版本,也正是因为继承了这个依赖,所以我们在写依赖时才不需要写版本号。执行打包操作的配置。自动化的资源过滤。自动化的插件配置。针对 application.proper...
原创
3040阅读
0评论
1点赞
发布博客于 2 年前

docker查看jvm内存占用

一。进入docker容器的宿主机,查看运行指定镜像的容器id(结果的第一列):docker ps | grep myImageName(或docker ps | grep java)二。进入容器内部:docker exec -it containerId sh三。直接输入top命令:top可看到基本的容器占用的信息:pid、vsz、cpu、command等。(ctrl+...
原创
11343阅读
0评论
0点赞
发布博客于 2 年前

k8s pod自动重启原因(jvm内存设置)

k8s集群环境下,docker容器中运行镜像方式启动springboot项目。由于制作的镜像未对JVM的内存进行配置,那么 JVM 会默认设置堆栈的大小,这个大小是根据物理机的内存进行分配的。 那么物理机的内存越大,默认分配的内存就越大(最大堆栈=1/4 * 物理机内存,初始堆栈=1/64* 物理机内存)。JVM 是不知道自己在Docker容器中运行的,jvm识别的是物理主机的内存,而不是k8s...
原创
10317阅读
0评论
1点赞
发布博客于 2 年前

vi 复制一行、删除一行、撤销上一步操作

复制一行:光标移动到要复制的行上 --> 按“yy”-->光标移动到要复制的位置 -->按“p”(“p”:将已复制的数据粘贴到光标的下一行,大写“P”:贴在光标的上一行)删除一行:dd撤销上一步操作:u...
原创
1688阅读
0评论
0点赞
发布博客于 2 年前

org.mongodb.driver.cluster:Exception in monitor thread while connecting to server localhost:27017

2019-04-02 22:17:48.046 INFO 6 --- [cluster-ClusterId{value='5ca36f0bcaed170006d3bed6', description='null'}-localhost:27017] org.mongodb.driver.cluster : Exception in monitor thread wh...
原创
7702阅读
0评论
3点赞
发布博客于 2 年前

springboot+rabbitmq,消费者和生产者

一。pom.xml添加依赖: <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-amqp --> <dependency> <groupId>org.springframework.b...
原创
913阅读
0评论
0点赞
发布博客于 2 年前

springboot+pagehelper

pagehelper原理:拦截后面第一条执行sql查询的语句,添加如mysql的limit分页关键词与分页参数,并顺带生成一个查询总数的sql。优点:封装分页sql,使我们不需要每个地方都去写分页的查询语句;同时,使我们select的sql语句向下兼容,换了数据库也不需要更改sql分页代码。一。pom.xml中添加依赖: <!-- https://mvnreposit...
原创
5041阅读
0评论
1点赞
发布博客于 2 年前

springboo使用事务随笔

总结:springboot中在方法上(或类上)声明@Transactional注解即可在springboot中使用事务。一。在Spring Boot中,当我们使用了spring-boot-starter-jdbc或spring-boot-starter-data-jpa依赖的时候,框 架会自动默认分别注入DataSourceTransactionManager或JpaTransactionMa...
原创
87阅读
0评论
0点赞
发布博客于 2 年前

git reset 取消提交(本地仓库commit的取消、远程仓库push的取消)

1.git log查看提交的信息,主要是查找commitID。2.git reset --soft commitID重置至指定版本,达到撤销提交的目的(即本地commit的取消)。参数soft:保留当前工作区,以便重新提交。还可以选择参数hard,会撤销相应工作区的修改,谨慎使用。然后可以再使用:git log,查看重置是否成功。3.git push --force强制...
原创
2304阅读
0评论
1点赞
发布博客于 2 年前

CountDownLatch使用Demo

《Effective Java》书中对CountDownLatch的描述:倒计数(倒计时顺口些)锁是一次性的障碍,允许一个或多个线程等待一个或多个其它线程来做其它事情。CountDownLatch的唯一构造器带有一个int类型的参数,这个int参数是指允许所有在等待的线程被处理之前,必须在倒计时锁上调用countDown()方法的次数。import org.junit.Test;impo...
原创
91阅读
0评论
0点赞
发布博客于 2 年前

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/C:/Users/yys1405/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/S...
转载
2575阅读
0评论
0点赞
发布博客于 2 年前

Linux的shell脚本理解

原文地址:http://c.biancheng.net/cpp/view/6994.html,参考:linux下的shell脚本(基本)换句话说,图形界面和命令行要达到的目的是一样的,都是让用户控制计算机。然而,真正能够控制计算机硬件(CPU、内存、显示器等)的只有操作系统内核(Kernel),图形界面和命令行只是架设在用户和内核之间的一座桥梁。由于安全、复杂、繁琐等原因,用户不能直接...
转载
49阅读
0评论
0点赞
发布博客于 2 年前

Netty+UDP+Java,与spring集成,client+server

1.maven中引入依赖包:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo...
原创
1911阅读
4评论
2点赞
发布博客于 2 年前

DruidDataSource的使用、配置

记录一下使用DruidDataSource的常用配置。1.pom.xml中引入: <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId&g...
原创
5495阅读
2评论
1点赞
发布博客于 2 年前

Netty的BlockingOperationException: DefaultChannelPromise

使用netty传输tcp数据时,小数据量时一切正常,数据量变大时一直抛出异常:io.netty.util.concurrent.BlockingOperationException: DefaultChannelPromise@3a7c07bb(uncancellable)定位到问题代码,在ChannelHandler中:@Overrideprotected void channe...
原创
1580阅读
0评论
1点赞
发布博客于 2 年前

Dockerfile的EXPOSE

Dockerfile中端口的声明:EXPOSE &lt;端口1&gt; [&lt;端口2&gt;...]所以,EXPOSE的作用:只是说明docker容器开放了哪些端口,并没有将这些端口实际开放了出来!更多的作用是告诉运维人员或容器操作人员我开放了容器的哪些端口,只是一种说明。第二种作用:Dockerfile中声明了EXPOSE端口之后,我们使用-P命令进行随机映射的时候,会映射到EXPO...
原创
5137阅读
0评论
1点赞
发布博客于 2 年前

git同步代码到另一分支

将develop分支的代码同步到private,步骤:git checkout privategit merge developgit pushgit cherry-pick(择优挑选) commitId,可以选择某一个分支中的一个或几个commit(s)来合并。...
原创
5129阅读
0评论
1点赞
发布博客于 2 年前

MQTT topic匹配规则

转载自:MQTT topic匹配规则基础主题层级分隔符 / : 用于分割主题层级,/分割后的主题,这是消息主题层级设计中很重要的符号。 比方说: aaa/bbb和 aaa/bbb/ccc 和aaa/bbb/ccc/ddd ,这样的消息主题格式,是一个层层递进的关系,可通过多层通配符同时匹配两者,或者单层通配符只匹配一个。 这在现实场景中,可以应用到:公司的部门层级推送、国家...
转载
4746阅读
0评论
2点赞
发布博客于 2 年前

slf4j日志中记录Throwable即异常的堆栈信息

核心代码:log.error("",e);即只需在最后一个参数处放入Exception e对象,就可将Exception的堆栈信息记录在日志中。原因:void error(String var1, Throwable var2);  slf4j接口中存在着这样的方法,将Exception对象作为参数接受,实现类会将堆栈信息记录下来实现。补充:maven中添加jar包: ...
原创
929阅读
0评论
0点赞
发布博客于 2 年前

springboot修改默认注入的RedisTemplate

@Configurationpublic class RedisConfiguration { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, Object...
原创
1425阅读
4评论
0点赞
发布博客于 2 年前

springboot的@ConditionalOnProperty

@ConditionalOnProperty:根据application.properties配置文件中的属性决定容器启动时是否加载指定类到容器中举例:1.application.properties中:yzh.conditional=true2.@Component@ConditionalOnProperty(name = "yzh.conditional", havingV...
原创
1055阅读
0评论
1点赞
发布博客于 2 年前

SpringBoot配置文件的属性注入

spring中配置文件的属性注入都是@Value("${}")这种,springboot中提供了另一种(可以说是简化吧)。1.pom.xml中引入:&lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-configuration-...
原创
580阅读
0评论
0点赞
发布博客于 2 年前

k8s service的yaml定义

Service:Service有四种type: ClusterIP(默认)、NodePort、LoadBalancer、ExternalName. 其中NodePort和LoadBalancer两类型的Services可以对外提供服务。engine.yaml:apiVersion: v1 #API的版本号,版本号可以用 kubectl api-versions...
原创
2903阅读
0评论
2点赞
发布博客于 2 年前

git删除本地分支、删除远程分支、强制覆盖本地代码、从已有分支创建新分支

//查看本地分支git branch //删除本地develop分支git branch -D develop//重新拉取develop分支git checkout develop//查看所有分支(本地和远程)git branch -a
原创
926阅读
0评论
0点赞
发布博客于 2 年前

springboot+kafka最简易入门Demo

1.pom.xml中加入kafka依赖: <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </depend...
原创
1041阅读
2评论
3点赞
发布博客于 2 年前

Dockerfile java

#基础镜像FROM openjdk:8#创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录VOLUME /tmp#复制test-1.0-SNAPSHOT.jar到/opt/app下且重命名为app.jarCOPY target/test-1.0-SNAPSHOT.jar /opt/app/app.jar#...
原创
1287阅读
0评论
1点赞
发布博客于 2 年前

docker容器中没有jps、jstack等jvm监控命令

是因为使用的JDK镜像是精简版,没有这些额外的JDK辅助工具包。
原创
3975阅读
0评论
0点赞
发布博客于 2 年前

Netty的ChannelFuture.channel().closeFuture().syncUninterruptibly()作用

基本上Netty的server:ChannelFuture channelFuture= serverBootstrap.bind(port).syncUninterruptibly();//绑定端口,开启监听后面都会加上这句channelFuture.channel().closeFuture().syncUninterruptibly();那这行代码到底有什么作用呢?具体没有深入源码,只...
原创
14270阅读
7评论
6点赞
发布博客于 2 年前

SpringBoot定时任务Scheduled简易使用及动态多任务使用

一。引入了spring-boot-starter包即可,无需额外jar包: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId&...
原创
98阅读
0评论
0点赞
发布博客于 2 年前

idea修改回到上次编辑处快捷键

默认:ctrl + alt + 向左箭头,因为默认的快捷键和windows系统改变屏幕显示方向相同,造成了冲突,所以我一般是修改这个快捷键。步骤:File --&gt; Settings --&gt; Keymap --&gt; navigate --&gt; back --&gt; Add Keyboard Shortcut  --&gt;ctrl+shift+向左箭头 --&gt; Rem...
原创
8902阅读
0评论
0点赞
发布博客于 2 年前

mysql时间戳转换

//查看当前时间SELECT now();//查看当前时间戳SELECT UNIX_TIMESTAMP(now());//时间戳转时间SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(now()));结果:2019-01-07 09:44:311546854271(说明mysql时间戳timestamp类型默认单位是秒,不是毫秒)201...
原创
1603阅读
0评论
1点赞
发布博客于 2 年前

Java生成随机字符串

public class MyStringUtil { /** * 生成随机字符串 * * @param stringLength:生成的字符串长度 * @return */ public static String getRandomString(int stringLength) { String strin...
原创
4366阅读
0评论
0点赞
发布博客于 2 年前

ActiveMQ的MQTT:WARN | Stealing link for clientId XXX From Connection Transport

Stealing link for clientId XXX From Connection Transport:从连接传输中窃取clientId XXX的链接ActiveMQ使用MQTT协议传输数据,客户端连接mqtt时需指定一个clientId,这个clientId需要是唯一不重复的,如果这个clientId已被使用,当前客户端就尝试窃取链接,如果之前的链接没有放弃连接,即连接还存在,那么...
原创
1092阅读
1评论
0点赞
发布博客于 2 年前

netty+tcp,传输数据使用protobuf,以及编解码分析

netty实现tcp见:netty4+tcp+springboot,server+client下面只记录了数据传输使用protobuf。1.ServerChannelInitializer、ClientChannelInitializer中使用netty提供的protubuf的编解码处理类:import io.netty.channel.ChannelInitializer;imp...
原创
1131阅读
1评论
0点赞
发布博客于 2 年前

netty4+tcp+springboot,server+client

一.pom.xml中引入netty的依赖包: <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.31.Fin...
原创
7582阅读
8评论
1点赞
发布博客于 2 年前

protobuf 3.5 java使用介绍(一)

protobuf 3.5 java使用介绍(一):https://blog.csdn.net/fangxiaoji/article/details/78826165
转载
132阅读
0评论
0点赞
发布博客于 3 年前

windows下使用protobuf

1.下载protobuf:https://github.com/google/protobuf/releases,选择protoc-xxx-win32.zip下载2.解压后,配置protoc.exe到windows环境变量中:在环境变量PATH的最后加上:;C:\software\protobuf\bin (其中C:\software\protobuf\bin是protoc.exe的路径)...
原创
287阅读
1评论
0点赞
发布博客于 3 年前

docker运行redis、mysql

1.列出本地主机上的镜像。docker images2.从Docker Hub中拉取或者更新指定镜像。docker pull redisdocker pull mysql3.运行redis和mysql镜像。(--name:指定容器名 -p:指定端口映射,即主机端口到容器端口的映射 -d:后台运行,启动成功后输出容器ID)docker run --name redisname -p ...
原创
156阅读
0评论
0点赞
发布博客于 3 年前

docker运行redis、mysql

1.列出本地主机上的镜像。docker images2.从Docker Hub中拉取或者更新指定镜像。docker pull redisdocker pull mysql3.运行redis和mysql镜像。(--name:指定容器名 -p:指定端口映射,即主机端口到容器端口的映射 -d:后台运行,启动成功后输出容器ID)docker run --name redisname -p ...
原创
156阅读
0评论
0点赞
发布博客于 3 年前

activemq自定义安全验证插件,集成mysql

一.下载插件代码所需jar包,我是在maven中引入,然后再copy到activemq的指定目录: &lt;dependencies&gt; &lt;!-- https://mvnrepository.com/artifact/org.apache.activemq/activemq-broker --&gt; &lt;dependency&gt; ...
原创
958阅读
2评论
0点赞
发布博客于 3 年前

mqtt+java+spring(含断线重连)

一.pom.xml中添加mqtt的依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-integration</artifactId> ...
原创
2949阅读
3评论
0点赞
发布博客于 3 年前

redis+springboot,RedisTemplate的string、hash api

一.maven中添加依赖: &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-data-redis&lt;/artifactId&gt; &...
原创
260阅读
0评论
0点赞
发布博客于 3 年前

redis+springboot,RedisTemplate的string、hash api

一.maven中添加依赖: &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-data-redis&lt;/artifactId&gt; &...
原创
260阅读
0评论
0点赞
发布博客于 3 年前

activemq+springboot,topic+queue模式

一.maven中添加activemq依赖:        &lt;!-- activemq --&gt;        &lt;dependency&gt;            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;            &lt;artifactId&gt;spring-boot-starter...
原创
179阅读
1评论
1点赞
发布博客于 3 年前

IDEA使用Maven插件打jar包

点击maven --&gt; 项目名 --&gt; Lifecycle --&gt; package,双击package即可生成jar包,jar包位置:项目根目录下的target文件夹下。 
原创
330阅读
0评论
0点赞
发布博客于 3 年前