- 博客(52)
- 资源 (1)
- 收藏
- 关注
原创 麒麟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
1220
原创 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
217
原创 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
203
原创 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
234
原创 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
168
原创 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
109
原创 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
585
原创 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
109
原创 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
356
原创 JVM堆参数调整
JVM垃圾收集(Java Garbage Collection)以JDK1.8为例Java7模型Java8模型在Java8中,永久代已经被移除,被一个成为元空间的区域所取代。元空间的本质和永久代类似。元空间与永久代之最大的区别在于:永久代使用的JVM的堆内存,但是java8以后的元空间并不在虚拟机中而是在使用本机物理内存。因此,默认情况下,元空间的大小仅受本地内存限制。类的元数据放入native memory,字符串池和类的静态变量放入java堆中,这样可以加载多少类的元数据就不再由Ma
2021-07-23 11:10:22
305
4
原创 JVM永久代
实际而言,方法区(Method Area)和堆一样,是各个线程共享的内存区域,它用于存储虚拟机加载的:类信息+普通常量+静态常量+编译器编译后的代码等等,虽然JVM规范将方法区描述为堆的一个逻辑部分,但它却还有一个别名叫做Non-Heap(非堆),目的就是要和堆分开。对于HotSpot虚拟机,很多开发者习惯将方法区称之为“永久代(Parmanent Gen)”但严格本质上说两者不同,或者说使用永久代来实现方法区而已。永久代是方法区(相当于是一个接口interface)的一个实现,jdk1.7的版本中,已.
2021-07-23 09:37:01
1499
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
263
原创 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
129
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
89
原创 JVM的Stack栈
重点:栈管运行,堆管存储!程序 = 算法 + 数据结构(大学里讲的)程序 = 框架 + 业务逻辑(工作总结的)Stack栈栈也叫栈内存,主管Java程序的运行,实在线程创建时创建,它的生命周期是跟随线程的生命期,线程结束栈内存也就释放,对于栈来说不存在垃圾回收问题,只要线程一结栈就Over,生命周期和线程一致,是线程私有的。8种基本类型的变量+对象的引用变量+实例方法都是在函数的栈内存种分配。栈存储什么?栈帧中主要保存3类数据:本地变量(Local Variables):输入参数和输出参数以
2021-07-22 11:00:51
118
原创 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
278
原创 JVM的类加载器
JVM的位置JVM是运行在操作系统之上的,它与硬件没有直接的联系JVM体系的结构概览类装载器ClassLoader负责加载class文件,class文件在文件开头有特定的文件标示,将class文件字节码内容加载到内存中,并将这些内容装换成方法区中的运行时的数据结构并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定重点:模板一个实例N个类装载器ClassLoader2虚拟机自带的加载器启动类加载器(Bootstrap)C
2021-07-20 10:52:34
91
原创 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
146
原创 JUC的集合类不安全的问题
故障现象程序产生java.util.ConcurrentModificationException异常导致原因缺失线程锁导致解决办法new Vector<>();new Collections.synchronizedList(new ArrayList<>());new CopyOnWriteArrayList<>();new CopyOnWriteArraySet<>();new ConcurrentHashMap<>
2021-07-16 15:33:13
119
原创 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
94
原创 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
94
原创 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
94
原创 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
98
原创 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
572
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
1395
原创 Vue 4.0以上版本创建工程
1:创建项目vue create vue_project备注:vue_project(项目名称)2:启动项目cd vue_projectyarn serve
2021-02-04 15:50:15
121
原创 GC常用算法、常见垃圾收集器
JVM怎么判断对象可以回收了?1,对象没有引用2,作用域发生未捕获异常3,程序在作用域正常执行完毕4,程序执行了System.exit()5,程序发生意外终止(被杀进程等)JVM怎么定位是否为垃圾?两种算法:引用计数法、可达性算法引用计数算法:实际上是通过在对象头中分配一个空间来保存该对象被引用的次数。如果该对象被其它对象引用,则它的引用计数加一,如果删除对该对象的引用,那么它的引用计数就减一,当该对象的引用计数为0时,那么该对象就会被回收。存在缺点:出现循环引用问题。可达性
2020-10-14 14:50:42
314
原创 并发编程:第一篇
进程与线程的区别程序由指令和数据组成,由于这些指令需要运行,数据需要进行读写操作,就必须将指令加载至CPU以及数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理IO的,比方说:当一个程序被执行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。进程就可以视为程序的一个实例。大部分程序可以同时运行多个实例进程(例如记事本、画图、浏览器等),也有的程序只能启动一个实例进程(例如网易云音乐、360安全卫士等)。一个进程可以划分成多个线程。一个线程就可以认
2020-09-23 10:45:44
316
原创 MOTT消息协议的学习
MOTT消息协议的介绍MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。MOTT消息服务器的搭建第一步:将安装包拷贝到服务器(Centos 7.5+)下,给执行脚本赋给执行权限第二步:修改mosquitto.conf文件的bind_address属性
2020-08-21 09:34:33
1527
原创 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
399
原创 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
354
原创 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
2869
原创 idea快速批量启动微服务模块技巧
第一步:配置工程下的.idea文件夹下的workspace.xml在workspace.xml文件中在标签<component name="RunDashboard">里面添加configurationTypes配置<option name="configurationTypes"> <set> <option value...
2020-01-14 16:27:15
2388
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人