- 博客(42)
- 收藏
- 关注
原创 springcloud整合websocket
1.先全局忽略,然后通过ws:127.0.0.1:80/websocket/token/clientId访问时,传入token,在@Onopen时验证token有效性。2.全局验证,获取到token解析。2.配置Spring Cloud Gateway路由。EnableWebSocket开启websocket。3.配置WebSocketConfig。4.编写ServerEndpoint端点。
2024-09-24 16:50:57
802
原创 Shardingjdbc(1)SQLFeatureNotSupportedExcept: isValid,getObject with type,Can not update sharding key
3.可以发现,其中create_time被更新了,而sharding-jdbc只允许更新create_time字段的值必须和原有值一样,才不会报错,数据库存储的时 2022-07-10 15:59:53,最新时2022-07-10 15:59:53.0(变化了)(数据库设计字段位datetime类型,java为LocalDateTime )(不太明白为什么多了一个.0,大佬看到帮忙解释下)1.在使用sharding-jdbc分表中,本人采用了create_time作为分表字段,具体可参考下面地址详细解说!
2024-09-10 16:40:00
986
1
原创 分布式事物解决方案 2PC、3PC、TCC、本地消息表、消息事务
常见的分布式事务包括 2PC、3PC、TCC、本地消息表、消息事务、最大努力通知。
2023-09-03 19:17:24
176
原创 springboot集成rocketmq,实现普通消息、顺序消息、延迟消息、事物消息
把所有的消费者经过 Hash 计算分布到 Hash 环上,对所有的 MessageQueue 进行 Hash 计算,找到顺时针方向最近的消费者节点进行绑定。
2023-09-03 01:12:52
439
原创 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
126
原创 SpringBoot整合RabbitMQ(二)
MQ全称为Message Queue,即消息队列。“消息队列”是在消息的传输过程中保存消息的容器。它是典型的:生产者、消费者模型。生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,这样就实现了生产者和消费者的解耦。
2023-01-10 10:48:02
187
原创 RabbitMQ Linux安装教程(一)
官网RabbitMQ是一个开源的遵循AMQP协议实现的基于Erlang语言编写,支持多种客户端(语言),用于在分布式系统中存储消息,转发消息,具有高可用高可扩性,易用性等特征。
2022-08-31 17:42:18
671
原创 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
379
原创 Docker 安装 RabbitmQ 集群
RabbitMQ 有三种模式:单机模式,普通集群模式,镜像集群模式。单机模式即单独运行一个 rabbitmq 实例,而集群模式需要创建多个 rabbitmq实例第一种 普通集群模式:rabbitmq集群与其他集群有些不同,rabbitmq集群同步指的是复制队列,元数据信息的同步,即同步的是数据存储信息;消息的存放只会存储在创建该消息队列的那个节点上。并非在节点上都存储一个完整的数据。在通过非数据所在节点获取数据时,通过元数据信息,路由转发到存储数据节点上,从而得到数据。第二种 镜像集群模式。...
2022-08-27 18:12:08
811
原创 docker安装jdk+nacos+mysql+redis+rabbitmq+RocketMq等三十多种常用容器,并部署/集成jenkins自动化部署jar包项目
docker安装jdk+nacos+mysql+redis+rabbitmq+RocketMq等三十多种常用容器,并部署/集成jenkins自动化部署jar包项目
2022-08-25 16:02:46
2232
1
原创 Jenkins自动化部署实现原理及部署到SSH与Docker
1.Jenkins自动化部署实现原理2.jenkins自动化不是配置3.jenkins自动化部署到远程服务器4.jenkins自动化部署到Docker
2022-08-23 22:42:11
1439
原创 jenkins 安装以及Jenkins无法在界面关闭跨站请求伪造保护(CSRF)解决403以及如何关闭Jenkins杀掉所有衍生进程
1.jenkins安装2.高版本Jenkins无法在界面关闭跨站请求伪造保护(CSRF)解决4033.Jenkins杀掉所有衍生进程导致无法启动子进程的解决办法
2022-08-22 09:45:32
1765
原创 springboot自定义starter
启动器的核心其实就是自动配置类,在自动配置源码分析的章节已经介绍过,AutoConfigurationImportSelector是从spring.factories中加载自动配置类,因此只需要将自定义的自动配置类设置在该文件中即可。该注解标志这是一个配置类,「自动配置类可以不加该注解」。这个配置也是经常使用了,使得指定的属性配置生效。一般自动配置类都需要从全局属性配置中读取自定义的配置,这就是一个开关。1.准备自己的自动配置类}2.将自动配置类设置在spring.factories。...
2022-07-27 11:17:22
430
原创 spring事物之事务传播机制(2)
事务的传播机制事务的传播性一般用在事务嵌套的场景,比如一个事务方法里面调用了另外一个事务方法,那么两个方法是各自作为独立的方法提交还是内层的事务合并到外层的事务一起提交,这就是需要事务传播机制的配置来确定怎么样执行。...
2022-07-17 22:02:45
1010
原创 java线程池ThreadPoolExecutor
1,这里记住最核心的类是ThreadPoolExecutor,在ExecuorService中提供了newSingleThreadExecutor,newFixedThreadPool,newCacheThreadPool,newScheduledThreadPool四个方法,这四个方法返回的类型是ThreadPoolExecutor。3,这里Executor是接口,ExecutorService也是接口并继承了Executor.Executors是Executor的工具类,通过Executors.new.
2022-06-08 11:20:25
758
转载 布隆(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
1602
转载 使用redis实现分布式锁和保证接口幂等性(自定义注解 + AOP)
参考 使用redis实现分布式锁和保证接口幂等性(自定义注解 + AOP)_an_zzzzz的博客-CSDN博客_redis分布式锁保证幂等性1.解决的问题由于项目里需要解决幂等性的问题,所以本文介绍使用 redis 分布式锁机制解决接口幂等性问题。解决幂等性问题的话,首先要知道幂等性是什么意思哈。幂等性:通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次分布式锁:如果是单机情况下(单JVM),线程之间共享内存,只要使用线程锁就可以解决并发问题。如果是分布式..
2022-05-23 17:08:24
2735
原创 深入理解java虚拟机jvm之类加载机制和类加载器(ClassLoader)(5)
深入理解java虚拟机jvm之类加载机制和类加载器(ClassLoader)
2022-05-22 15:57:11
160
原创 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
596
原创 Java中常用的设计模式
文章转载参考1:智慧演绎,无处不在_终点_CSDN博客-J2SE,Java基础研究,经验领域博主文章转载参考2:Java中常用的设计模式_Superme-CSDN博客_java设计模式目录一、什么是设计模式二、设计模式的六大原则三、设计模式的三大类四、Java的二十三种设计模式1、单例模式(Singleton)设计模式(Design Patterns)一、什么是设计模式设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验
2022-05-07 09:49:08
4209
1
转载 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
195
原创 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
114
原创 深入理解java虚拟机jvm之GC垃圾回收(2)
最近看了一些java基础、博客以及《深入理解java虚拟机》等文章,生活之余就想着记录下来,也算是对知识的总结。=======================================================================本系列文章将从,jvm的基本概念、GC、优化配置,线程安全等方面阐述。=======================================================================本人这里只提供自己学习的思路,.
2021-12-08 15:28:52
183
原创 深入理解java虚拟机jvm之基本介绍(1)
最近看了一些java基础、博客以及《深入理解java虚拟机》等文章,生活之余就想着记录下来,也算是对知识的总结。本文参考未名pdf,不知原创地址,仅供个人学习所用,如果侵权,请联系本文作者!=======================================================================本系列文章将从,jvm的基本概念、GC、优化配置,线程安全等方面阐述。================================================
2021-12-08 11:39:49
208
原创 深入理解java虚拟机jvm之线程安全(4)
最近看了一些java基础、博客以及《深入理解java虚拟机》等文章,生活之余就想着记录下来,也算是对知识的总结。 本文参考未名pdf,不知原创地址,仅供个人学习所用,如果侵权,请联系本文作者!======================================================================= 常常听说线程安全,它到底是什么! 要认识java线程安全,必须要了解两个主要的点:java的内存模型,...
2021-12-06 17:34:38
312
原创 Spring事物
本文将按照声明式事务的五个特性进行介绍:事务传播机制 事务隔离机制 只读 事务超时 回滚规则Spring事务传播机制事务的特性原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。 一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被破坏。 隔离性(Isolation):可能有许多事务会同时处理相同的数据,因此每
2021-12-02 17:36:16
97
原创 分库分表(垂直分库,垂直分表,水平分库,水平分表)
分库分表(高效,解耦,扩展,维护,性能,减少了磁盘 IO)原因MySQL 底层是通过数据页存储的,一条记录占用空间过大会导致跨页另外数据库以行为单位将数据加载到内存中,这样表中字段长度较短且访问频率较高,内存能加载更多的数据,命中率更高,减少了磁盘 IO,从而提升了数据库性能。为什么这么做数据库分布式核心内容无非就是数据切分 (Sharding),以及切分后对数据的定位、整合。数据切分就是将数据分散存储到多个数据库中,使得单一数据库中的数据...
2021-12-02 17:13:06
1750
转载 java循环栅栏CyclicBarrier 使用详解
1. CyclicBarrier 是什么?从字面上的意思可以知道,这个类的中文意思是“循环栅栏”。大概的意思就是一个可循环利用的屏障。它的作用就是会让所有线程都等待完成后才会继续下一步行动。举个例子,就像生活中我们会约朋友们到某个餐厅一起吃饭,有些朋友可能会早到,有些朋友可能会晚到,但是这个餐厅规定必须等到所有人到齐之后才会让我们进去。这里的朋友们就是各个线程,餐厅就是 CyclicBarrier。2. 怎么使用 CyclicBarrier...
2021-12-02 16:15:20
3358
转载 java是怎么实现共享锁及CountDownLatch解析
本篇主要通过CountDownLatch的学习来了解java并发包中是如何实现共享锁的。CountDownLatch使用解说CountDownLatch是java5中新增的一个并发工具类,其使用非常简单,下面通过伪代码简单看一下使用方式:这是一个使用CountDownLatch非常简单的例子,创建的时候,需要指定一个初始状态值,本例为2,主线程调用 latch.await时,除非latch状态值为0,否则会一直阻塞休眠。当所有任务执行完后,主线程唤醒,最终执行打印动作。以上只是一个.
2021-12-02 15:41:05
398
原创 Java多线程以及线程安全,通俗易懂
线程 | ProcessOn991 | 思维导图(新) | ProcessOn线程 | ProcessOn991 | 思维导图(新) | ProcessOn一.实现线程的几种方式 1.继承Thread类创建线程 2.实现Runnable接口创建线程 3.Callable,Future,可以有返回结果的线程 4.ThreadPoolExecutor线程池类//继承Thread public class MyT...
2021-12-02 15:07:22
252
原创 在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
1218
原创 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
230
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人