基于storm的实时计算应用实践

有赞使用storm已经有将近3年时间,稳定支撑着实时统计、数据同步、对账、监控、风控等业务。订单实时统计是其中一个典型的业务,对数据准确性、性能等方面都有较高要求,也是上线时间最久的一个实时计算应用。通过订单实时统计,描述使用storm时,遇到的准确性、性能、可靠性等方面的问题。 订单实时统计的演进 第一版:流程走通 在使用storm之前,显示实时统计数据一般有两种方案: 在数据库里执行count、sum等聚合查询,是简单快速的实现方案,但容易出现慢查询。 在业务代码里对统计指标做累加,可以满足指标的快速查询, »

深入理解CSS外边距折叠(Margin Collapse)

外边距叠加一直是前端开发必须了解的一个概念,面试一般也会问到这个问题。所以整理一下相关外边距叠加相关的知识点。外边距叠加是什么?什么时候会发生外边距叠加?如何避免外边距叠加? 什么是外边距叠加 先来看看W3C对于外边距叠加的定义: In CSS, the adjoining margins of two or more boxes (which might or might not be siblings) can »

有赞 React 组件库(Zent)的开源与展望

Zent ( \ˈzent\ ) 是有赞 PC 端 WebUI 规范的 React 实现版本,提供了一整套基础的 UI 组件。目前我们有 35+ 组件,这些组件都已经在有赞的各类 PC 业务中使用。我们会在此基础上,持续开发一些新组件。 我们的目标是让 React 开发更快、更简单。如果你要开发一个商家后台,那么用Zent就在合适不过了。 »

How we redesign the NSQ-Smart Client

Overview As redesigned NSQ in youzan shipped with new features like HA and load balance, partition and replica are introduced in redesigned nsqd. Replications of each »

Redis集群实现原理探讨

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