假设咱们用netty作服务,当接受到网络传输的码流,咱们经过某种手段将这种传输数据解析成了熟悉的pojo,那这些pojo该如何进一步处理?java
好比游戏中的抢购、场景业务等,对处理那种高并发的业务场景,如何保证数据的一致性?数据库
1.悲观锁和乐观锁编程
悲观锁和乐观锁这种,你们当即会联想到数据库读写。可是咱们仍然能够尝试的在获取对象锁上理解。数组
没错,锁技术很慢。网络
2.读写分离,读写锁并发
3.MVCC,我曾尝试着用java来实现相似数据库的多版本并发控制,后面具体详说。高并发
4.actor模型的引入线程
java版本的actor,共享线程池,使用cas,实现同一时刻只有单线程访问,同时更高的提高了线程池的利用率。指针
5.无锁化编程思想:像闪电同样的disruptornetty
这种ringbuffer环形数组解决了队列的头尾指针和大小变量等冲突,而惟一须要关心的,就是多个生产者写入ringBuffer的场景,
这个要仔细说。