自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RabbitMQ实现延时消息的两种方法

文章目录RabbitMQ实现延时消息的两种方法1、死信队列1.1消息什么时候变为死信(dead-letter)1.2死信队列的原理1.3 代码实现1.4死信队列的一个小坑2 、延时插件2.1如何实现RabbitMQ实现延时消息的两种方法1、死信队列1.1消息什么时候变为死信(dead-letter)消息被否定接收,消费者使用basic.reject 或者 basic.nack并且requeue 重回队列属性设为false。消息在队列里得时间超过了该消息设置的过期时间(TTL)。消息队列到达了它

2020-12-17 00:01:04 5249

原创 分布式锁笔记

单体应用锁的局限性JDK提供的锁都是在一个JVM下起作用的,也就是在一个tomcat下是没问题的。当存在两个或两个以上的tomcat时,大量的并发请求分散到不同的tomcat上,每一个tomcat中是可以反正并发的产生,但是多个tomcat之间,每个tomcat中获得锁的这个请求,又产生了并发,会出现并发问题。单体应用锁的局限性是只能在一个JVM内加锁,而不能从这个应用层面加锁。分布式锁分布式锁就是可以跨越多个JVM、跨越多个进程的锁。分布式锁都是通过第三方组件来实现的。目前比较流行的分布式解决方案有

2022-03-22 22:36:48 1451

原创 一条sql语句的执行过程

一条select语句执行流程第一步:连接器连接器负责跟客户端建立连接、获取权限、维持和管理连接。如果用户名密码验证通过后,连接器会到权限表里面查出你拥有的权限。之后该连接的权限验证都依赖于刚查出来的权限。第二步:查询缓存当获取连接后,一条SELECT语句会先去查询缓存,看之前是否执行过。如果获取到缓存后就执行返回,不然继续后面的步骤。大多数时候不建议使用缓存,因为只要一个表更新,这个表上的所有缓存数据就会被清空了。对于那些经常更新的表来说,缓存命中率很低。MYSQL8版本直接将查询缓存的整块功能

2021-02-22 11:33:30 2544

原创 Spring事务

Spring事务Spring事务机制是通过统一的机制来处理不同数据访问技术的事务处理。Spring事务机制提供了一个platformTransactionManager接口,不同的数据库有不同的实现。jdbc的实现为DataSourceTransactionManager。Spring支持两种方式的事务管理:编程式事务通过 TransactionTemplate或者TransactionManager手动管理事务,不常用。代码实现如下:@Autowiredprivate TransactionT

2021-02-03 11:38:09 141

原创 Springcloud学习笔记-服务容错-Hystrix

文章目录Hystrix体系架构和核心功能解析服务降级服务降级常用方案服务降级实现代码Request Cache减压多级降级超时降级配置服务熔断Hystrix体系架构和核心功能解析Hystrix核心功能主要为服务降级、服务熔断、线程隔离。服务降级:当Hystrix调用目标请求发生异常时,这时候hystrix会自动把这个请求转发到降级逻辑中,降级逻辑是由服务调用方来编写异常处理逻辑。服务熔断:服务熔断是建立在服务降级之上的一个异常处理措施。服务降级需要等待HTTP请求从服务节点返回异常或超时,再转发到

2020-12-07 22:57:33 107

原创 一些常用的Linux指令

一些常用的快捷键Ctrl + R : 用于查找使用过的命令; history 用于列出之前使用过的所有命令 !编号 执行相关指令Ctrl + L 或者 clear 清屏Ctrl + A 光标跳到一行命令的开头Ctrl + U 删除所有在光标左侧的命令字符Ctrl + K 删除所有在光标右侧的命令字符Ctrl + W 删除光标左侧的一个“单词”,这里的“单词”指的是用空格隔开的一个字符串。例如 -a 就是一个“单词”Ctrl + Y 粘贴用 Ctrl + U、 Ctrl + K 或 Ctrl

2020-12-03 17:17:31 81

原创 Spring cloud学习笔记一服务治理Eureka

服务治理Eureka服务治理-概念&技术选型技术选型Eureka-服务治理全链路服务注册心跳检测服务剔除服务续约服务自保服务下线注册中心高可用改造(双备份注册中心)服务治理-概念&技术选型服务治理技术选型分布式系统CAP定理:(C)一致性,(A)可用性,§分区容错性,分布式系统中只能三元二,不能全占,一般CP,AP。EurekaConsulNacosEureka-服务治理全链路Eureka服务治理组件主要功能为:服务注册、服务发现、心跳和续约、服务下线、剔除和自保

2020-11-26 22:07:08 129

原创 MySql学习笔记一索引

1 跟索引相关算法1.1 B 树B树 每一个节点可以有两个以上的节点的多叉查找树,B树的同一键值不会出现多次,要么在叶子节点要么在内节点。B树的缺点:因为每个节点都包含key值和data值,因此如果data比较大时,每一页存储的key就会比较少;当数据比较多时,也会出现要经历多层节点才能查询在叶子节点的数据的问题。1.2 B+ 树B+ 树是B树的变体,与B树不同的是所有的叶子节点中包含了全部关键字信息,各叶子节点用指针连接。非叶子节点上只存储key的信息,就可以增加/每一页中存储key的数量,B树

2020-11-26 10:34:17 84

原创 SpringBoot简单上手RabbitMQ

SpringBoot使用RabbitMQ首先在SpringBoot上使用RabbitMQ需要引入spring-boot-starter-amqp的依赖,消费者和生产者都需要。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

2020-10-23 16:34:02 95 1

原创 ThreadLocal其实也很简单

ThreadLocal两大使用场景每个线程都需要一个独享的对象(一般是工具类,如SimpleDateFormat和Random)每个线程内需要保存全局变量,(拦截器获取用户信息)可以让不同方法直接使用,避免参数传递麻烦,同一个线程不同方法共享ThreadLocal两个作用让某个需要用到的对象在线程间隔离(每个线程都有自己的独立对象)在任何方法中都可以轻松获取到该对象ThreadLocal带来的好处达到线程安全不需要加锁,提高执行效率更高效地利用内存、节省开销Thread、Th

2020-10-21 22:39:31 134

原创 RabbitMQ基础概念和高级特性

RabbitMQ核心概念RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理和队列服务器。RabbitMQ服务器是用Erlang语言编写的。Server:也称Broker,接受客户端的连接,实现AMQP实体服务Connection:连接与Broker的网络连接Channel:网络信道,几乎所有的操作都在Channel上进行,一个客户端可以建立多个Channel,每个Channel代表一个会话任务。Message:消息,服务器和应用程序之间传送的数据,由Properties和Bo

2020-10-17 15:52:24 131 1

原创 多线程学习小结

最近学了下多线程,做了一些笔记,整理如下。死锁是指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,无外力作用,它们都将无法推进下去。此时称系统处于死锁状态下面就是一个死锁的例子,线程1持有资源1,线程2持有资源2,他们同时都想申请对方的资源,这两个线程就会互相等待而进入死锁状态。 //资源1 private static fina...

2020-04-05 16:43:30 162 2

原创 mybatis报 :Error querying database. Cause: java.lang.NumberFormatException: For input string: “XX”

这是由于mybatis参数格式化异常导致,例如在动态sql拼接中String类型参数和数字比较,这里需要把 ’ 使用&quot进行转义<when test="paramMap.sort=='c'"> //错误写法 i.sell_counts desc</when><when test="paramMap.sort==&quot;c&qu...

2020-01-17 16:41:44 901

原创 会话技术

会话技术概念:指用户打开一个浏览器,访问服务器开始,不管用户点击多少个链接,访问多少资源,直到浏览器关闭,整个过程我们称为一次会话。分类:客户端会话技术Cookie1、程序把每个用户的数据以Cookie的形式保存在浏览器上,当用户在次访问服务器的话,浏览器会将请求连同Cookie一起发送给服务器。2、Cookie具有不可跨域的特点,当访问该网站的时候浏览器只会把当前网站上的Cookie...

2019-12-03 16:23:25 107

原创 spring boot使用redis报错com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'XXX'

在redis客户端时通过该语句插入,127.0.0.1:6379> set username lanklank的数据结构为不String,应该用’“lank”'或者"/“lank/”"set username "\"lank\""set username '"lank"'com.fasterxml.jackson.core.JsonParseException: Unrecog...

2019-11-26 17:43:33 2869

原创 Calendar类的常用方法分享

Calendar类常用方法分享Calendar类一些常用的方法附上一些常用fieldCalendar类该类是在java.util包下,是一个abstract修饰的类,不能通过new的方式获取其实例。可以通过Calendar.getInstance()获取其实例。一些常用的方法 Calendar calendar = Calendar.getInstance(); ...

2019-11-21 22:04:58 669

空空如也

空空如也

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

TA关注的人

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