自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

原创 Redis高级篇之布隆过滤器

布隆过滤器

2023-07-26 08:58:55 236

原创 Redis7.0版本集群

redis7.0集群环境搭建

2023-07-25 13:53:01 344

原创 PMP成本管理

PMP成本管理

2022-03-09 09:39:09 178

原创 PMP进度管理

PMP进度管理

2022-03-09 09:19:09 363

原创 PMP范围管理

PMP范围管理

2022-03-07 09:07:39 123

原创 PMP整合管理

PMP整合管理

2022-03-04 09:55:14 326

原创 麒麟3.2操作系统安装达梦8数据库

第一步:下载麒麟3.2操作系统对应达梦8的镜像源千万别下载错了,不然坑太多了,编译都是问题!!!第二步:挂载镜像服务器上创建文件夹mkdir dm上传镜像到服务器挂载镜像mount -o loop dm8_20210712_x86_rh6_64_ent_8.1.2.38_pack1.iso /mnt/dm8/挂载完成cd /mnt/dm8/第三步:数据库命令安装./DMInstall.bin -i数据库初始化注意:chmod 777 /opt/dmdbms/用户

2021-08-17 13:41:51 977

原创 SpringCloud整合Sentinel流控熔断降级

第一步:pom.xml引入依赖<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>第二步:再每个服务模块开启请求日志等信息<dependency> <groupId>org.spring

2021-08-12 10:03:16 166

原创 SpringCloud整合Gateway网关

第一步:pom.xml添加依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId></dependency>第二步:application.yml配置网关路由spring: cloud: gateway: routes:

2021-08-12 08:47:55 147

原创 SpringCloud整合Nacos作为配置中心

第一步:pom.xml的依赖配置<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>注意版本:2.1.0.RELEASE对应,Spring-Boot-Starter-Parent:2.3.5.RELEASE版

2021-08-11 16:18:26 194

原创 SpringCloud整合OpenFeign远程调用

第一步:引入OpenFeign依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency>第二步:编写接口告诉SpringCloud,该接口需要远程调用服务端:@RequestMapping("/coupon/cou

2021-08-11 14:44:57 139

原创 SpringCloud整合Nacos作为服务中心

下载Nacos安装包https://nacos.io/zh-cn/第一步:pom.xml配置依赖<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>第二步:application.yml配置spr

2021-08-11 14:10:01 75

原创 SpringCloud整合Mybatis-Plus

官网地址https://mp.baomidou.com/第一步:pom.xml添加依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3</version></dependency>第二步:Main主函数添加

2021-08-11 08:53:19 536

原创 JMM加载过程

静态代码块 > 构造块 > 构造方法静态代码块只加载一次package com.lichi;class CodeZY { public CodeZY() { System.out.println("Code的构造方法1111"); } { System.out.println("Code的构造块2222"); } static { System.out.println("Code的静态代码块333.

2021-08-02 09:08:01 81

原创 GC引用计数法

GC是什么?分代收集算法次数上频繁收集Young区次数上较少收集Old区基本不动元空间GC算法总体概述JVM在进行GC时,并非每次都是对上面三个内存区域一起回收的,大部分时候回收的都是指新生代。因此GC按照回收的区域又分了两种类型,一种是普通GC(minor GC),一种是全局GC(major GC or Full GC)Minor GC 和 Full GC的区别:普通GC(minor GC):只针对新生区域的GC,指发生在新生代的垃圾收集动作,因为大多数Java对象存活率都不高,所

2021-07-28 09:50:47 284

原创 JVM堆参数调整

JVM垃圾收集(Java Garbage Collection)以JDK1.8为例Java7模型Java8模型在Java8中,永久代已经被移除,被一个成为元空间的区域所取代。元空间的本质和永久代类似。元空间与永久代之最大的区别在于:永久代使用的JVM的堆内存,但是java8以后的元空间并不在虚拟机中而是在使用本机物理内存。因此,默认情况下,元空间的大小仅受本地内存限制。类的元数据放入native memory,字符串池和类的静态变量放入java堆中,这样可以加载多少类的元数据就不再由Ma

2021-07-23 11:10:22 198 4

原创 JVM永久代

实际而言,方法区(Method Area)和堆一样,是各个线程共享的内存区域,它用于存储虚拟机加载的:类信息+普通常量+静态常量+编译器编译后的代码等等,虽然JVM规范将方法区描述为堆的一个逻辑部分,但它却还有一个别名叫做Non-Heap(非堆),目的就是要和堆分开。对于HotSpot虚拟机,很多开发者习惯将方法区称之为“永久代(Parmanent Gen)”但严格本质上说两者不同,或者说使用永久代来实现方法区而已。永久代是方法区(相当于是一个接口interface)的一个实现,jdk1.7的版本中,已.

2021-07-23 09:37:01 1386 2

原创 JVM对象生命周期与GC

S0 = fromS1 = tofrom区和to区,他们的位置和名分,不是固定的,每次GC后会交换GC之后又交换,谁空谁toJava堆从GC的角度还可以细分为:新生代(Eden区、From Survivor区和To Survivor区)和老年代。MinorGC的过程:(复制→清空→交换)1:Eden、SurvivorFrom复制到SurvivorTo,年龄+1首先,当Eden区满的时候会触发第一次GC,把还活着的对象拷贝到SurvivorFrom区,当Eden区再次出发GC的时候会扫描Ede

2021-07-23 09:10:56 194

原创 JVM的Heap堆

栈+堆+方法区的交互关系Person p1 = new Person()Person // 模板也就是大的Class在方法区里面p1 // 引用在Java栈里面new Person() // 在Java堆里面Head堆(Java7之前)一个JVM实例只存在一个堆内存,堆内存的大小是可以调节的。类加载器读取了类文件后,需要把类、方法、常变量放到堆内存种,保存所有引用类型的真实信息,以方便执行器执行。Young Generation Space 新生区 Young/NewTenure ge

2021-07-22 15:59:08 93 1

原创 JVM的TransferValue

TransferValuepackage com.lichi;/** * @author lichi * @create 2021-07-22 14:33 */public class TestTransferValue { public void changeValue1(int age) { age = 30; } public void changeValue2(Person person) { person.setName("

2021-07-22 15:10:27 63

原创 JVM的Stack栈

重点:栈管运行,堆管存储!程序 = 算法 + 数据结构(大学里讲的)程序 = 框架 + 业务逻辑(工作总结的)Stack栈栈也叫栈内存,主管Java程序的运行,实在线程创建时创建,它的生命周期是跟随线程的生命期,线程结束栈内存也就释放,对于栈来说不存在垃圾回收问题,只要线程一结栈就Over,生命周期和线程一致,是线程私有的。8种基本类型的变量+对象的引用变量+实例方法都是在函数的栈内存种分配。栈存储什么?栈帧中主要保存3类数据:本地变量(Local Variables):输入参数和输出参数以

2021-07-22 11:00:51 91

原创 JVM的Native Interface本地接口、PC寄存器、方法区

Native Interface本地接口本地接口的作用是融合不同的编程语言为Java所用,它的初衷是融合C/C++程序,Java诞生的时候,是C/C++横行的时候,要想立足,必须要有调用C/C++程序,于是就在内存中专门开辟了一块区域处理标记为native的代码,它的具体做法是Native Method Stack中登记native方法,在Execution Engine执行时加载native libralies。目前该方法使用的越来越少,除非是与硬件有关的应用,比如通过Java程序驱动打印机或者Jav

2021-07-22 10:01:11 232

原创 JVM的类加载器

JVM的位置JVM是运行在操作系统之上的,它与硬件没有直接的联系JVM体系的结构概览类装载器ClassLoader负责加载class文件,class文件在文件开头有特定的文件标示,将class文件字节码内容加载到内存中,并将这些内容装换成方法区中的运行时的数据结构并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定重点:模板一个实例N个类装载器ClassLoader2虚拟机自带的加载器启动类加载器(Bootstrap)C

2021-07-20 10:52:34 49

原创 JUC的八把锁解释

import java.util.concurrent.TimeUnit;class Phone { public static synchronized void sendEmail() throws Exception { TimeUnit.SECONDS.sleep(4); System.out.println("******sendEmail"); } public static synchronized void sendSMS()

2021-07-19 09:17:15 116

原创 JUC的集合类不安全的问题

故障现象程序产生java.util.ConcurrentModificationException异常导致原因缺失线程锁导致解决办法new Vector<>();new Collections.synchronizedList(new ArrayList<>());new CopyOnWriteArrayList<>();new CopyOnWriteArraySet<>();new ConcurrentHashMap<&gt

2021-07-16 15:33:13 74

原创 JUC的LambdaExperss

Lambda表达式口诀拷贝小括号,写死右箭头,落地大括号语法现象@FunctionalInterface:函数式接口: default、static可以定义多个/** * Lambda表达式口诀:拷贝小括号,写死右箭头,落地大括号 * 语法现象:@FunctionalInterface:函数式接口: default、static可以定义多个 * @author lichi * @create 2021-07-15 10:17 */ @FunctionalInterfacein

2021-07-16 10:11:40 65

原创 JUC编程可重入锁Lock

题目:三个售票员卖出30张票的问题在高内聚低耦合的前提下,我们采用:线程-操作-资源类,这种思想进行处理业务import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * 资源类 = 实例变量 + 实例方法 */class Ticket { private int number = 30; // 可重入锁 Lock lock = new R

2021-07-15 09:48:22 69

原创 Nacos服务提供者注册

第一步:创建SpringCloud项目进入IDEAFille右键project我这里使用的是创建好的SpringCloud的父子工程第二步:项目配置在pom.xml里面添加依赖<!--服务注册中心客户端--><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-disco

2021-07-14 13:52:06 72

原创 Nacos安装

第一步:下载安装包首先到nacos官网进行安装包的下载在这里我选择的是2.0.1的稳定版本第二步:启动 unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz cd nacos/bin ./startup.sh -m standalone备注:standalone:以单机版进行启动,默认是cluster集群模式启动http://IP地址:8848/nacos/默认端口:8848,用户名:naco

2021-07-14 13:24:37 63

原创 SpringSecurity集成OAuth2+JWT

项目整体文件结构:config:配置文件包entity:实体模型mapper:数据处理层service impl:接口实现层创建认证服务器类:AuthorizationServerConfigurationpackage com.lichi.auth.config;import com.lichi.auth.entity.CustomTokenEnhancer;import org.springframework.beans.factory.annotation.Autowired;

2021-07-06 16:55:16 510 1

原创 Supervisor离线安装教程

1、下载安装包安装包:supervisor_install_pack.tar.gz链接:https://pan.baidu.com/s/1kyD98QO5tIsZLPvVuVVbSg提取码:ytvk2、安装部署上传到centos服务器上面tar -zxvf supervisor_install_pack.tar.gzcd supervisor./install_supervisor.sh默认的安装路径在:/app/supervisor/配置信息cd etcvim supervi

2021-06-23 14:32:47 1265

原创 Vue 4.0以上版本创建工程

1:创建项目vue create vue_project备注:vue_project(项目名称)2:启动项目cd vue_projectyarn serve

2021-02-04 15:50:15 91

原创 Centos7防火墙命令

mysql索引:普通索引、唯一索引、主键索引、全文索引、组合索引回表:索引覆盖:最左匹配:索引下推:

2021-02-04 15:47:27 36

原创 GC常用算法、常见垃圾收集器

JVM怎么判断对象可以回收了?1,对象没有引用2,作用域发生未捕获异常3,程序在作用域正常执行完毕4,程序执行了System.exit()5,程序发生意外终止(被杀进程等)JVM怎么定位是否为垃圾?两种算法:引用计数法、可达性算法引用计数算法:实际上是通过在对象头中分配一个空间来保存该对象被引用的次数。如果该对象被其它对象引用,则它的引用计数加一,如果删除对该对象的引用,那么它的引用计数就减一,当该对象的引用计数为0时,那么该对象就会被回收。存在缺点:出现循环引用问题。可达性

2020-10-14 14:50:42 277

原创 并发编程:第一篇

进程与线程的区别程序由指令和数据组成,由于这些指令需要运行,数据需要进行读写操作,就必须将指令加载至CPU以及数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理IO的,比方说:当一个程序被执行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。进程就可以视为程序的一个实例。大部分程序可以同时运行多个实例进程(例如记事本、画图、浏览器等),也有的程序只能启动一个实例进程(例如网易云音乐、360安全卫士等)。一个进程可以划分成多个线程。一个线程就可以认

2020-09-23 10:45:44 289

原创 MOTT消息协议的学习

MOTT消息协议的介绍MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。MOTT消息服务器的搭建第一步:将安装包拷贝到服务器(Centos 7.5+)下,给执行脚本赋给执行权限第二步:修改mosquitto.conf文件的bind_address属性

2020-08-21 09:34:33 1078

原创 Mysql5.7防止误操作数据丢失恢复binlog学习

docker创建mysql容器mkdir -p /home/mysqldocker cp cdcbca2ad794:/etc/mysql/mysql.conf.d/ /home/mysql/docker cp cdcbca2ad794:/var/log /home/mysql/docker run -p 3306:3306 --name mysql_binlog -d -v /h...

2020-02-28 14:08:13 333

原创 Kubernates环境搭建

初始化启动命令kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.logcd /etc/kubernetes/pkimkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/conf...

2020-02-24 08:44:37 279

原创 Nacos在Docker环境下的集群部署

第一步:准备软件包git clone https://github.com/nacos-group/nacos-docker.git /software/nacos-docker安装docker-compose第二步:安装镜像cd nacos-docker/docker-compose -f example/cluster-hostname.yaml up 修改内存大小vi...

2020-01-19 16:41:39 2799

原创 idea快速批量启动微服务模块技巧

第一步:配置工程下的.idea文件夹下的workspace.xml在workspace.xml文件中在标签<component name="RunDashboard">里面添加configurationTypes配置<option name="configurationTypes"> <set> <option value...

2020-01-14 16:27:15 2314

Docker学习笔记.docx

Docker相关执行命令的个人笔记

2020-08-24

空空如也

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

TA关注的人

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