我想构建一个EC2 "worker“实例集群,其中每个EC2都应该处理特定的用户碎片,让我们说:
因此,当用户-3试图登录并在我的服务中执行其他请求时,来自该用户的每个请求总是指向同一个EC2-1,这样我就可以将与特定用户有关的所有信息存放在堆中(以减少数据库的负载,避免来自不同分区的复杂查询,但这是不同的情况)。
在亚马逊,做这件事最好的方法是什么?
为此,我需要维护某种映射表(userId <-> instanceIp)。我考虑过的一个选项是有额外的“路由”EC2实例(或至少有两个实例的集群,用于故障转移,由ELB前端),它只根据这样的映射表管理重定向到"worker“实例(在同一区域),并保持表更新(可能,每个"worker”实例应该以某种方式报告其启动和运行并管理用户-X)。
但是,也许有一种方法可以通过亚马逊服务来实现,而不需要额外的“路由”EC2?我读过一些关于VPC、Route53和Geo路由的文档,但我能找到的最接近的东西是http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/rrsets-working-with.html,但我不确定这是否正确,因为每个"worker“EC2上可能有数百万用户,而且我不知道它适用于动态内容,比如用户ids。
是的,我希望每名工人的EC2会有2百万的用户.
发布于 2015-02-02 17:36:34
你可能正在寻找的是在ELB上的棘手的会议。这将将每个会话的所有通信量路由到单个主机。这有一些缺点,例如失去实例的会话失败。(除非共享)
采用集群路由通常需要一些开销。或者在登录到指定的集群后重定向用户,或者通过代理将通信量内部路由到分配给用户的应用服务器。
https://stackoverflow.com/questions/28283333
复制相似问题