自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 问答 (1)
  • 收藏
  • 关注

原创 HashMap某些特殊机制

首先补齐一些知识.Object的HashCode()方法在HashMap里是来判断HashCode值,获得值过后进行取模,如果把这里写死,比如HashMap里的初始化是16Size.我在这里改写HashCode值:equels()方法是进行比较HashMap里的Key值.public class Demo { int test; public Demo(int test) { this.test = test; } @Override.

2021-09-14 19:11:57 130

原创 Redis事务Multi介绍

Redis事务Redis的事务是通过multi、exec、discard和watch这四个命令来完成的。Redis的单个命令都是原子性的,所以这里需要确保事务性的对象是命令集合。Redis将命令集合序列化并确保处于同一事务的命令集合连续且不被打断的执行Redis不支持回滚操作事务命令multi:用于标记事务块的开始,Redis会将后续的命令逐个放入队列中,然后使用exec原子化地执行这个命令队列exec:执行命令队列discard:清除命令队列watch:监视keyu

2021-08-31 02:03:19 2601

原创 Redis8个基本数据类型

Redis的8个基础类型1.String 特点:非常常用的数据类型,String能表达3种值的类型:字符串、整数、浮点数 100.01 是个六位的串 应用场景: 1、key和命令是字符串 2、普通的赋值 3、incr用于乐观锁 incr:递增数字,可用于实现乐观锁 watch(事务) 4、setnx用于分布式锁2.list列表 特点:list列表类型可以存储有序、可重复的元素 获取头部或尾部...

2021-08-31 02:00:24 524

原创 Seession一致性解决方案

1.解决session一致性的方案1.Nginx的IP_Hash策略(可以使用)同⼀个客户端IP的请求都会被路由到同⼀个⽬标服务器,也叫做会话粘滞 优点: 配置简单,不⼊侵应⽤,不需要额外修改代码 缺点: 服务器重启Session丢失 存在单点负载⾼的⻛险 单点故障问题2.Seesion复制也即,多个tomcat之间通过修改配置⽂件,达到Session之间的复制优点: 不⼊侵应⽤ ...

2021-08-25 17:55:57 173

原创 啥是RPC

1 分布式架构网络通信在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、Hessian、SOAP、ESB和JMS等,它们背后到底是基于什么原理实现的呢2 基本原理要实现网络机器间的通讯,首先得来看看计算机系统网络通信的基本原理,在底层层面去看,网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络IO来实现,其中传输协议比较出名的有tcp、udp等等,tcp、udp都是在基于Socket概念上为某类应用场

2021-08-22 03:15:04 149

原创 Netty的ChannelPipeline概念

ChannelPipelineChannelPipeline 是一个 Handler 的集合,它负责处理和拦截 inbound 或者 outbound 的事件和操作,相当于一个贯穿 Netty 的责任链.如果客户端和服务器的Handler是一样的,消息从客户端到服务端或者反过来,每个Inbound类型或Outbound类型的Handler只会经过一次,混合类型的Handler(实现了Inbound和Outbound的Handler)会经过两次。准确的说ChannelPipeline中是一.

2021-08-18 16:09:23 128

原创 IO线程模型知识

传统阻塞 I/O 服务模型采用阻塞 IO 模式获取输入的数据, 每个连接都需要独立的线程完成数据的输入 , 业务处理和数据返回工作.存在问题:1. 当并发数很大,就会创建大量的线程,占用很大系统资源2. 连接创建后,如果当前线程暂时没有数据可读,该线程会阻塞在 read 操作,造成线程资源浪费Reactor 模型Reactor 模式,通过一个或多个输入同时传递给服务处理器的模式 , 服务器端程序处理传入的多个请求,并将它们同步分派到相应的处理线程, 因此 React.

2021-08-18 16:00:30 1282

原创 简述双亲委派机制与Tomcat的WebAppClassLoader为何打破双亲委派机制

什么是双亲委派机制?双亲委派机制根本目的是为了保护java的核心配置类,比如hello.class属于BootstrapClassLoader加载的范畴,开始到AppClassLoader查询是否加载过,没有继续往上,直到BootstrapClassLoader,判断加载过直接返回Hello.class不进行加载。再拿着个Hello.class打比方,如果BootstrapClassLoader判断他既没加载过,他又会判断是否是他加载的范围,BootstrapClassLoader他只会加载java核

2021-08-06 14:47:21 263

原创 Springboot配置文件的加载顺序

1.先去项目根目录找config文件夹下找配置文件件2.再去根目录下找配置文件3.去resources下找config文件夹下找配置文件4.去resources下找配置文件指的一提的是除了2.4.0版本的springboot是优先加载properties文件外,所有的版本优先加载yml文件...

2021-08-03 19:38:20 182

原创 Springboot application.yml文件环境配置的不同切换

切换配置环境可以在运行调试窗口的程序参数中输入 --spring.profiles.active=xxxx 这个xxxx对应resources目录下application-xxxx文件的配置,修改后重启服务即可

2021-08-03 19:33:07 513

原创 Redis通过自定义cacheManager方法修改存入Redis数据格式

使用redisCache通常得将Pojo的类进行serializeble的实现,因为存入Redis数据都将进行序列化,而默认情况下是使用JDK的方法序列化,使用此序列化我们在Redis那边无法阅读。于是我们可通过自定义Jason序列化方式让Redis存入Jason格式的数据。导入Redis相关Starter<dependency> <groupId>org.springframework.boot</groupId> <artifa.

2021-07-24 14:17:03 487

原创 Failed to bind properties under ‘spring.datasource‘ to javax.sql.DataSource

顾名思义,未能在properties下绑定'spring.datasource'给javax.sql.DataSource。小伙伴先别急,我知道这种情况大部分都是配置 alibaba.druid 出的错。这种东西呢肯定是启动时候未能将DataSource注入完成导致的报错。这时候我们需要一个解决问题的思路,不要一昧的伸手乱试!稳住!稳住!别急!我们知道我们写测试方法也是一次完整的springboot启动流程,那我们何不试试DataSource注入到底是什么错误?在Connectio.

2021-07-19 02:54:27 12614

空空如也

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

TA关注的人

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