标签: distributed-caching

AppFabric缓存服务器和Web应用程序在同一物理机器上

我正在考虑为我们的一个项目使用AppFabric缓存功能.我们需要分布式缓存功能,似乎AppFabric是一个很好的解决方案.但是,我有几个问题希望在这里得到解答.

我们正在考虑在安装Web应用程序的同一台机器上托管AppFabric Cache服务器.我在MSDN文章中发现AppFabric应该安装在专用机器上.还要注意的是,AppFabric可以与应用程序本身安装在同一台机器上,但是应该考虑一些问题(文章引用):

Windows Server AppFabric缓存主机应专用于缓存服务,这意味着这些服务器也不会用作应用程序,Web或数据库服务器.可以在群集中使用非专用缓存服务器,但不支持此方案.尽管有此策略,但如果您决定使用非专用缓存主机,请确保正确估计并测试每个缓存主机的配置,以便为缓存服务和计算机上的所有其他服务提供足够的内存和网络资源.还要了解其他服务的处理器和网络利用率的高峰将对缓存集群的性能和稳定性产生负面影响.

以下是本文的链接:文章#1

现在,这听起来很合理,我认为限制RAM AppFabric缓存可以使用的数量就足够了.但是,在MSDN上阅读另一篇文章我发现了这个:

对于物理机和虚拟机,您应该记录缓存集群到使用缓存的应用程序或Web服务器的位置.如果它们位于不同的数据中心,请确保这些数据中心之间的延迟不会对性能产生负面影响.在此阶段,您可能很想将您的应用程序或Web服务器用于缓存服务器.尽管可能,但不支持此功能.首先,这些机器上的IIS等服务的任何资源使用率都会影响缓存集群.其次,缓存服务假定它位于专用服务器上,并且可能使用比您指定的内存更多的内存.

以下是本文的链接:文章#2

如果我正确理解上面的声明,这意味着尽管我的AppFabric的配置设置,它将需要尽可能多的RAM吗?这真的可以吗?有没有人在应用程序和AppFabric位于同一台机器上的配置方面有一些经验?

.net c# caching distributed-caching appfabric

9
推荐指数
1
解决办法
2359
查看次数

大型对象的分布式缓存

我想在一组机器之间共享一个非常大的对象,例如以兆字节甚至几千兆字节的顺序.该对象将被写入一次,但可能会被多次读取.也许一种天真的方法是使用像redis这样的ceneteralized存储.但是,它可能会成为单点故障,而太多请求可能会对redis造成DOS攻击.然后,分布式解决方案更有前途.但是,主要关注的是将结构复制到所有机器上.如果通过主/从技术完成复制,则复制可能会导致主服务器上的流量负载很大,因为对象很大.因此,更好的解决方案是使用P2P策略来复制对象,以减少主服务器上的网络负载.

有没有人知道这个问题的解决方案?也许有些候选人是:
- Redis
- Memcached
- Voldemort
- Hazelcast

我主要关心的是Java接口,共享大对象,高可用性以及用于复制的低网络流量.

先谢谢.

memcached distributed-caching voldemort redis hazelcast

9
推荐指数
1
解决办法
4318
查看次数

8
推荐指数
2
解决办法
6230
查看次数

是否可以使用没有Terracotta Enterprise Suite的Ehcache实现分布式缓存?

我试图找到如何为应用程序实现分布式缓存.

Ehcache已经在我的项目中用于缓存,这就是我搜索如何使用它来解决这个问题的原因.但是,不幸的是,似乎需要Terracotta Enterprise Suite才能实现商业化.不是吗?是否有另一种解决方案如何使用Ehcache进行分布式缓存(RMI或其他任何东西)?

java ehcache distributed-caching

8
推荐指数
1
解决办法
2万
查看次数

Appfabric Cache的执行速度比SQL Server 2008快4倍?

我正在运行一个测试,我将比较获取时间b/w appfabric和SQL Server 2008,看起来appFabric的执行时间比SQL Server慢4倍.

我有一个SQL Server 2008安装程序,它只包含一个包含4列(全部nvarchar)的表.该表有6000行.我在appfabric缓存中插入相同的行(作为CLR serializable obj).我正在运行一个循环来获取数据x次.

这是代码

public class AppFabricCache
{
readonly DataCache myDefaultCache;

public AppFabricCache()
{
//-------------------------
// Configure Cache Client 
//-------------------------

//Define Array for 1 Cache Host
var servers = new List<DataCacheServerEndpoint>(1);

//Specify Cache Host Details 
//  Parameter 1 = host name
//  Parameter 2 = cache port number
servers.Add(new DataCacheServerEndpoint(@"localhost", 22233));

//Create cache configuration
var configuration = new DataCacheFactoryConfiguration();

//Set the cache host(s)
configuration.Servers = servers;

//Set default properties for local …
Run Code Online (Sandbox Code Playgroud)

c# comparison performance distributed-caching appfabric

8
推荐指数
1
解决办法
4173
查看次数

内存缓存VS. 分布式系统中的集中式缓存

我们目前正在寻找最适合访问分布式系统关键数据的解决方案,我们正在考虑是否在内存缓存中使用,而不是集中式缓存.

有关我们希望存储/访问的数据的一些信息:

  • 数据量非常小
  • 数据很冷; 这意味着它几乎没有变化,只有当人类在我们的后台系统中改变某些东西时才会改变
  • 更换时必须更新(延迟几百毫秒即可)
  • 我们的应用程序非常关键的路径,需要非常高的SLA(可靠性和响应时间(访问时间不超过20毫秒))
  • 频繁读取数据(每秒最多数千次)

我们看到它的方式如下 -

在内存缓存中

优点:

  • 比网络访问+序列化更快
  • 分布方面的可靠性更高(如果一个实例死亡,其他实例上的数据仍然存在)

缺点:

  • 代码和维护要复杂得多
  • 需要在发生更改时通知实例并且需要单独更新每个实例+需要在每个服务器的启动时加载数据
  • 增加了数据不一致的高风险(一个实例具有与其他实例不同或过时的数据)

集中缓存

为了对话,我们考虑过使用Redis.

优点:

  • 维护起来要简单得多
  • 非常可靠,我们在分布式系统中使用Redis有很多经验
  • 只有一个地方可以更新
  • 确保数据一致性

缺点:

  • 单点故障(这对我们来说是一个很大的问题); 即使我们采用这种解决方案,我们也会部署一个集群
  • 如果由于某种原因刷新缓存会发生什么

architecture caching distributed-computing distributed-caching

8
推荐指数
2
解决办法
6579
查看次数

Oracle Coherence稳定吗?

有没有人使用过Oracle Coherence?在路演中看起来非常有前途.

我担心的是,它是否足够稳定,足以实施关键任务金融解决方案.

对于其性能,稳健性和易维护性的任何反馈,我将不胜感激.

oracle distributed-caching oracle-coherence

7
推荐指数
3
解决办法
1464
查看次数

ASP.NET核心中的Redis缓存

我是Redis的新手并使用VS 2015和ASP.NET Core应用程序(v 1.0),我安装了nugget包:

Install-Package StackExchange.Redis
Run Code Online (Sandbox Code Playgroud)

但是我无法将其注入并配置到我的服务中,没有RedisCache或" AddDistributedRedisCache "方法.

我该如何注射和使用它?

distributed-caching redis stackexchange.redis asp.net-core

7
推荐指数
1
解决办法
9352
查看次数

AWS ElastiCache Redis 是否存在明显的网络延迟?

我在 IIS 上有一个 ASP.NET Web 应用程序,它将大量数据缓存到内置 ASP.NET 缓存中。我想将缓存移至 Redis 并使用 AWS ElastiCache Redis,因为当前我的所有服务器都不共享其缓存。它们已经托管在 EC2 上。我需要了解,通过将缓存从基本相同的服务器(我托管应用程序)移动到 AWS ElastiCache 的某个网络实例,是否不会降低性能?我读到 AWS Redis 本身有一个“亚毫秒延迟”,但是我不明白,是否也提到了网络延迟,或者必须满足什么条件才能获得这种延迟。

这是我的情况:

  1. IIS EC2 WinServer2008R2 上的 2 个应用服务器处于负载平衡状态
  2. 需要将数千个各种对象缓存为 JSON,最多可达 1M 个符号
  3. 所有服务器可以设置在同一区域

所以这里有一个问题:

  1. AWS ElastiCache Redis 是合适的解决方案吗?
  2. 我应该怎么做才能最大限度地减少 Redis 的延迟?

先感谢您。

latency distributed-caching amazon-web-services redis amazon-elasticache

7
推荐指数
1
解决办法
5375
查看次数

Redis 与 etcdv3 的性能差异

我正在浏览 Redis 和 Etcd 的基准文档页面。从基准数据来看,Etcd 与 Redis 一样高效。

https://redis.io/topics/benchmarks

https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/performance.md#benchmarks

示例 - 通过 100 个并行客户端设置 100k 个密钥,有效负载 - 256 字节

- on redis : 70K QPS 
- on Etcd : 50k QPS
Run Code Online (Sandbox Code Playgroud)

但我不明白为什么 Etcd 和 Redis 一样高效,还是我的理解有问题?

Etcd 的原因应该是比 Redis 慢很多:

  • Etcd 可能使用 SSD,但 Redis 仍然是内存数据库,因此应该具有更高的性能。
  • Etcd 使用共识(Raft)提供强一致性,并且应该比 Redis 慢。因为Redis不保证一致性。

distributed-system distributed-caching redis etcd

7
推荐指数
0
解决办法
5084
查看次数