老大吩咐的可重入分布式锁
|
络可访问性标准很重要,对Web开发人员,必须要解知识一些应Web可访问性标准,以便创造更好的访问体验。然而,有在一个问题实践中公认的W3C Web内容可访问性指南(WCAG,现在是2.1版本)太复杂了。每条规则都繁深奥无比,在阅读每段令人麻木的规则时,会让人感到越来越偏离真正的初衷——为每个人创造出色的用户体验。
归根结底,我们希望为人们而不是为规则开发Web应用程序。我们应该能够找出真正的变化,可以让我们的产品和网站体验对任何用户都更佳。本文中我们节选了《Practical Web Inclusion and Accessibility》 的关于Web无障碍的一些基本规则和标准,希望它们为大家提供一个起点,开始思考和实施当今的无障碍标准。 为支持 Redis 服务化,在服务化框架扩展支持了 Redis proxy,同时为了实 现在线数据迁移,参照 Redis cluster 的设计思想,对内部 Redis 存储做了改造,支持 slot 数据分片,数据迁移操作由 ClusterManager 组件执行,完成 slot 的重新规划及数据迁移。此外还支持 Redis 的 failover 机制,在master 或 slave 节点故障时会自动执行容错处理。我们 Redis 服务化项目 tribe 是从 2015 年底开始上线,处于逐步完善过程中。 总结 从对 Redis 的优化历程可以看出,技术的进步是由业务的需求推动的,我们需要拥抱需求。同时对于一个服务我们需要持续优化并保证服务的运维友好性才能保证服务的生命力。后续的一些计划,完善服务化体系中冷热数据分级存储机制以降低服务成本;引入新的组件以更好的满足业务需求、进一步完善集群管理组件降低运维复杂度。 作者:刘东辉
刘东辉,新浪微博基础架构组研发工程师。2013 年加入微博,先后参与微博 Redis、CounterService、SSDCache、CacheService 等基础组件的设计与开发工作,目前专注于分布式缓存、存储方向。 HA 系统不成熟 当前的 HA 系统更多的是采用自动发现问题,手动确认处理的策略,没有实现真正意义的自动化,运维成本依然很高。 为了解决以上问题,我们在 Redis 基础上实现服务化框架 CacheService。 CacheService 最早是为了解决内部使用 memcached 遇到的问题而开发的服务化框架,主要包含以下几个模块: 配置中心 ConfigServer 微博内部的配置服务中心,主要是管理静态配置和动态命名服务的一个远程服务,并能够在配置发生变更的时候实时通知监听的 ConfigClient。 资源层 实际的数据存储引擎,初期支持 memcached,后续又扩展了 Redis、SSDCache 组件,其中 SSDCache 是为了降低服务成本,内部开发的基于 SSD 的存储组件,用于缓存介于 memory 和 DB 之间的 warm 数据。 代理层 代理业务端的请求,并基于设定的路由规则转发到后端的 cache 资源,它本身是无状态的。proxy 启动后会去从 ConfigServer 加载后端 cache 资源的配置列表进行初始化,并接收 ConfigServer 的配置变更的实时通知。 客户端 提供给业务方使用的 SDK 包,通过它不需要在业务代码中实现数据路由规则,业务方也无需关心后端 cache 的资源。只需要简单配置所使用的服务池名 group 和业务标识 namespace 即可使用 cache 资源,client 从 ConfigServer 获取 proxy 的节点列表,选择合适的 proxy 节点发送请求,支持多种负载均衡策略,同时会自动探测 proxy 节点变更。 集群管理系统 ClusterManager
管理集群中各个组件的运行状态以保证业务的 SLA 指标,当出现异常时会自动执行运维处理。同时配置变更、数据迁移等集群操作也都是由它来负责。 (编辑:广元站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

