分布式本地缓存的设计
2018-01-25 19:19
591 查看
distributed-local-caching:
存在的原因
在软件开发行业,数据的存储,一般分为持久化(mysql,postgresql,elasticsearch,hbase,mongo),分布式缓存(redis,Memcached),以及本地缓存(guava代表的)。而本地缓存,是讲数据存储在每台服务器的内存中,这样常常涉及到数据的更新的问题。而分布式本地缓存就是来解决这个问题实现原理
note:
* 生产者可能是消费者
* 消息是通过Fanout exchange实现广播的
* 数据的存储通过guava的cache实现的
例子
生产者:
“` java@Before
public void initProductMessageClient() throws IOException{
LocalCacheClientConfiguration configuration = new LocalCacheClientConfiguration(); configuration.setAddress("128.0.0.1:5672"); configuration.setvHost("/dev"); configuration.setUser("user"); configuration.setPwd("pwd"); productMessageClient = new ProductMessageClient(configuration); } @Test public void testSendRemoveDataMessage() throws IOException { while (true) { productMessageClient.sendRemoveDataMessage("111"); } }
“`
消费者:
“` java@Before
public void initProductMessageClient() throws IOException {
LocalCacheClientConfiguration configuration = new LocalCacheClientConfiguration(); configuration.setAddress("128.0.0.1:5672"); configuration.setvHost("/dev"); configuration.setUser("user"); configuration.setPwd("pwd"); configuration.setQueueName("lc-queue"); configuration.setQosCount(5); consumerMessageClient = new ConsumerMessageClient(new LocalCacheConfiguration(), configuration); } @Test public void testConsumer() throws IOException { consumerMessageClient.consumer(); try { Thread.sleep(10000000); } catch (Exception e) { e.printStackTrace(); } }
“`
github地址
项目地址有错的地方,欢迎大家指出来。
相关文章推荐
- Net下的分布式缓存--从Discuz!NT的缓存设计谈起
- xcache本地缓存的设计(一)
- 设计一个移动应用的本地缓存机制
- 分布式缓存服务器设计原理
- .Net下的分布式缓存--从Discuz!NT的缓存设计谈起[转贴]
- 一起谈.NET技术,.Net下的分布式缓存--从Discuz!NT的缓存设计谈起
- 设计一个移动应用的本地缓存机制
- 设计一个移动应用的本地缓存机制
- CYQ.Data V5 分布式自动化缓存设计介绍(二)
- 缓存子系统如何设计(Cachable tag, Memcache/redis support, xml config support, LRU/LFU/本地缓存命中率)
- 巧妙设计多级缓存,为数据库减负 - 分布式
- 设计一个移动应用的本地缓存机制
- 知识库--本地缓存设计(128)
- 架构基础4-分布式缓存设计:一致性Hash算法
- 设计一个移动应用的本地缓存机制
- CYQ.Data V5 分布式自动化缓存设计介绍(二)
- iOS应用的本地缓存机制设计
- 分布式缓存架构设计
- 分布式系统缓存设计浅析
- 设计一个移动应用的本地缓存机制