自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++开启线程浅谈

一、引入线程库<thread>,提供了thread类,创建一个线程即实例化一个该类的对象。二、创建线程与线程拷贝一个线程可以用一个 thread 类的对象来表示注:thread对象无构造函数,不能先构造thread对象再进行拷贝。三、线程的使用thread类提供了以下成员函数。

2023-11-02 11:21:11 95

原创 浅谈RabbitMQ

一方面,接收生产者发送的消息。当消息再一个队列中变成死信之后,它能被重新发送到另一个交换机中,这个交换机就是 死信交换机,绑定的队列就称之为死信队列。协议使用的AMQP协议,消息延迟毫秒级的,他最大可以存放几万到十几万的消息,消息可靠性高,单机吞吐量一般。,因此如果没有任何队列与Exchange绑定,或者没有符合路由规则的队列,那么消息会丢失!2、消息过期(可以设置消息的过期时间,也可以设置消息队列中的消息同一过期时间)P:生产者,也就是要发送消息的程序,但是不再发送到队列中,而是发给X(交换机)

2022-11-20 11:51:59 319 1

原创 浅谈AOP

AOP面向切面编程思想,在面向对象OOP的思想中,将模块纵向抽取成一个个对象,而面向切面编程思想,将相似功能的模块进行横向的抽取成一个切面。2.postHandle():这个方法在当前请求进行处理之后,也就是Controller方法调用之后执行,但是它会在DispatcherServlet 进行视图返回渲染之前被调用,所以我们可以在这个方法中对Controller处理之后的ModelAndView 对象进行操作。这是最强大的一种通知类型。,并没有切面,通知这一类的代码,所以它的实现并不是基于aop的。

2022-11-19 21:19:15 891

原创 SpringCloud核心组件及详细介绍

Feign客户端实际上就是一个接口,但是这个接口继承了服务提供者的接口,通过@FeignClient注解声明需要调用的服务别名。信号量隔离:调用每一个服务时都会设置线程允许使用的数量,超过数量后就不允许使用了,当服务出现问题最多占满允许使用线程数。Sentinel提供了基于QPS限流、调用链路限流,限流能力很强大。Nacos里的永久实例,由Nacos主动探测目标服务是否可用,如果不可用,标记为不健康,但是不清除。线程池降级:调用每一个服务,都会有一个专门的线程池,当服务出现问题最多将线程池中的资源占满。

2022-11-18 21:11:00 280

原创 关于redis实现分布式锁会造成的一系列问题及解决方案

3、当锁设置的过期时间为10秒,但是线程执行了15秒 之后去释放锁但是锁到了过期时间已经释放了,或导致删除其他服务的锁这种情况或造成并发的问题。1、通过setCN进行占坑之后,因为某些原因服务宕机了没有释放锁,会导致其他服务获取不到锁造成死锁的问题。4、但是在校验完成之后还没有删除锁,锁正好到了到期时间自己释放了之后再去删除会造成删除其他服务的锁,解决方案:所以if校验和删除锁也要保证原子性,使用lua脚本来保证的原子性。解决方案:所以要使用UUID来if校验是否是自己的锁是自己的锁才去删除,

2022-11-18 19:57:31 1135

原创 实现延迟队列的几种方案

步骤:把消息放到一个队列中(这个队列没有消费者,设置了超时时间),当到了超时时间后变成死信,MQ把死信交给绑定好的死信交换机,由死信交换机在交给目标队列,监听者监听这个目标队列即可。缺点:这种方案发布的时间可以会有误差,因为五分钟才执行一次,如果缩短时间设置一分钟或者几十秒执行一次那么数据库压力非常大,所以这种方案不太理想。redis中的list(Redis中的list是双向链表,增删效率高)定时获取Zset中需要立即执行的任务,最后从list中获取任务进行消费。可以持久化保存,不容易丢失任务。

2022-11-18 17:02:23 1718

原创 浅谈Spring的理解

Spring两大核心为IOC(控制反转)和AOP(依赖注入)

2022-11-17 23:55:25 188

原创 Mybatis的缓存

二级缓存是SqlSessionFactory级别的,如果使用同一个SqlSessionFactory创建的SqlSession,那么怕是不同的SqlSession,那么也会在二级缓存中获取到数据。一级缓存是SqlSession级别的,通过SqlSession中查询出来的数据会被放到缓存中,当下一次查询相同的数据时,直接从缓存中获取,不会从数据库中重新查询。1、先从二级缓存中查询(因为二级缓存中可会有其他程序已经查出来的数据,可以直接拿来使用)1、不同的SqlSession对应的不同的一级缓存。

2022-11-17 23:43:40 156 1

空空如也

空空如也

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

TA关注的人

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