• 开源数据库的现状:方案、设计思想及适用场景

    开源RDBMS与互联网的崛起很长时间以来,关系型数据库一直是大公司的专利,市场被 Oracle / DB2 等企业数据库牢牢把持。但是随着互联网的崛起、开源社区的发展,上世纪九十年代 MySQL 1.0 的发布,标志着关系型数据库的领域社区终于有可选择的方案。 MySQL 第一个介绍的单机 RDBMS 就是 MySQL。相信大多数朋友都已经对 MySQL 非常熟悉,基本上 MySQL 的成长史就是互联网的成长史。我接触的第一个 MySQL 版本是 MySQL 4.0,到后来的 MySQL 5.5 更是经典——基本所有的互联网公司都在使用。MySQL 也普及了「可插拔」引擎这一概念,针……
  • 消息队列设计精要

    消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。 当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、MetaQ、RocketMQ等。 本文不会一一介绍这些消息队列的所有特性,而是探讨一下自主开发设计一个消息队列时,你需要思考和设计的重要方面。过程中我们会参考这些成熟消息队列的很多重要思想。 本文首先会阐述什么时候你需要一个消息队列,然后以Push模型为主,从零开始分析……
  • code123
    HA 高可用软件系统保养指南

    HA 高可用软件系统保养指南

    又过了一年 618,六月是公司一年一度的大促月,一般提前一个月各系统就会减少需求和功能的开发,转而更多去关注系统可用性、稳定性和管控……
  • 解谜谷歌DevOps:什么特质可以打造世界级可靠系统?

    本文由 Gene Kim 根据对 Randy Shoup 的采访整理,深入讨论和讲解谷歌 DevOps 的提升之道,下面一起深入了解。本文系 OneAPM 联合高效运维编译整理。 Dr. Spear的模型有如下四大能力: 能力1:在问题发生时马上就能发现; 能力2:一旦发现问题立刻集群式解决(Swarming),并将此记录下来储备成新知识; 能力3:在整个公司范围内传播新知; 能力4:以开发为主导。 这也是采访 Randy Shoup 的基础,此次采访还揭示了一些在谷歌与 eBay 中未曾广泛讨论过的实践案例。 (笔者从 Randy Shoup 那里学到了太多东西,难以言喻。如果想了解更……
  • code123
    Elasticsearch 架构以及源码概览

    Elasticsearch 架构以及源码概览

    Elasticsearch 是最近两年异军突起的一个兼有搜索引擎和NoSQL数据库功能的开源系统,基于Java/Lucene构建。最近研究了一下,感觉 Elastic……
  • code123
    设计高并发下的读服务?一个电商老兵的10条经验

    设计高并发下的读服务?一个电商老兵的10条经验

    本文作者是一个一线的电商老兵,任职于京东商城。在本文中,他将会分享他在构建以读为主的系统时总结的经验和教训,内容包括使用HTTP协议……
  • code123
    基于用户画像大数据的电商防刷架构

    基于用户画像大数据的电商防刷架构

    一、背景介绍 最近1~2年电商行业飞速发展,各种创业公司犹如雨后春笋大量涌现,商家通过各种活动形式的补贴来获取用户、培养用户的消费习……
  • code123
    小米开源监控系统OpenFalcon应对高并发7种手段

    小米开源监控系统OpenFalcon应对高并发7种手段

    今天给大家简单介绍一下 OpenFalcon 应对高并发的一些手段。OpenFalcon 是一个监控系统,来自于小米的运维团队,OpenFalcon 主要针对运维……
  • code123
    并发之痛 Thread,Goroutine,Actor

    并发之痛 Thread,Goroutine,Actor

    聊这个话题之前,先梳理下两个概念,几乎所有讲并发的文章都要先讲这两个概念: 并发(concurrency) 并发的关注点在于任务切分。举例……
  • 前后端分离

    文章作者来自ThoughtWorks:贾朝阳,图片来自网络。 近两年来,前、后端分离的架构得到越来越多的认可,越来越多的团队在尝试、推广这种架构。但在团队采纳这种架构之前依然需要冷静思考,这是不是自己需要的? 什么是前、后端分离? 字面理解,前端与后端分离。以Web系统为例,浏览器一端的显示、交互、逻辑处理是系统的前端;前端需要获取数据、持久化数据、通知其他系统,这些无法在浏览器中单独完成,需要后端提供服务。很明显前端系统、后端系统已经分离,那为什么还要强调分离呢?此分离非彼分离,系统的实例是分离的,但系统的母……
  • 从100PV到1亿级PV网站架构演变

    一个网站就像一个人,存在一个从小到大的过程。养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则。本文结合我自已14年网站人的经历记录一些架构演变中的体会。 1:积累是必不可少的 架构师不是一天练成的。 1999年,我作了一个个人主页,在学校内的虚拟空间,参加了一次主页大赛,几个DREAMWEAVER的页面,几个TABLE作布局,一个DB连接,几行PHP的代码嵌入在HTML中,再用FTP传到服务器上就可以给别人展示一个网站。 2000年,个人主页已经不能满足好奇,在当时的网管中心管起几台机器,作起网线水晶头,用ALL……
  • 如何设计一款优秀的软件架构

    前言 ”Look deep into nature, and then you will understand everything better.“ -- Albert Einstein 我国传统文化上,要做成一件事,讲究三个方面:明道,优术,取势。在软件架构设计方面而言,也是类似的道理:遵循自然规律以明确大的方向,使用优秀的实操战术,再根据实际情况落地。 这是个快餐年代,几乎所有人都只做一件事 -“取势”。 几乎没有多少人会去理解一个Servlet的工作原理,去理解一次HTTP请求的完整流程,因为有超多框架帮你屏蔽了这里的细节。询问一个人会什么技术,回答也往往是我会Hibernate、Spring、Ibatis、会Pul……
  • code123
    架构腐化之谜

    架构腐化之谜

    前言 新技术层出不穷。过去十年时间里,我们经历了许多激动人心的新技术,包括那些新的框架、语言、平台、编程模型等等。这些新技术极大……