检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
客户应用程序 客户应用程序,即Redis集群客户端。 Redis可直接使用开源客户端进行连接,关于多语言客户端连接示例,请参考用户指南的连接缓存实例。 LB-M/LB-S 负载均衡服务器,采用主备高可用方式。Redis集群实例提供访问的IP地址和域名,即为负载均衡服务器地址。 Proxy
用户请求进入系统:当用户发起秒杀请求时,请求会首先进入负载均衡服务器。 负载均衡:负载均衡服务器会根据一定的算法将请求分发给后端多台服务器,以达到负载均衡的目的。负载均衡算法可以采用轮询、随机、最少连接数等方式。 业务逻辑处理:后端服务器接收到请求后,进行业务逻辑处理,并根据请求的商品数量、用户身份等信息进行校验。
节点间进行数据迁移的过程中,单个key过大(≥512MB)会触发Redis内核对于单key的迁移限制,造成数据迁移超时失败,进而导致规格变更失败,key越大失败的概率越高。 Cluster集群实例扩容或缩容时,请确保客户端开启集群拓扑自动刷新配置,否则在变更后需要重启客户端。Le
客户Http的Server端关闭导致Redis访问失败 原因分析:客户端使用长连接,或者连接池,用完后关闭与DCS实例的连接,再次使用时,出现报错。 解决方案:使用长连接或连接池,用完后不要关闭连接;如果发现连接中断,请重新建连。 父主题: 客户端和网络连接
Cluster集群实例使用内置key且跨slot的Lua脚本时迁移失败 当源实例是Cluster集群,且使用了内置key且跨slot的Lua脚本,迁移到DCS集群实例失败时,可以将目标端改为主备或读写分离实例。 在Cluster集群扩缩容、slot迁移等slot分布会发生变化的场
Memcached如何迁移? 由于Memcached本身没有命令可遍历查询所有数据,因此无法从正在使用的Memcached中直接导出数据、并迁移到云缓存Memcached实例。 建议通过应用程序写日志的方式记录缓存key、同时提取key-value,写入云缓存Memcached,以逐步完成数据的迁移。
请根据实际情况替换。 图1 Redis单机实例示意图 示意图说明: VPC 虚拟私有云。实例的内部所有服务器节点,都运行在相同VPC中。 客户应用 运行在ECS上的客户应用程序,即实例的客户端。 Redis实例兼容开源协议,可直接使用开源客户端进行连接,关于多语言客户端连接示例,请参考用户指南的连接缓存实例。
在源端Redis添加源端转发服务器的白名单。 在源端转发服务器配置安全组。 获取华为云ECS的公网IP地址。 配置源端转发服务器安全组入方向,添加华为云ECS的公网IP地址,并放开来自华为云ECS访问请求的端口(以6379为例)。 配置源端转发服务器的Nginx转发配置。 登录L
已成功创建Redis实例,且状态为“运行中”。创建Redis实例的操作请参考购买Redis实例。 已创建弹性云服务器,创建弹性云服务器的方法,请参见购买弹性云服务器。 如果弹性云服务器为Linux系统,该弹性云服务器必须已经安装gcc编译环境。 连接实例前确保客户端与Redis实例之间网络互通,具体请参考连接Redis网络要求。
使用DCS实现游戏开合服的数据同步 游戏开合服,指大型网络游戏开启新服务器(服务区)或将新老服务器合并。在游戏开合服过程中,会遇到如何将不同服务器数据同步的问题。通过DCS服务Redis的消息队列pub/sub机制,可以将数据变更消息发布到Redis的频道中,其他游戏服务器订阅该频道,接收数据变更消息,从而实现
可从磁盘数据库中获取数据进行预热,降低后端服务在启动初期的压力。 实例架构设计 DCS的Memcached单机实例架构,如图1所示。 图1 Memcached单机实例示意图 示意图说明: VPC 虚拟私有云。实例的内部所有服务器节点,都运行在相同VPC中。 Memcached单
申请一台弹性云服务器(ECS),满足以下要求,这样保证ECS与DCS缓存实例网络互通,同时可以从本地电脑远程SSH连接ECS。 绑定弹性IP,公网可以访问ECS. ECS的虚拟私有云以及子网配置成与DCS缓存实例相同。 ECS配置正确的安全组访问规则。 为了方便,ECS使用Linux操作系统。
发起的其他请求可能出现暂时性失败。 复杂的网络环境 由于客户端与Redis服务器之间复杂网络环境引起,可能出现偶发的网络抖动、数据重传等问题,此时,客户端发起的请求可能会出现暂时性失败。 复杂的硬件问题 由于客户端所在的硬件偶发性故障引起,例如虚拟机HA,磁盘时延抖动等场景,此时
Memcached单个缓存对象的value值不能超过1M。超过1M的场景,建议使用Redis。 Key的长度大于250字符 如确需使用Memcached,可将key先进行md5,得到散列值,然后存储key对应的散列值。 业务需要保证数据高可靠 开源Memcached不支持持久化数据,无法存副本、备份以及数据迁移。
0主备实例架构,如图1所示。 图1 Redis 3.0主备实例示意图 示意图说明: VPC 虚拟私有云。实例的内部所有服务器节点,都运行在相同VPC中。 客户应用 运行在ECS上的客户应用程序,即Redis的客户端。 Redis实例兼容开源协议,可直接使用开源客户端进行连接,关于多语言客户端连接示例,请参考用户指南的连接缓存实例。
使用Redis-py库中的Redis()方法在每个游戏服务器上创建一个Redis客户端连接。 使用pubsub()方法在每个游戏服务器上创建一个Redis订阅者和发布者。用于订阅其他游戏服务器发布的消息,以及发布本地游戏服务器的数据更新消息。当某个游戏服务器需要更新数据时,它会将更新的消息发布到
创建CCE节点池,例如cce-test-nodepool。创建方式请参考创建节点池。 创建CCE节点池时,“节点类型”请选择“弹性云服务器-虚拟机”,“容器引擎”请选择“Docker”,“操作系统”请选择“CentOS 7.6”,并需要绑定“弹性公网IP”,选择“使用已有”或“自动创建”。
物理隔离。您可以将应用程序也进行跨AZ部署,从而达到数据与应用全部高可用。 Memcached主备实例架构设计 DCS的Memcached主备实例架构,如图1所示。 图1 Memcached主备实例示意图 示意图说明: VPC 虚拟私有云。实例的内部所有服务器节点,都运行在相同VPC中。
使用DCS实现游戏开合服的数据同步 该实践介绍如何使用Redis实现不同服务器数据同步。在游戏开合服过程中,会遇到如何将不同服务器数据同步的问题。通过DCS服务Redis的消息队列pub/sub机制,可以将数据变更消息发布到Redis的频道中,其他游戏服务器订阅该频道,接收数据变更消息,从而实现数据同步。
通过Nginx访问Redis 登录ECS控制台,确认跳板机的安全组规则是否放开,如果没有,则需要为安全组放开8080和8081两个端口。 单击ECS实例名称,进入ECS详情页面。 选择“安全组”页签,单击“配置规则”,可进入安全组配置页面。 图6 进入ECS安全组 图7 添加安全组入方向规则