搭建方案 集群需要用到亚马逊提供的EC2负载均衡器(ALB模式)、ElasticCache Redis集群、Elastic File Systems、RDS for MySQL、CloudWatch托管服务...步骤4:配置应用服务器 在AWS控制台中选择EC2服务,点击右侧菜单中“实例→实例”,点击“创建新实例”后,按照下面的推荐值完成配置: 镜像:在【亚马逊云科技Marketplace】中搜索“GrapeCity...推荐所有EC2共享同一个证书,这样在登录时更方便一些 创建完成后,等实例状态变成“正在运行”后,点击查看详情,私有IPv4地址即内网IP,用于配置负载均衡器;公有IPv4 DNS是外网地址,用于监控(...EC2实例停止后重新启动时,公有IPv4地址会发生变化,所以,不能使用这个地址做监控),记录下这两个值备用。...提示:没有关联到负载均衡器之前,targets的heath status都是Unused 5.2 设置负载均衡器 在AWS控制台中选择EC2服务,点击右侧菜单中“负载均衡→负载均衡器”,点击“创建负载均衡器
使用弹性伸缩 亚马逊的EC2产品提供弹性伸缩这一云计算的独特功能。像往常一样为你的应用程序设置一个负载均衡器和几个Web服务器。在模板AMI的基础上设计你将不断复用的Web服务器。...然后设置弹性伸缩并根据你预测的流量设置阈值。当超过阈值时,AWS将启动你的Web服务器的新实例,并自动将其置于负载均衡器池中。一旦流量低于最低阈值,亚马逊将从负载均衡器池中为你移除一台服务器。...在执行此操作时,你可以继续将所有写入的内容发送到单个处于活动状态的主数据库。 或者,你希望采用基于MySQL社区版( community)服务器的亚马逊RDS解决方案,但需要某些设置保持锁定。...如果单个主数据库上的负载仍存在问题,那么可以垂直扩展该节点。通过在EBS的根卷(root volume)上实例化一个新的更大的EC2实例来完成此操作。...然后分离该root volume,停止你的旧实例,分离旧实例的root volume,并将其移动到新的服务器。
服务实例的网络位置是在启动时注册到服务注册表中,并且在服务终止时从注册表中删除。服务实例注册信息一般是使用心跳机制来定期刷新的。 NetflixOSS提供了一种非常棒的客户端发现模式。...而这种模式一个最大的缺点是需要针对不同的编程语言注册不同的服务,在客户端需要为每种语言开发不同的服务发现逻辑。 我们分析过客户端发现后,再看看服务端发现。...客户端通过负载均衡器向某个服务提出请求,负载均衡器向服务注册表发出请求,将每个请求转发往可用的服务实例。跟客户端发现一样,服务实例在服务注册表中注册或者注销。 ...ELB负载均衡器负责在注册的EC2实例或者ECS容器之间均衡负载,并不存在一个分离的服务注册表,而EC2实例和ECS实例也向ELB注册。 ...HTTP反向代理和负载据衡器(例如NGINX)可以用于服务发现负载均衡器。服务注册表可以将路由信息推送到NGINX,激活一个实时配置更新;例如,可以使用ConsulTemplate。
为解决最初设计的不足,Grab 的团队集成了 AWS 节点终止处理程序(Node Termination Handler,NTH),使用负载均衡器控制器进行目标组映射,并切换到 ELB 卷进行存储。...使用 AWS 节点终止处理程序(队列处理器)支持 Kafka 的优雅关闭(来源:Grab 工程博) 他们使用 AWS 负载均衡器控制器(LBC)动态映射网络负载均衡器(NLB)目标组来解决工作节点终止时网络连接中断的问题...使用 ESB 有许多好处,例如成本更低、将卷大小与实例规格解耦、更快的同步速度、快照备份以及在不停机的情况下增加容量。此外,他们将 EC2 实例类型从存储优化改为通用型或内存优化型。...通过对 Kubernetes 和 Strimzi 进行额外配置,能够在新集群上自动创建 EBS 卷,并在将 Kafka Pod 重定位到不同工作节点时在 EC2 实例之间附加 / 分离卷。...经过这些改进,EC2 实例退役以及任何需要对所有工作节点进行轮换的操作都可以在没有人工干预的情况下进行,这些操作变得更快速、更不容易出错。
Elastic Load Balancing 在一个或多个可用区中的多个目标(如 EC2 实例、容器和 IP 地址)之间自动分配传入的流量。...负载均衡器接受来自客户端的传入流量并将请求路由到一个或多个可用区中的已注册目标 (例如 EC2 实例)。负载均衡器还会监控已注册目标的运行状况,并确保它只将流量路由到正常运行的目标。...当负载均衡器检测到不正常目标时,它会停止将流量路由到该目标。然后,当它检测到目标再次正常时,它会恢复将流量路由到该目标。 您可通过指定一个或多个侦听器将您的负载均衡器配置为接受传入流量。...在禁用一个可用区后,该可用区中的目标将保持已注册到负载均衡器的状态。但是,即使它们保持已注册状态,负载均衡器也不会将流量路由到它们。...请求路由选择 在客户端将请求发送到负载均衡器之前,它会利用域名系统 (DNS) 服务器解析负载均衡器的域名。
优雅停机的目标是在服务关闭时: 允许当前的处理请求在指定的宽限期内完成。 阻止新的请求进入。 向外部监控或负载均衡器标记服务为不可用。...完成现有请求:Tomcat 会确保已有请求在指定的宽限期内完成。如果请求未完成且宽限期到达,将强制终止。 注意:若某些请求未在宽限期内完成,则这些请求将被中断。...优雅停机的流程 在 Tomcat 和 Reactor Netty 上的优雅停机流程类似,大致包含以下几个步骤: 标记服务不可用:停止接收新的请求,通常是通过在负载均衡器中剔除该服务或在网络层阻断连接来实现...负载均衡器中的停机策略 在实际应用中,负载均衡器(如 Nginx、Kubernetes)也可以在服务停机时配合优雅停机流程,通过从负载均衡池中剔除当前实例来防止新流量进入。...负载均衡器协作:在生产环境中建议与负载均衡器配合,实现完整的优雅停机流程。 避免频繁停机:频繁停机会中断长时间任务,应避免在高负载时频繁重启应用。 8.
该模式是客户端通过负载均衡器向某个服务提出请求,负载均衡器查询服务注册表,并将请求转发到可用的服务实例。同客户端发现模式类似,服务实例在服务注册表中注册或注销。...但DNS 也有限制,例如,它无法及时感知服务实例是否有效,不能够按服务器的处理能力来分配负载等。所以一个常用的解决方法是在DNS服务器与服务实例之间搭建一个负载均衡器。...,可以在多个Amazon EC2实例之间自动分配应用程序的传入流量。...Classic负载均衡器适用于在多个EC2实例之间进行简单的流量负载均衡,而应用程序负载均衡器则适用于需要高级路由功能、微服务和基于容器的架构的应用程序。...应用程序负载均衡器可将流量路由至多个服务,也可在同一EC2实例的多个端口之间进行负载均衡。这两种类型均具备高可用性、自动扩展功能和可靠的安全性。
然后,客户端使用负载均衡算法来选择一个可用的服务实例并发出请求。 下图显示了此模式的结构。 ? 服务实例的网络位置在服务注册表启动时被注册。当实例终止时,它从服务注册表中删除。...负载均衡器查询服务注册表并将每个请求路由到可用的服务实例。与客户端发现一样,服务实例可在服务注册表中进行注册和注销。 AWS弹性负载均衡器(ELB)是服务器端发现路由器的示例。...ELB负载均衡一组注册的弹性计算云(EC2)实例或EC2容器服务(ECS)容器之间的流量。没有单独的服务注册表。相反,EC2实例和ECS容器在ELB本身注册。...代理扮演服务器端发现负载均衡器的角色。为了向服务发出请求,客户端通过代理使用主机的IP地址和服务的分配端口路由请求。然后,代理将请求透明地转发到在集群中某处运行的可用服务实例。...HTTP反向代理和负载均衡器(如NGINX)也可以用作服务器端发现的负载均衡器。服务注册表可以将路由信息推送到NGINX,并调用优化的配置更新;例如,您可以使用Consul模板。
1.使用自动缩放(Auto-scaling) Amazon EC2提供自动缩放这一云计算独有的特性。我们可以像往常一样为应用程序设置一个负载均衡器和一些Web服务器。...基于AMI模板设计Web服务器,这个模板会多次复用。然后设置自动缩放,并根据我们预测的流量设置阈值。一旦流量超过了阈值,AWS将创建一个新的Web服务器实例,并自动将其加入到负载均衡器的资源池中。...如果单个主数据库上的负载仍然是个问题,那么我们可以垂直扩展该节点。通过在EBS根卷上开辟一个更大的新EC2实例,我们可以完成此操作。...然后解挂这个根卷,停止旧实例,解挂旧实例的根卷,并将其移到新的服务器。一旦你附加了这个活动的根卷,更大的EC2新实例就和你原来的服务器一样了,只是它的容量变得更大了!...这样的配置需要格外小心,因为现在每个EBS卷不会自己运作了,但RAID 0却要求全部四个卷都是完整的。同时,这也会影响EBS快照备份。
之后,客户端利用负载均衡算法选择一个可用的服务实例并发出请求。 图 4-2 展示了该模式的结构 ? 服务实例的网络位置在服务注册中心启动时被注册。当实例终止时,它将从服务注册中心中移除。...4.3、服务端发现模式 服务发现的另一种方式是服务端发现模式。图 4-3 展示了该模式的结构: ? 客户端通过负载均衡器向服务发出请求。负载均衡器查询服务注册中心并将每个请求路由到可用的服务实例。...相反,EC2 实例与 ECS 容器由 ELB 本身注册。 HTTP 服务器和负载均衡器(如 NGINX Plus 和 NGINX)也可以作为服务端发现负载均衡器。...这些代理扮演着服务端发现负载均衡器角色。为了向服务发出请求,客户端通过代理使用主机的 IP 地址和服务的分配端口来路由请求。之后,代理将请求透明地转发到在集群中某处运行的可用服务实例。...它是一个包含了服务实例网络位置的数据库。服务注册中心必须是高可用和最新的。虽然客户端可以缓存从服务注册中心获得的网络位置,但该信息最终会过期,客户端将无法发现服务实例。
下图中展示了该模式的结构: 客户端通过负载均衡器向服务发起请求,负载均衡器查询服务注册表,并将请求路由到可用的服务实例。与客户端发现相比,服务实例是通过服务注册表进行注册和注销的。...AWS的ELB(Elastic Load Balancer)就是服务器端发现路由器的示例。ELB通常用于负载均衡来自外网的流量,但你也可以使用ELB来负载均衡私有云(VPV)内部的流量。...客户端使用DNS名称,通过ELB发送请求(Http或TCP),ELB在已注册的弹性计算云(EC2)实例或EC2容器服务(ECS)的容器之间进行负载均衡。...这种实现并没有单独的服务注册表,而是将EC2实例和ECS容器注册到ELB自身上。 Http服务器和负载均衡器(比如,Nginx plus和Nginx)也可以用作服务器端发现的负载均衡器。...客户端向服务发出请求时,会通过代理进行路由,透明地将请求转发到集群中某个服务实例。 服务器端发现模式最大的优点是,服务发现的实现细节从客户端抽离出来了,客户端只用发送请求到负载均衡器即可。
使用自动缩放 自动缩放是云计算,特别是亚马逊 EC2 提供的独特功能。只需要像往常一样为您的应用程序设置一个负载均衡器和一些网页服务器。将您的网页服务器保存为模板 AMI。...然后设置自动缩放并根据您预测的流量设置阈值。当流量超过阈值时,AWS 将启动一个或多个 Web 服务器的新实例,并自动将其添加到负载均衡器池中。...您的被动服务器也可以处理您的应用程序的读取操作。在实现高可用性的同时,通过将大部分选择(SELECT)操作发送到另一个服务器,您也可以获得可扩展性。...创建一个新的更大的 EC2 实例并将 EBS 卷挂载上去,然后停止您的旧实例。此时你的新 EC2 实例将替代你原来的服务器。 3....但这并不是完美的,有时你会发现磁盘 I/O 吞吐量上发生很大的变化。这对数据库应用来说会是个很大的问题。亚马逊的虚拟化基础架构会根据实例的大小提高或降低实例的磁盘 I/O 性能。
配置错误:代理服务器(如 Nginx、Apache)或负载均衡器的超时时间设置不当。 服务器过载:后端服务器的资源不足,无法及时处理请求。 正文 1....保存配置文件并重启Nginx服务: sudo systemctl restart nginx 1.3 负载均衡器配置问题 ⚖️ 如果你的架构使用了负载均衡器(如 AWS ELB、HAProxy),检查负载均衡器的健康检查配置以及超时时间设置是否合理...如果负载均衡器无法在设定时间内与后端实例通信,也会触发504错误。...修改负载均衡器超时设置: 以 AWS ELB 为例,可以在 AWS 管理控制台中调整负载均衡器的健康检查时间和超时时间: 健康检查间隔:减少检查频率可以减轻负载。...示例:增加EC2实例的性能 如果使用的是AWS,可以选择升级EC2实例的类型: aws ec2 modify-instance-attribute --instance-id i-0123456789abcdef
例如,AWS 的 EC2 自动扩容组可以根据 LOAD(负载)动态调整实例数量。 解决方案 当想请求一个服务时,客户端通过运行在已知位置的路由器(即负载均衡器)发出请求。...这个负载均衡器查询注册中心要调用的服务有哪些实例,或者注册表其实就集成在负载均衡器中,然后把请求转发到对应的实例。如下图所示: ?...举例 AWS 弹性负载均衡器(ELB)是服务器端发现路由器的一个例子。客户端将 HTTP 请求(或者其他应用协议的 TCP 链接请求)发到 ELB,ELB 负责在一组 EC2 实例中负载均衡。...ELB 可以负载均衡来自外网的请求,也可以部署在VPC中负载均衡内部的请求。ELB 也作为服务注册中心,EC2 实例可以通过 API 调用显式地向 ELB 注册,或者作为自动扩容组的一部分自动注册。...相对于客户端服务发现来说,需要更多的网络跳转 相关的设计模式 负载均衡器使用注册中心 负载均衡器可能会使用断路器调用服务 客户端服务发现是另一种替代解决方案
每个 ASG 都有一个弹性负载均衡器(ELB),它促进了与集群的所有连接并充当入口点。每个集群还附带一些辅助服务和作业,但其中大部分已经部署在 PaaSTA 上。...下表提供了跨部署方法的不同组件的概述: 零件 EC2 PaaSTA 集群入口点 电子负载均衡器 Yelp 的服务网格 集群平衡 kafka-utils 中的再平衡算法 巡航控制 主题自动分区 cron...最后,我们需要确保这个过程经过全面测试并且是安全回滚的。 迁移过程的第一步是为我们的每个 Kafka 集群设置一个基于 PaaSTA 的负载均衡器,它也可以用于宣传基于 EC2 的代理。...在 Cruise Control 完成将所有分区数据从 EC2 代理移到 PaaSTA 代理之后,我们准备终止 EC2 代理。...停用 EC2 代理后,我们删除了停用帮助程序服务的实例,并在集群的 Cruise Control 实例中启用了自我修复。现在这样做是安全的,因为集群完全由基于 PaaSTA 的代理组成。
二级负载均衡器配置 我们发现,解决以上问题的更好办法,是在Kubernetes集群前配置负载均衡器,例如HAProxy或者NGINX。...HAProxy为每个Kubernetes服务配置了“后端”,以便将流量交换到各个pods。 这种“二级负载均衡器配置”主要也是为了适应AWS ELB相当有限的配置选项。...图1:我们的“二级负载均衡器配置流程“ 在任何情况下,创建新的Kubernetes服务,我们都需要一种机制动态重新配置负载均衡器(在我们的例子中是HAProxy)。...话说回来,在我们开发了用于负载均衡的解决方案后,另一项挑战接踵而至:蓝绿部署(Blue-green deployments)。...监控 Kubernetes具备超强的故障恢复机制,Kubernetes会重启意外停止的pod。
负载均衡器的实现因集群和平台而异,但该服务提供了一个通用抽象来表示在所有 Kubernetes 安装中保持一致的负载均衡器。...当 externalTrafficPolicy 为 Local 时,负载均衡器流量到健康的节点 一种可能丢失流量的场景是节点丢失了服务的所有 Pod,但外部负载均衡器尚未探测健康检查 NodePort。...这种情况的可能性在很大程度上取决于负载均衡器上配置的健康检查间隔。间隔越大,发生这种情况的可能性就越大,因为即使在 kube-proxy 已删除该服务的转发规则后,负载均衡器仍会继续向节点发送流量。...当 Pod 在滚动更新期间开始终止时,也会发生这种情况。由于 Kubernetes 不会将终止 Pod 视为“就绪”,因此在滚动更新期间,当任何给定节点上只有终止 Pod 时,流量可能会丢失。...,方法是继续为现有连接转发流量,但将新连接重新路由到其他非终止端点。
每个实例上都有一个小小的自定义引导服务,这是引导镜像的一部分,它会查找实例配置,拉取合适的容器镜像,并启动容器。 容器集在实例的生命周期里都不会变。...不会有一个调度服务将一个实例从“核心”转成“前端”或其他类型的实例:要改变集群的结构,实例会整体创建或销毁,而不是让它们运行一组不同的容器。...每个实例上都有轻量级的监控服务,如果一个容器死掉,它会将其复活,而如果一个实例运行了任何集群不再需要的软件版本,那么它会将其终止。 对于进入的流量,我们使用 AWS 网络负载均衡器。...资源管理 在资源管理方面,我们可以根据服务的需求确定要使用的 EC2 实例类型。我们不需要知道如何将较小的服务打包到较大的实例上。...每个缩放组中的期望实例数随时都可以手动设置,设置完成后,自动缩放策略会再次接管这项工作,根据系统负载增加和减少实例数量。 我们向客户收费是根据他们实际使用服务的情况。
本文适用于以下场景: 在VPC架构实现高可用的情况下,通过elb负载均衡器针对不同目标组的不同应用设定转发规则,从而实现利用负载均衡器的A记录+端口/配置的PATH路径访问到相应目标组的主机应用上。...4、将已写好的JSON或YAML复制到模板中 ?...5、 二、部署应用 在EC2中部署应用(可利用userdata创建执行代码和rc.local(需允许x权限)重启执行代码)并制作ami(如需),测试ami实际可用 三、创建目标组 根据需求创建所需目标组...四、创建负载均衡器 1、根据需求配置负载均衡器名称、端口等,根据业务需求选择可用区和子网 ? ? 2、在配置路由界面选择一个已有的目标组(此处为group1) ?...五、创建启动模板(如需) 六、创建AutoScalling组(如需) 七、配置转发规则(重点) 通过负载均衡器的侦听器配置转发规则,达到通过访问链接后跟配置路径访问不同服务的需求 ? ? ?
领取专属 10元无门槛券
手把手带您无忧上云