自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 问答 (2)
  • 收藏
  • 关注

原创 jmap -heap pid 报错了

jdk版本不一致。

2024-02-27 19:52:42 235

原创 dockers安装rabbitmq

访问exchanges的时候Management API returned status code 500 -之后出现了一个问题,

2023-12-07 19:50:26 252

原创 Java基础复习 (一) Java集合

【代码】Java基础复习 (一) Java集合。

2023-11-01 10:19:42 110

原创 docker基础学习

安装 yum 源 docker#安装 docker 此处安装的是18版本的,还有19,20等等更高版本#启动#校验安装#出现以下的客户端及服务端信息就是安装成功了。

2023-10-03 01:08:18 758

原创 docker 运行mysql

启动新容器的命令:进入容器:登陆mysql。

2023-10-02 22:51:35 153

原创 MybatisPlus的使用

)// or如果返回类型是 IPage 则入参的 IPage 不能为null,因为 返回的IPage == 入参的IPage;如果想临时不分页,可以在初始化IPage时size参数传

2023-08-18 13:28:33 201

原创 SpringBoot整合Druid、Mybatis、MybatisPlus以及MybatisPlus代码生成器

1)引入jar包2)在application.yml中注意: initialization-mode: always 第一次用过之后注释掉,或者将其改成never用户名:admin/密码:123456(在配置文件中有)

2023-08-17 17:41:45 504

原创 List去重

【代码】List去重。

2023-08-15 21:50:37 56

原创 SpringCloudAlibaba之Sentinel(一)流控篇

为什么使用Sentinel,这是一个高可用组件,为了使我们的微服务高可用而生我们的服务会因为什么被打垮?一,流量激增 缓存未预热,线程池被占满 ,无法响应二,被其他服务拖垮,比如第三方的接口响应慢三,异常没有处理:缓存击穿,缓存穿透等等总之而言:系统缺乏可用性防护,没有容错机制,尤其是针对流量的防护会降低服务的可用性服务雪崩:首先是积分系统服务挂掉了,一个系统不可用,导致整个微服务系统都不可用限制流量熔断。

2023-08-03 13:45:48 1042

原创 SpringCloudAlibaba之Nacos服务的发现与注册中心(二)配置

在nacos中的雪崩保护和阈值(0~1)与spring.cloud.nacos.discovery.ephemeral这个配置有关ephemeral为false,永久实例epheme为true,临时实例(默认)健康实例数/总实例数

2023-08-03 09:41:51 302

原创 SpringCloudAlibaba之Nacos服务的发现与注册中心(一)

在windows上搭建:下载nacos ,我在本地下载的是2.1.0解压:进入nacos目录>bin目录找到startup.cmd文件,用记事本打开:修改其模式为standalone单机模式,之后保存文件,再双击startup.cmd出现以下,启动成功访问注意:nacos安装之前先安装jdk,并且配置好环境变量JAVA_HOME,JD的版本需要在1.8+,如果不安装好或者皮质好,会各种报错用户名/密码:nacos/nacos。

2023-08-03 08:30:59 149

原创 SpringCloudAlibaba之Nacos配置中心

注意:Data ID和项目名称相同才能读取到配置,Data ID也输入order-nacos。bootstrap.yml中就不再指定项目名称了。

2023-08-02 16:06:43 243

原创 ElasticSearch学习之ElasticSearch快速入门实战

1.先“分词”2.倒排索引(前提是分词)ElasticSearch官网地址:欢迎来到 Elastic — Elasticsearch 和 Kibana 的开发者 | Elastic。

2023-07-31 16:20:36 1037

原创 SpringCloudAlibaba之整合openFeign

对应服务提供者的controller的代码。

2023-07-29 20:07:29 568

原创 SpringCloudAlibaba之Ribbon

在@ComponentScan能扫到的范围外写一个类:(注意:是扫描范围之外)Ribbon是nacos自带的负载均衡器,属于客户端的负载均衡。但是在Spring高级版本中让LoadBalancer替代了。本人用的是2.1.0的nacos,ribbon还没有被替换。在配置类中:@LoadBalanced。在代码中怎么配置呢?

2023-07-29 17:31:12 722

原创 常见linux命令

永久关闭防火墙(禁用开机自启)下次启动,才生效:systemctl disable firewalld;永久开启防火墙(启用开机自启)下次启动,才生效:systemctl enable firewalld。暂时关闭防火墙的命令:systemctl stop firewalld;暂时开启防火墙:systemctl start firewalld。查看防火墙状态的命令:systemctl status firewalld 或者 firewall-cmd --state。

2023-07-23 13:21:48 68

原创 xxl-job分布式任务调度器的学习

先看一下原生的任务调度器定时任务调度器在什么场景下使用呢?房贷车贷的还款,花呗借呗白条的还款等等这种参加定时活动的场景。原生的任务调度器有什么弊端呢?1.在分布式环境下,每个应用都配一个任务调度器的话那么执行多次;2.如果任务执行失败了,不能重试;执行异常了,不能报警;3.重新配置了任务的话,必须要重启应用 等等。所以需要选择一种机制进行定时调度,那就选择xxl-job,是中国人开发,完整的中文文档,低门槛,易于管理。这里选择GITEE下载,下载到本地的代码中有sql,doc,源码等等,

2023-07-22 11:54:43 186

原创 日常代码优化(一)

今天在做项目的时候遇到了很平常的一个功能——新增一条商品数据,但是这条数据字段很多,与之有关系的还有很多其他表中的信息,是一对多的关系。其中的这几个List操作都是需要:1,遍历的每条数据中加入pproductId。写的视乎就不是很满意了,但是先完成这个功能也很重要。想一想可不可以把这样的操作提出来呢?怎么才能把代码写好呢?

2023-07-13 16:01:28 203

原创 关于hutool 的使用

Hutool — 🍬A set of tools that keep Java sweet.Hutool参考文档

2023-07-12 15:23:47 71

原创 并发容器(三)BlockigQueue

2.LinkedBlockingQueue 底层是由链表实现的,锁的粒度更细,但是占用的内存更大。1.ArrayBlockingQueue是最简单的一种阻塞队列,底层是由数组实现。3.SynchronousQueue这是一个很有意思的队列,不存储数据。当移除元素的时候takeLock和putLock一起加。* 每个put 必须等待一个 take, 反之亦然。* 更像是一手交钱,一手交货。

2023-07-11 09:09:19 65

原创 Redis专题学习(一)Redis核心数据结构实战与高性能原理剖析

redis中有五种基本的数据结构;来看看 这5中基本数据类型的基本使用和应用string是最常见和最基本的数据结构set key value // 存入字符串键值对mset key value [key value ...] // 批量存入字符串键值对get key //获取一个字符串的键值mget key [key ... ] //批量获取字符串的键值del key [key...] 删除一个(多个)键expire key senconds //设置一个键的过期时间 单位为秒。

2023-07-10 09:51:03 397

原创 并发容器(二)ConcurrentHashMap

在JDK1.8之前,ConcurrentHashMap使用了自旋+cas+synchronized关键字,在哈希冲突的时候,数组的数量大于64,链表的数量大于8的时候转换成红黑树的结构,不过这个是千万万分之六的概率,也就是说转换成红黑树的概率是很小的。在JDK1.7之前,ConcurrentHashMap使用了Segments数组+HashEntry数组+链表的方式实现。提到ConcurrentHashMap都能想到啥?这里有个很重要的思想:分段锁的思想。

2023-07-09 16:40:42 122

原创 并发容器(一)CopyOnWriteArrayList

同步容器:Vector,HashTable,SynchronizedList是线程安全的,因为里面加了synchronized,所以这样的容器也叫同步容器,这样的容器在高并发的情况下性能会很低,相当于并发的线程串行化执行了。以add(o)方法为例,看看源码:add属于写操作,是需要上独享锁的,这里的锁可能根据jdk版本的不同而不同,jdk11用的是synchronized关键字, jdk8用的是可重入锁。我们知道,ArrayList,LikedList,HashMap都是现成不安全的容器。

2023-07-05 21:54:13 151

原创 Mysql中IP地址如何在数据库中存储

如果用字符串来存储的话呢,最短是(0.0.0.0)是7个字符,最长是(255.255.255.255)15个字符,在mysql中,还要额外的一个字节来存储字符串的长度,是为了让数据库准确的跟踪列里有多少条数据。在Mysql中,当存储ipv4地址的时候,应该使用32位的无符号(int unsigned)来存储ip地址,而不是使用字符串,用int unsigned类型存储,ip地址是由32位2进制数组成,也就是4个字节长的整数。用无符号的32位整数存储,不要用字符串存储ip。

2023-07-05 13:25:13 1154 1

原创 深入学习单例设计模式

保证一个类只有一个实例,并且提供一个全局访问点使用的场景:重量级的对象、不需要多个实例,及我们想复用的对象,如线程池,数据库连接池等 等。Spring中的IOC容器是单例对象,JDK的Runtime也是单例对象。

2023-06-28 11:10:37 524

原创 学习AQS

JUC包中 的很多同步器如ReentrantLock、Semaphore、CountDownLatch等等都是有一些基础的共同的行为,比如:等待队列、条件队列、独占获取、共享获取等等,这些抽象行为就被封装成一个抽象类,就是AbstractQueuedSynchronizer(抽象队列同步器)。一般是通过一个内部类Sync继承 AQS将同步器所有调用都映射到Sync对应的方法看图,抽象类AbstractQueuedSynchronizer的实现类几乎都是各种我们常见的JUC工具类中的内部类——各种Sync。

2023-06-26 09:34:45 334

原创 ReentrantLock实现生产者和消费者

java.util.concurrent类库中提供Condition类来实现线程之间的协调。调用Condition.await() 方法使线程等待,其他线程调用Condition.signal() 或 Condition.signalAll() 方法唤醒等待的线程。注意:调用Condition的await()和signal()方法,都必须在lock保护之内。

2023-06-25 13:37:36 102

原创 用synchronized实现一个简单的生产者和消费者

2)如果条件不满足,那么调用对象的wait()方法,被通知后仍要检查条件。3)通知所有等待在对象上的线程。3)条件满足则执行对应的逻辑。等待方遵循如下原则。通知方遵循如下原则。

2023-06-25 13:05:00 111

原创 导致JVM内存泄露的ThreadLocal详解

多个线程共同操作一个共享变量,一定会引发并发问题,那么解决的方法就是对代码进行同步,比如synchronized关键字,但是ThreadLocal换了一种思路:让每个线程都拥有共享变量的副本,这样就不会引发多线程并发问题了。类中有一个静态内部类ThreadLocalMap,这个Map就是用来存储线程局部变量数据的,底层是一个Entry的数组,注意这个Entry的键 是一个弱引用,而且键类型是。虚拟机栈中的栈帧会不断的出栈,而且当一个任务运行结束后,虚拟机栈会销毁, 那么下图中的引用就没有了。

2023-06-21 17:46:38 1419 1

原创 学习Spring之声明式事务

事务底层是用AOP实现的,加上@Transactional注解之后,会依据动态代理创建一个子类,进而会将这个方法作为切入点,切面就是之前编程式事务的内容,在要执行的方法前后加上事务的逻辑commit和rollback,设计到了跨方法,将conn放入ThreadLocal中。可重复读 repeatable read (其实是上了一个行锁)事务1开始了还没结束 ,读取表数据,这时候事务2修改了表数据并且已经提交,那么事务1在这个事务中是查不到的,但是事务1能查询到事务2已经提交的增加的数据,这就是幻影读。

2023-06-21 14:13:51 557

原创 Mybatis多表关联查询

用了MybatisPlus之后,感觉自己写sql的机会不多,但是一些多表关联还是需要自己写的。今天复习一下mybatis中的多表关联查询建两个简单的表:emp员工表dept部门表员工:部门=多:1部门:员工=1:多如果项目中有多对多的关系,需要引入中间表,比如rbac中的用户角色表就是多对多的关系。

2023-06-20 23:55:56 7567

原创 复习并发编程的基础知识之线程池及线程池的核心线程数设置

workQueue:the queue to use for holding tasks before they are executed.这个队列用于存放任务,什么样的任务呢?在这些任务被执行之前的任务。也就是说,任务没执行的时候都放在这个阻塞队列中。unit:和keepAliveTime成对出现,存活时间的单位。其中线程池的几个重要参数是面试中经常被问的内容。threadFactory:线程工厂。线程池中的线程对象–》银行的服务窗口。在java中我们在使用线程池的时候,handler:拒绝策略。

2023-06-15 09:25:56 1979 2

原创 复习并发编程的基础知识(二)

同步:一些敏感的数据(比如共享的需要修改的资源)不允许被多个线程同时访问,此时就是用同步访问技术,保证数据在任何同一时刻,最多有一个线程可以访问,以保证数据的完整性。但是sleep()和yield()方法都不会释放锁资源。2.Runnable(Ready和Running)正常情况下,run方法执行结束了就会释放锁。两种方式:1,同步代码块的方式。wait()方法也会释放锁。

2023-06-12 21:35:49 446

原创 复习并发编程的基础知识(一)

我们在启动一个java进程的时候,main()是主线程,在main()方法中又启动了子线程,当主线程运行结束了不意味着进程就结束了,所有线程结束了进程才结束。如下图程序中,当运行该程序的时候,控制台输入jconsole,可以查看线程的情况,当main()方法执行完成之后会退出,Thread-0会继续执行。底层是调用了start0()方法,这个方法是native方法,即本地方法,底层是C或者C++实现的,是JVM来调用的,真正实现了多线程。守护线程服务于用户线程,当用户线程结束的时候,守护线程也结束了。

2023-06-12 20:06:09 490

原创 CentOS 7安装docker 及docker 不能被外网访问的问题

以下是下载最新的docker的方式:对于 CentOS 系统:sudo yum install -y yum-utils device-mapper-persistent-data lvm22.设置 Docker 的存储库:3. 安装 Docker:4.启动 Docker 服务:5.验证 Docker 是否正确安装,运行以下命令检查 Docker 版本:随机启动。

2023-06-09 21:46:01 3055

原创 死信队列小结

死信队列

2023-06-09 15:11:27 1483

原创 Vue路由到新的页面,页面的名称需要改变

如下图:在页面中点击“属性列表”和“参数列表”的时候,要路由到新的页面,之后页面要显示对应的按钮名称,也就是说这个路由地址的名称是动态的。

2023-06-09 14:34:35 1844

原创 activeMQ持久化报错的问题

我本地用的是mysql8.0以上,记得要在lib目录中加入响应的jar包。activeMQ持久化,启动activeMQ报错,其中useSSL=false一定要加上,在active.xml中。

2023-04-23 11:11:22 586

原创 Mybatis逆向工程

Mybatis逆向工程

2023-03-17 09:45:42 202

原创 打印异常栈信息

打印异常栈信息

2023-03-15 10:21:16 89

Lombok快速入门及使用详情

Lombok快速入门及使用详情

2023-08-03

MybatisPlus学习资料

MybatisPlus学习资料

2023-07-17

01-Redis命令参考手册完整版.pdf

01-Redis命令参考手册完整版.pdf

2023-07-10

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

TA关注的人

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