自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 EasyExcel多sheet页导入、导出、导出图片

1.EasyExcel多sheet页导出。

2024-05-11 15:41:13 390

原创 mysql B树、B+树、聚集索引、非聚集索引、索引覆盖、回表

具有以下性质:左子树的键值小于根的键值,右子树的键值大于根的键值。

2023-09-07 20:28:10 165

原创 Redisson 实现分布式锁、Ratelimiter 实现接口限流

【代码】Redisson 实现分布式锁。ratelimiter实现接口限流

2023-09-06 16:21:48 363

原创 分布式事物解决方案 2PC、3PC、TCC、本地消息表、消息事务

常见的分布式事务包括 2PC、3PC、TCC、本地消息表、消息事务、最大努力通知。

2023-09-03 19:17:24 141

原创 springboot集成rocketmq,实现普通消息、顺序消息、延迟消息、事物消息

把所有的消费者经过 Hash 计算分布到 Hash 环上,对所有的 MessageQueue 进行 Hash 计算,找到顺时针方向最近的消费者节点进行绑定。

2023-09-03 01:12:52 298

原创 springcloudstream实现 rocketmq消息发送

【代码】springcloudstream实现 rocketmq消息发送。

2023-08-31 16:22:20 384

原创 springboot引入rabbitmq实现延迟队列,普通队列

springboot引入rabbitmq实现延迟队列,普通队列

2023-08-31 11:04:24 76

原创 Linux安装redis

1、在Redis版本库: 可根据自己的需求选择下载对应的版本,然后直接下载2.将下载文件上传到/opt 目录3、在Linux中, 将redis压缩包解压到指定的目录,这里是将redis解压到/opt文件夹下,可以使用-C指定到解压的文件夹4、解压后当前的目录出现一个redis-7.0.0的目录,就是我们刚刚解压的目录 7、编译成功后,输入:make install ,自此redis就安装成功了。启动redis服务:(三种启动方式) 1)前台启动:在任何目录下执行 redis-s

2023-01-10 11:33:35 83

原创 SpringBoot整合RabbitMQ(二)

MQ全称为Message Queue,即消息队列。“消息队列”是在消息的传输过程中保存消息的容器。它是典型的:生产者、消费者模型。生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,这样就实现了生产者和消费者的解耦。

2023-01-10 10:48:02 140

原创 RabbitMQ Linux安装教程(一)

官网RabbitMQ是一个开源的遵循AMQP协议实现的基于Erlang语言编写,支持多种客户端(语言),用于在分布式系统中存储消息,转发消息,具有高可用高可扩性,易用性等特征。

2022-08-31 17:42:18 567

原创 linux系统下常规命令操作

输入ip查询命名 ip addr 也可以输入 ifconfig查看ip,但此命令会出现3个条目,centos的ip地址是ens33条目中的inet值。执行:chmod a+x /usr/local/maven/apache-maven-3.5.4/bin/mvn。这种错误是权限问题,只需设置好权限就OK。.........

2022-08-30 16:35:53 317

原创 Docker 安装 RabbitmQ 集群

RabbitMQ 有三种模式:单机模式,普通集群模式,镜像集群模式。单机模式即单独运行一个 rabbitmq 实例,而集群模式需要创建多个 rabbitmq实例第一种 普通集群模式:rabbitmq集群与其他集群有些不同,rabbitmq集群同步指的是复制队列,元数据信息的同步,即同步的是数据存储信息;消息的存放只会存储在创建该消息队列的那个节点上。并非在节点上都存储一个完整的数据。在通过非数据所在节点获取数据时,通过元数据信息,路由转发到存储数据节点上,从而得到数据。第二种 镜像集群模式。...

2022-08-27 18:12:08 736

原创 docker安装jdk+nacos+mysql+redis+rabbitmq+RocketMq等三十多种常用容器,并部署/集成jenkins自动化部署jar包项目

docker安装jdk+nacos+mysql+redis+rabbitmq+RocketMq等三十多种常用容器,并部署/集成jenkins自动化部署jar包项目

2022-08-25 16:02:46 1805 1

原创 Jenkins自动化部署实现原理及部署到SSH与Docker

1.Jenkins自动化部署实现原理2.jenkins自动化不是配置3.jenkins自动化部署到远程服务器4.jenkins自动化部署到Docker

2022-08-23 22:42:11 1293

原创 jenkins 安装以及Jenkins无法在界面关闭跨站请求伪造保护(CSRF)解决403以及如何关闭Jenkins杀掉所有衍生进程

1.jenkins安装2.高版本Jenkins无法在界面关闭跨站请求伪造保护(CSRF)解决4033.Jenkins杀掉所有衍生进程导致无法启动子进程的解决办法

2022-08-22 09:45:32 1623

原创 springboot自定义starter

启动器的核心其实就是自动配置类,在自动配置源码分析的章节已经介绍过,AutoConfigurationImportSelector是从spring.factories中加载自动配置类,因此只需要将自定义的自动配置类设置在该文件中即可。该注解标志这是一个配置类,「自动配置类可以不加该注解」。这个配置也是经常使用了,使得指定的属性配置生效。一般自动配置类都需要从全局属性配置中读取自定义的配置,这就是一个开关。1.准备自己的自动配置类}2.将自动配置类设置在spring.factories。...

2022-07-27 11:17:22 367

原创 spring事物之事务传播机制(2)

事务的传播机制事务的传播性一般用在事务嵌套的场景,比如一个事务方法里面调用了另外一个事务方法,那么两个方法是各自作为独立的方法提交还是内层的事务合并到外层的事务一起提交,这就是需要事务传播机制的配置来确定怎么样执行。...

2022-07-17 22:02:45 866

原创 java线程池ThreadPoolExecutor

1,这里记住最核心的类是ThreadPoolExecutor,在ExecuorService中提供了newSingleThreadExecutor,newFixedThreadPool,newCacheThreadPool,newScheduledThreadPool四个方法,这四个方法返回的类型是ThreadPoolExecutor。3,这里Executor是接口,ExecutorService也是接口并继承了Executor.Executors是Executor的工具类,通过Executors.new.

2022-06-08 11:20:25 692

转载 布隆(Bloom Filter)过滤器

参考布隆(Bloom Filter)过滤器——全面讲解,建议收藏_李子捌的博客-CSDN博客_布隆过滤器原理:布隆过滤器底层是一个二进制数组【[0,0,0,0,0,0,0,0,0,0,1,1,1,1]】+多个无偏hash函数1.通过对元素进行hash(可以多个)算法得到一个(多个)数组的下标,把对应位置标为12.对元素进行比对,如果返回下标都为1则可能存在该元素,如果返回0,则一定不存在3.问题: 3.1布隆过滤器的缺点:可能会误判,原因hash冲突...

2022-05-23 17:42:05 1372

转载 使用redis实现分布式锁和保证接口幂等性(自定义注解 + AOP)

参考 使用redis实现分布式锁和保证接口幂等性(自定义注解 + AOP)_an_zzzzz的博客-CSDN博客_redis分布式锁保证幂等性1.解决的问题由于项目里需要解决幂等性的问题,所以本文介绍使用 redis 分布式锁机制解决接口幂等性问题。解决幂等性问题的话,首先要知道幂等性是什么意思哈。幂等性:通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次分布式锁:如果是单机情况下(单JVM),线程之间共享内存,只要使用线程锁就可以解决并发问题。如果是分布式..

2022-05-23 17:08:24 2611

原创 面试题总结

面试题总结

2022-05-22 22:54:10 110

原创 深入理解java虚拟机jvm之类加载机制和类加载器(ClassLoader)(5)

深入理解java虚拟机jvm之类加载机制和类加载器(ClassLoader)

2022-05-22 15:57:11 127

原创 windows安装Redis并部署成服务

windows下安装Redis并部署成服务 - 丁国丰 - 博客园一:下载下载地址:windows版本: https://github.com/MSOpenTech/redis/releases Linux版本: 官网下载: http://www.redis.cn/ git下载 https://github.com/antirez/redis/releases我们现在讨论的是windows下的安装部署,目前windows下最新版本是:3.2.100。下载地址,提供多种下载内容,

2022-05-07 10:00:24 542

原创 Java中常用的设计模式

文章转载参考1:智慧演绎,无处不在_终点_CSDN博客-J2SE,Java基础研究,经验领域博主文章转载参考2:Java中常用的设计模式_Superme-CSDN博客_java设计模式目录一、什么是设计模式二、设计模式的六大原则三、设计模式的三大类四、Java的二十三种设计模式1、单例模式(Singleton)设计模式(Design Patterns)一、什么是设计模式设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验

2022-05-07 09:49:08 4134

转载 nginx安装,正向代理、反向代理、负载均衡

1. 准备工作Linux系统下nginx的离线安装nginx的离线安装包下载nginx离线安装包官网下载地址:链接: nginx: downloadMainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版Stable version:最新稳定版,生产环境上建议使用的版本Legacy versions:遗留的老版本的稳定版这里下载的是linux版本的最新稳定版本nginx-1.18.0.tar.gz2.安装ng...

2021-12-09 23:45:00 141

原创 linux常用命令

查询环境变量which javaecho $JAVA_HOME查询进程 ps -ef |grep tomcat kill -9 1234查询监听端口 netstat -tulpen查询监听端口 netstat -tunlp |grep :8080查询监听端口 netstat -tnlup |grep nginx查询监听端口 netstat -tln查找tomcat端口是否被占用 netstat -an |grep 8080开启服务器上的ssh服务,可通过 netsta

2021-12-08 20:30:00 88

原创 深入理解java虚拟机jvm之GC垃圾回收(2)

最近看了一些java基础、博客以及《深入理解java虚拟机》等文章,生活之余就想着记录下来,也算是对知识的总结。=======================================================================本系列文章将从,jvm的基本概念、GC、优化配置,线程安全等方面阐述。=======================================================================本人这里只提供自己学习的思路,.

2021-12-08 15:28:52 154

原创 深入理解java虚拟机jvm之基本介绍(1)

最近看了一些java基础、博客以及《深入理解java虚拟机》等文章,生活之余就想着记录下来,也算是对知识的总结。本文参考未名pdf,不知原创地址,仅供个人学习所用,如果侵权,请联系本文作者!=======================================================================本系列文章将从,jvm的基本概念、GC、优化配置,线程安全等方面阐述。================================================

2021-12-08 11:39:49 184

原创 深入理解java虚拟机jvm之线程安全(4)

最近看了一些java基础、博客以及《深入理解java虚拟机》等文章,生活之余就想着记录下来,也算是对知识的总结。 本文参考未名pdf,不知原创地址,仅供个人学习所用,如果侵权,请联系本文作者!======================================================================= 常常听说线程安全,它到底是什么! 要认识java线程安全,必须要了解两个主要的点:java的内存模型,...

2021-12-06 17:34:38 278

原创 Spring事物

本文将按照声明式事务的五个特性进行介绍:事务传播机制 事务隔离机制 只读 事务超时 回滚规则Spring事务传播机制事务的特性原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。 一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被破坏。 隔离性(Isolation):可能有许多事务会同时处理相同的数据,因此每

2021-12-02 17:36:16 72

原创 分库分表(垂直分库,垂直分表,水平分库,水平分表)

分库分表(高效,解耦,扩展,维护,性能,减少了磁盘 IO)原因MySQL 底层是通过数据页存储的,一条记录占用空间过大会导致跨页另外数据库以行为单位将数据加载到内存中,这样表中字段长度较短且访问频率较高,内存能加载更多的数据,命中率更高,减少了磁盘 IO,从而提升了数据库性能。为什么这么做数据库分布式核心内容无非就是数据切分 (Sharding),以及切分后对数据的定位、整合。数据切分就是将数据分散存储到多个数据库中,使得单一数据库中的数据...

2021-12-02 17:13:06 1633

转载 java循环栅栏CyclicBarrier 使用详解

1. CyclicBarrier 是什么?从字面上的意思可以知道,这个类的中文意思是“循环栅栏”。大概的意思就是一个可循环利用的屏障。它的作用就是会让所有线程都等待完成后才会继续下一步行动。举个例子,就像生活中我们会约朋友们到某个餐厅一起吃饭,有些朋友可能会早到,有些朋友可能会晚到,但是这个餐厅规定必须等到所有人到齐之后才会让我们进去。这里的朋友们就是各个线程,餐厅就是 CyclicBarrier。2. 怎么使用 CyclicBarrier...

2021-12-02 16:15:20 3076

转载 java是怎么实现共享锁及CountDownLatch解析

本篇主要通过CountDownLatch的学习来了解java并发包中是如何实现共享锁的。CountDownLatch使用解说CountDownLatch是java5中新增的一个并发工具类,其使用非常简单,下面通过伪代码简单看一下使用方式:这是一个使用CountDownLatch非常简单的例子,创建的时候,需要指定一个初始状态值,本例为2,主线程调用 latch.await时,除非latch状态值为0,否则会一直阻塞休眠。当所有任务执行完后,主线程唤醒,最终执行打印动作。以上只是一个.

2021-12-02 15:41:05 352

原创 Java多线程以及线程安全,通俗易懂

线程 | ProcessOn991 | 思维导图(新) | ProcessOn线程 | ProcessOn991 | 思维导图(新) | ProcessOn一.实现线程的几种方式 1.继承Thread类创建线程 2.实现Runnable接口创建线程 3.Callable,Future,可以有返回结果的线程 4.ThreadPoolExecutor线程池类//继承Thread public class MyT...

2021-12-02 15:07:22 217

原创 在JS中创建HashMap对象

function HashMap(){//定义长度var length = 0;//创建一个对象var obj = new Object();/*** 判断Map是否为空*/this.isEmpty = function(){return length == 0;};/*** 判断对象中是否包含给定Key*/this.containsKey=function(key){return (key in obj);};/*** 判断..

2021-12-02 10:21:38 1147

原创 List、Map、Set

一.List、Map、Set简介List下有ArrayList,Vector,LinkedList Set下有HashSet,LinkedHashSet,TreeSet Map下有Hashtable,LinkedHashMap,HashMap,TreeMap1.List、Set1.List允许多个null对象,多个null值2.Set 允许多个null对象,一个null值3.HashSet和LinkHashSet允许存在null数据,但是TreeSet中...

2021-12-02 10:02:03 189

转载 哈希表是什么

一.什么是哈希表​散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数(哈希函数),存放记录的数组称做散列表。 ​二.哈希表本质哈希表其实是一种数据结构哈希表本质上是个数组,底层实现是在数组上然后在加工, 称 哈希表。1.实现哈希表的方式分为:数组+链表数组+二叉树2....

2021-12-01 18:18:29 10104 2

转载 RocketMQ 基本知识介绍、下载、安装、测试、集群

源码rocketmq/docs/cn at master · apache/rocketmq · GitHub一、 初始RocketMQ1. 介绍RocketMQ是一款分布式、队列模型的消息中间件,是阿里巴巴集团自主研发的专业消息中间件,借鉴参考了JMS规范的MQ实现,更参考了优秀的开源消息中间件KAFKA,实现了业务消峰、分布式事务的优秀框架。 其底层代码编写清晰优秀,采用Netty NIO框架进行数据通信 摒弃了Zookeeper,内部使用更轻量级的NameServer进行网络路由..

2021-12-01 11:01:21 787

空空如也

空空如也

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

TA关注的人

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