内存数据网格 data grid

背景

分布式系统我们都知道,内存网格系统是什么鬼,我们也是第一次见到,^_^初恋般的感觉真好。不知道找度娘哈!

内存网格

嗯,我大概了解。到这里我们需要提一提内存缓存(IMC)了,我们在Java分布式应用中,引起性能问题大部分是延迟搞的鬼,所谓的延迟就是你的请求和服务端的响应的时间差。那么在分布式系统中引起延迟的原因都有哪些的呢?

我们来罗列一下啊,不足的地方请看官评论区补充,大家一起学习。

从磁盘上加装数据的IO延迟

跨网络加装数据的IO延迟

在分布式锁上的资源争夺

垃圾回收引起的暂停

我们就拿ping时间为列,本地机器是57μs ;局域网是300 μs ;从伦敦到纽约是100ms 。那么对于1G的网络,网络传输速率是每秒25MB-30MB,那么对于10G的网络,网络传输速率是每秒250MB-350MB。

如果你有1G以上数据需要处理,磁盘延迟会严重影响应用性能。硬件上最低延迟是内存,典型的内存缓存是每秒3-5 GB,能够随着CPU扩展。如果你有两个处理器,你就能每秒10GB ,如果有4CPU就能获得20GB。有一个内存基准测试称STREAM是测试许多计算机的内存吞吐量,-些在大量CPU帮助下能够实现每秒TB级别的吞吐量。

因此可以总结如下:

内存是快的:为了高性能,你需要在内存中处理数据。

网络是慢得:通过网络传输数据会严重影响性能,包括数据车连接池。

内存缓存原来作用是提高数据库访问性能。但是缓存不是数据库遮羞布,架构 上缓存引入有着重要意义:状态对象:数据库的替代者。

缓存实际是内存,将状态置于内存而不是数据库,不但性能提升, 还提高软件的可伸缩性和扩展性,直至轻松发展为分布式系统或云计算,这种缓存称为内存缓存(in-memory cache)或称数据网格In-Memory-Data-Grid (IMDG) ;

Java EE 7引入分布式弹性缓存ElasticCaching , 作为其云核心战略的一部分。云计算是一 种计算和存储分离的模型 ,云计算本质是分布式可伸缩的内存计算,可见Amazon弹性缓存介绍。

当我们将DDD领域模型加载到内存中以后,我们就不再面向关系数据库中数据表编程,而是真正直接面向模型对象编程。Java内存模型优点:基于内存的并发模型,多线程机制,大量线程安全型库包支持基于内存的并发机制,粒度灵活控制,灵活度高于数据库锁。多核并行计算模型基于线程的异步模型(Domain Events)。Twitter从Ruby转向JAVA的实践证明:Cache缓存+ JVM微调是Java/JVM的核心竞争力,这也是最容易被我们忽视的,因为很多使用Java系统(包括Spring + Hibernate)只是当作SQL语句的包装器来使用,负载主要集中在数据库上,根本不会使用In-memory Cache.

百度安全验证

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值