《大规模Java平台虚拟化与调优》——2.3 Active-Active架构与现代化数据平台

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
应用型负载均衡 ALB,每月750个小时 15LCU
简介:

本节书摘来自华章计算机《大规模Java平台虚拟化与调优》一书中的第2章,第2.3节,作者:(美)Emad BenjaminLiang) 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.3 Active-Active架构与现代化数据平台

图2-25展现了位于两个数据中心中的4个active-active端。在数据中心-1中,有Active-1A和Active-1B端,在数据中心-2中,有Active-2A和Active-2B端。Active-1A、1B、2A和2B端都包含了典型企业级应用的所有分层。在本例中,我们使用SpringTrader作为参考应用。对于数据中心-1来说,企业级应用实例可能同时分布于Active-1A和1B中,对于数据中心-2来说,情况类似。如果Active-1A出现了故障,Active-1B中的应用实例将会继续为访问流量提供服务,而不管Active-1A何时恢复在线状态。这表明Active-1B必须要准备承担Active-1A


<a href=https://yqfile.alicdn.com/94fb6fb68e9b2451ff3c6951f82ee8b381f7e016.png
" >

完整的峰值负荷。当然,有时候这不一定是可行的,因此部分额外的流量会转向数据中心-2,尤其是数据中心-2的地理位置在60英里的距离之内时。SLA需求会决定采用什么样的方式,如何平衡硬件成本和位置对SLA和响应时间的影响。你还可以使用如上所示的一种变体,也就是数据中心-1和2在60英里以内,而数据中心-3可以通过WAN连接。
如图2-26所示,联合使用了全局负载平衡器(global load balancer,GLB)和本地负载均衡器(local load balancer,LLB)来实现应用的快速响应,使其不受地理位置的负面影响。GLB会将用户的流量转移到本地地理位置的LLB。(例如,伦敦的流量会被转移到位于伦敦的LLB上,纽约的用户访问会被转移到纽约的LLB上,而东京的流量会转发到东京的LLB上)。GLB会保持与所有LLB的心跳连接并作出最优的路由决策。


c98618855b063d1a607f6b4dbe01e4b263208db2

地理位置节点的LLB配置池中都具有到每个SpringTrader应用服务的入口。图2-26展现了3个LLB配置。
东京的LLB池配置实际上是在负载均衡器池中所配置的4个SpringTrader应用服务。LLB有4个分发流量的入口。这4个入口在逻辑上分为Active-1A和Active-1B,这表明Active-1A应用服务的VM位于相同的vSphere主机上,而Active-1B SpringTrader应用服务的VM位于另外一个vSphere主机上。这种模式的LLB配置在纽约和伦敦站点上是类似的。要注意的是,对SpringTrader应用服务的流量是通过负载均衡的,但是每个应用服务到SQLFire数据fabric的通信是通过定位器的(locator),在这个调用中并没有涉及负载均衡器架构。在SpringTrader应用服务和SQLFire数据成员之间如果使用负载均衡器拦截调用的话是一种多余的行为,vFabric SQLFire定位器进程能够胜任对数据fabric访问的负载均衡和负载调节功能。
此外,为了更清晰地展现配置的其余部分,此处省略了Web服务器池的细节。如果你要添加对Web服务器池的单独配置,Web服务器会将LLB的流量分发到应用服务的LLB池中,理想情况下,要按照最少连接(least-connection)类型的调度算法。这意味着前端池(在本例中,也就是本地LLB Web服务器池)从GLB接收到访问流量,然后Web服务器池会将流量转发到应用服务的本地LLB中。在流量分发到具体的SpringTrader应用服务时,很重要的一点就是维持会话黏性(session stickiness)。注意,建议避免只有一个LLB Web服务器池(这意味着每个Web服务器池成员只指向一个具体的SpringTrader应用服务),这会提供一种不准确的容错性服务水平。SpringTrader应用服务,本质上也就是一个vFabric tc Server实例,可能会出现故障,但因为服务水平的测试是针对LLB Web服务器成员的,因此可能会产生误报(false positive)。最好是遵循双LLB的方式,在本地LLB所管理的地理节点中,有一个池用于Web服务器,另一个池用于SpringTrader应用服务。从active-active部署架构的视角来看,企业级应用层包含了两个主LLB池。第一个池中是一组vFabric Web服务器实例,它会将请求流量分发到第二个池中。到第二个池的典型分布式算法是最少连接算法。第二个池由vFabric tc Server实例组成,以无状态的方式运行,实际上,Web服务器和tc Server本身都是无状态的。没有必要再配置额外的Web服务器和tc Server集群,LLB会负责分布式流量。从Web服务器池到tc Server池的分发基于最少连接分布式算法,因此SpringTrader的会话一旦被初始化,在整个用户-会话/浏览器生命周期活动中,会话会保持粘性。
图2-27扩展了图2-26中的LLB池配置,在这个图中展现了2个LLB池,一个用于vFabric Web服务器,另一个用于vFabric tc Server实例。


fed690f7b6a89099d3f81952582dee716068b6fb
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
相关文章
|
4天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
8天前
|
存储 SQL 分布式计算
Java连接阿里云MaxCompute例
要使用Java连接阿里云MaxCompute数据库,首先需在项目中添加MaxCompute JDBC驱动依赖,推荐通过Maven管理。避免在代码中直接写入AccessKey,应使用环境变量或配置文件安全存储。示例代码展示了如何注册驱动、建立连接及执行SQL查询。建议使用RAM用户提升安全性,并根据需要配置时区和公网访问权限。具体步骤和注意事项请参考阿里云官方文档。
|
22天前
|
存储 SQL 分布式计算
MaxCompute 近实时增全量处理一体化新架构和使用场景介绍
本文主要介绍基于 MaxCompute 的离线近实时一体化新架构如何来支持这些综合的业务场景,提供基于Delta Table的近实时增全量一体的数据存储和计算解决方案。
|
22天前
|
存储 监控 安全
大数据架构设计原则:构建高效、可扩展与安全的数据生态系统
【8月更文挑战第23天】大数据架构设计是一个复杂而系统的工程,需要综合考虑业务需求、技术选型、安全合规等多个方面。遵循上述设计原则,可以帮助企业构建出既高效又安全的大数据生态系统,为业务创新和决策支持提供强有力的支撑。随着技术的不断发展和业务需求的不断变化,持续优化和调整大数据架构也将成为一项持续的工作。
|
24天前
|
搜索推荐 OLAP 流计算
OneSQL OLAP实践问题之基于 Flink 打造流批一体的数据计算平台如何解决
OneSQL OLAP实践问题之基于 Flink 打造流批一体的数据计算平台如何解决
31 1
|
24天前
|
Java Docker 微服务
微服务架构的概念、特点以及如何在Java Web开发中实现微服务。
微服务架构的概念、特点以及如何在Java Web开发中实现微服务。
50 1
|
26天前
|
存储 分布式计算 大数据
大数据架构管理规范
8月更文挑战第18天
33 2
|
25天前
|
Java Docker 微服务
微服务架构已成为Java Web开发的新趋势,它通过将应用分解为独立、可部署的服务单元,提升了系统的灵活性与可维护性。
微服务架构已成为Java Web开发的新趋势,它通过将应用分解为独立、可部署的服务单元,提升了系统的灵活性与可维护性。每个服务负责特定功能,通过轻量通信机制协作。利用Spring Boot与Spring Cloud等框架可简化开发流程,支持模块化设计、独立部署、技术多样性和容错性,适应快速迭代的需求。
60 1
|
27天前
|
消息中间件 Java API
解密微服务架构:如何在Java中实现高效的服务通信
微服务架构作为一种现代软件开发模式,通过将应用拆分成多个独立的服务,提升了系统的灵活性和扩展性。然而,实现微服务之间的高效通信仍然是许多开发者面临的挑战。本文将探讨在Java环境中实现微服务架构时,如何使用不同的通信机制来优化服务之间的交互,包括同步和异步通信的方法,以及相关的最佳实践。
|
1月前
|
存储 算法 前端开发
JVM架构与主要组件:了解Java程序的运行环境
JVM的架构设计非常精妙,它确保了Java程序的跨平台性和高效执行。通过了解JVM的各个组件,我们可以更好地理解Java程序的运行机制,这对于编写高效且稳定的Java应用程序至关重要。
34 3