07 2020 档案
摘要:在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在spring 3.x之后,就已经内置了@Async来完美解决这个问题 1. 何为异步调用? 在解释异步调用之前,我们先来看同步
阅读全文
摘要:rabbitmq为确保消息发送和接收成功,采用ack机制。(1)生产者producter发送消息到mq时,mq会发送ack给producter告知消息是否投递成功;(2)消费者consumer接收处理消息后,consumer会发送ack给mq告知消息是否处理成功;通过ack机制,确保消息能够被pro
阅读全文
摘要:我们知道,ConcurrentHashmap(1.8)这个并发集合框架是线程安全的,当你看到源码的get操作时,会发现get操作全程是没有加任何锁的,这也是这篇博文讨论的问题——为什么它不需要加锁呢? ConcurrentHashMap的简介 “我想有基础的同学知道在jdk1.7中是采用Segmen
阅读全文
摘要:首先大家想过没:既然有了事务,并且使用 spring 的@Transactional 注解来控制事务是如此的方便,那为啥还要搞一个分布式事务的概念出来啊? 更进一步,分布式事务和普通事务到底是啥关系?有什么区别?分布式事务又是为了解决什么问题出现的? 各种疑问接踵而至,别着急,带着这些思考,咱们接下
阅读全文
摘要:1. 什么是缓存雪崩?怎么解决? 2. 什么是缓存穿透?怎么解决? 3. 什么是缓存并发竞争?怎么解决? 4.什么是缓存和数据库双写不一致?怎么解决? 1. 什么是缓存雪崩?怎么解决? 通常,我们会使用缓存用于缓冲对 DB 的冲击,如果缓存宕机,所有请求将直接打在 DB,造成 DB 宕机——从而导致
阅读全文