使用开源技术构建有赞分布式KV存储服务

背景 在有赞早期的时候,当时只有 MySQL 做存储,codis 做缓存,随着业务发展,某些业务数据用 MySQL 不太合适, 而 codis 由于当缓存用, 并不适合做存储系统, 因此, 急需一款高性能的 NoSQL 产品做补充。考虑到当时运维和开发人员都非常少, 我们需要一个能快速投入使用, 又不需要太多维护工作的开源产品。 当时对比了几个开源产品, 最终选择了 aerospike…

Read More

ZanProxy —— 本地代码调试线上页面,环境再也不是问题

一、ZanProxy 是什么 一言以蔽之,ZanProxy 是一个基于 Node.js 的代理服务器。它专注于帮助前端开发提高开发效率。 二、我们为什么需要一个代理工具 在前端开发中,我们常常会碰到以下几个场景: 对于前端开发者来说,我们需要一个工具能让我们直接用本地的前端代码调试QA环境、预发环境、甚至线上的页面。 我们需要在开发的时候需要快速切换环境,修改系统的 host 会有浏览器的 DNS 缓存,常常需要手动清除。…

Read More

有赞开源项目最佳实践

因为业务需求,有赞自己造了很多轮子,组件库尤其多,React,Vue,小程序都有涉及,其他开源项目有 zan-proxy 代理,PHP 的框架 zanphp 等。有人可能会觉得奇怪,为什么有赞要造这么多轮子?其实原因真的很简单,就是因为现有的替代品无法满足我们自身业务的需求,可能是不满足我们的定制需求,也可能是功能不符合我们要求。根据业务需要,我们总结了一套适合自己的套路、规范,并把这些套路、规范做成了工具、组件库或者框架。…

Read More

Vant 1.0 正式发布:轻量、可靠的移动端 Vue 组件库

Vant 是有赞前端团队维护的移动端 Vue 组件库,提供了一整套 UI 基础组件和业务组件。通过 Vant 可以快速搭建出风格统一的页面,提升开发效率。 Vant 一、关于 1.0 距离 Vant 首次发布刚好过去了半年时间,在这半年时间里 Vant 团队广泛吸纳社区的反馈和建议,持续对组件进行打磨、优化,使得…

Read More

Redis集群实现原理探讨

Redis集群是一个distribute、fault-tolerant的Redis实现,主要设计目标是达到线性可扩展性、可用性、数据一致性。 线性拓展 官方推荐最大的节点数量为1000,由于Cluster架构中无Proxy层,Master与Slave之间使用异步replication。 数据一致性 客户端容忍一定程度的数据丢失,集群尽可能保存Client write操作的数据,保证数据一致性。 可用性 Redis集群通过partition来提供一定程度的可用性,当集群中的一部分节点失效或者无法进行通讯时,集群仍可以继续提供服务。这里有两点补充: 只要集群中大多数Master可达、且失效的Master至少有一个Slave可达,即集群非Fail状态,…

Read More