Apache Geode中文社区

 找回密码
 立即注册

扫一扫,访问微社区

搜索
查看: 3235|回复: 0

Pivotal Cloud Cache缓存服务,最新“扩展立方体”技术扩展微...

[复制链接]

32

主题

111

帖子

793

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
793
发表于 2017-6-5 13:59:12 | 显示全部楼层 |阅读模式
Opengeode.cn上的链接:
http://opengeode.cn/portal.php?mod=view&aid=53

微信公众号上的链接:这里

中文原文如下:

导读

对于基于微服务的现代Web级应用来说,响应大量并发请求的能力是一项制胜因素。这些微服务不仅需要响应来自不同设备、不同接触点的大规模用户群请求,还需要响应大幅增长的来自设备、传感器、其他微服务等“非人类”来源的请求。处理如此强度的请求对数据层的应对能力要求极高。如果我们把对速度的需求放在复杂的分布式数据架构背景下,是很难想象如何让应用应对如此巨大的数据访问量的。但很幸运,我们有方法做到。

   Pivotal Cloud Cache问世   

我们很高兴宣布正式发布Pivotal Cloud Cache (下文简称Cloud Cache),它是一款适用于Pivotal Cloud Foundry的集成式内存中缓存服务。Cloud Cache已经在Pivotal Cloud Foundry Marketplace中推出。



Cloud Cache提供一种内存中键值存储机制,可让应用和用户高速访问数据Cloud Cache专门针对大量并发数据访问请求,并提供低延迟响应。

Cloud Cache可用来轻松调配专用的按需群集。开发人员或管理员可以快速上手,并根据不断变化的应用和用户需求调整日常缓存容量。

Cloud Cache按照不同缓存模式以服务套餐的形式提供,即用于缓存模式旁路和内联缓存模式的独立专用服务套餐。每种服务套餐(缓存模式)都可以根据需要独立使用。通过这些服务套餐,Cloud Cache可以提高微服务架构的运行速度,为现代开发实践提供支持。适用于旁路缓存模式的服务套餐已经发布,而适用于内联模式以及通过WAN网关的会话状态缓存和多站点复制的服务模式将于今年内推出。

那么,在为微服务架构提供性能方面,Cloud Cache表现又如何呢?


   使用Pivotal Cloud Cache扩展微服务   

“扩展立方体”是一个富有启发性的方法,可以通过它来了解微服务架构的扩展维度。这一框架最初由AKF Partners提出,描述了微服务沿三个维度扩展的方法。

本图来自 The New Stack,描绘了微服务扩展立方体。对于 Pivotal Cloud Foundry,X 轴是“通过添加实例扩展”

扩展立方体受到了一些关注,一些主题专家使用这个框架探讨微服务架构的可扩展性。缓存是用于扩展微服务的强大技术,可与扩展立方体中描述的三种技术组合使用。本文接下来会主要介绍缓存如何与每种技术组合使用。


   Y轴扩展   

Y轴扩展与功能分解有关,这是微服务的关键特性。微服务架构通过独立扩展每个微服务,并只针对架构中性能瓶颈的微服务,应用更多的基础架构资源,让我们能够更加精细地扩展架构。

Y轴扩展会形成一套具有不同工作负载类型的微服务。其中,只有一小部分会成为I/O密集型微服务,而这些微服务将会从缓存中获得最大收益。只需在必要的地方应用Cloud Cache。


   X轴扩展   

X轴扩展包括运行多个微服务实例,以扩展业务逻辑。通常会让负载均衡器将流量路由至下一个可用的微服务实例。如果有N个实例,那么每个实例将处理负载的 1/N。

请注意,X轴扩展是通过添加实例来扩展业务逻辑,没有规定对数据层进行任何特殊处理。X轴扩展需要跨所有微服务实例的共享数据层,因为每个实例都可访问所有数据,所以X轴扩展对数据层的性能和可扩展性要求十分苛刻。

Cloud Cache是用来扩展数据层的理想选择,也可用于添加实例扩展应用逻辑。扩展后备数据库非常昂贵、费时又有风险,而Cloud Cache的内存中架构和横向扩展功能可提供大量容量,可满足多个微服务实例的性能需求。

跨微服务实例的共享数据层避免了每个实例都有独立缓存层而带来的复杂性。所有实例的请求都可发送至一个Cloud Cache群集,在此群集中将请求内部路由至相应的服务器。

那么,我们如何让这种共享缓存方法,不与维持微服务间相互隔离的原则产生矛盾呢?开发团队需要这种隔离以便于自主工作,如果团队间没有任何数据存储或架构依赖关系,就可以更快地完成交付。然而在这种情况下,缓存通过同一个微服务的多个实例共享,而不是跨不同微服务共享缓存。每个实例对数据访问的要求都相同,因此没有必要针对数据层做出单独的自主决策。另外,如果缓存没有横跨不同的微服务,也不会横跨团队,最好的方法是在负责的团队内完全分配每个微服务的所有权。因此,跨微服务实例共享缓存无论怎样都不会违反团队的自主权。


   Z轴扩展   

在使用Z轴扩展时,每个服务器都会运行相同的代码副本,这与X轴扩展很相似,但主要的区别在于每个服务器仅负责一个数据子集。Z轴分割法通常用于扩展数据库,数据根据记录中的属性在一组服务器间分区,然后路由器将每个记录发送至相应的分区,并在分区中进行索引和存储操作。

Cloud Cache在这里特别有用,因为它本身就可分区数据,并在内部感知数据驻留的位置,所以不需要感知数据的外部路由器。站在应用或用户的角度,Cloud Cache看起来就是一个数据存储,因为数据分区从外部不可见。此外,Cloud Cache 通过在辅助服务器上复制数据分区,还可以在内部处理高可用性。这种内置的数据分区功能使Cloud Cache与Z轴扩展完美契合。


   3轴组合,性能大增   

可以将可扩展性的不同轴结合使用,实现多维组合。例如,可以在创建订单录入系统的多个实例来扩展业务逻辑的同时,按照客户ID分割数据,让每个实例仅处理一个数据子集。这是一个X-Z扩展的小例子,而当然其他组合也都是可行的。

将每个维度或维度组合与缓存层结合使用,不仅可以独立增强每个维度的效果,还可以产生额外的复合效果。

缓存具有多功能性,它非常适合提高性能。缓存可以独立使用,也可以与扩展立方体中的其他技术组合使用。后备存储不但开销巨大,而且不够灵活,所以缓存渐渐成为一种受欢迎的提高性能的方法。在采用缓存的过程中,Cloud Cache能帮助您赢在起跑线。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Apache Geode中文社区  

GMT+8, 2019-10-23 18:25 , Processed in 0.085909 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表