摘要:
CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。 CAP原则又称CAP定理,指的是在一个分布式系统中, 阅读全文
摘要:
结论: 对于单机单库系统,数据一致性可通过关系型数据库的事务来满足,而且ACID特性中的C是指强一致性,各数据库本身都支持,而且很成熟。 分布式系统则需要以BASE理论作为指导,即以基本可用性和最终一致性作为目标。 远程RPC调用是一致性问题主要原因,异步解耦+消息队列可作为分布式系统满足最终一致性 阅读全文
摘要:
对于一个需要处理高并发的系统而言,可以从多个层面去解决这个问题。 1、数据库系统:数据库系统可以采取集群策略以保证某台数据库服务器的宕机不会影响整个系统,并且通过负载均衡策略来降低每一台数据库服务器的压力(当然用一台服务器应付一般而言没啥问题,找一台当备机放着应付宕机就行,如果一台应付不了,那么再加 阅读全文
摘要:
还有一篇文章 讲解guava如何删除过期数据的,与redis不同,guava没有维护线程删除过期key,只是在设置 key 或者 读取key的时候,顺带删除参考:GuavaCache简介(一)是轻量级的框架 少量数据,并且 过期时间相同 可以用 GuavaCache 内存上限Redis可以通过 ma 阅读全文
摘要:
三、如何保证消息的顺序性 拆分多个queue,每个queue一个consumer,就是多一些queue而已,确实是麻烦点;或者就一个queue但是对应一个consumer,然后这个consumer内部用内存队列做排队,然后分发给底层不同的worker来处理 写入一个partition中的数据一定是有 阅读全文
摘要:
先看看spring的bean作用域有几种,分别有啥不同。 spring bean作用域有以下5个: singleton:单例模式,当spring创建applicationContext容器的时候,spring会欲初始化所有的该作用域实例,加上lazy-init就可以避免预处理; prototype: 阅读全文
摘要:
1、多线程put操作后,get操作导致死循环。2、多线程put非NULL元素后,get操作得到NULL值。3、多线程put操作,导致元素丢失。 参考:多线程下HashMap的死循环问题 比如一个 ArrayList 类,在添加一个元素的时候,它可能会有两步来完成: 1、多线程put操作后,get操作 阅读全文