消息推送方案之谈 由于是对接其它平台,接收第三方消息推送细节比较多,如果遇上做活动或者某个时刻并发上来,即使 tomcat 把所有的这些消息请求都放进来,框架内部也可能遇到持久层并发的限制。消息推送虽然也有重发确认机制,但代码总是人写的,一次完整的把所有流程没有问题的运行,还是有概率出现错误。这些问题集中起来,做到一个完整的健壮的系统,还是得想清楚,有一套完整的机制,从设计上减少错误的出现。
Spring Servlet 源码实现原理(1) Servlet:
Spring 定时器实现原理(2)
Spring 定时器实现原理(1)
Spring 多线程
#Thread 实现 需要等待前置线程处理完后,才允许当前线程执行或者结束,可以有不同的实现方式,join 方法是其中之一。
#rabbitmq 延迟队列实现 message 先发送到 delayExchange,delayExchange 接收后,根据 binding 的 delayQueue 的 ttl 时间,到期后,再通过 x-dead-letter-exchange 设置的 exchange,把消息发送到 businessExchange,businessExchange 的 businessQueue 接收到消息后就可以实现具体的业务处理。
#concurrent atomic包 和 Unsafe 类 atomic 包 AtomicBoolean、AtomicInteger、AtomicIntegerArray(数组)、AtomicLong、AtomicLongArray、AtomicReference、AtomicReferenceArray类。 涉及到更新操作主要使用了 Unsafe 对 value 进行更新,value 是 volatile 修饰的;