
架构
长空飞鹰
互联网IT技术族
展开
-
细聊冗余表数据一致性
本文主要讨论四个问题:(1)为什么会有冗余表的需求(2)如何实现冗余表(3)正反冗余表谁先执行(4)冗余表如何保证数据的一致性 一、需求缘起互联网很多业务场景的数据量很大,此时数据库架构要进行水平切分,水平切分会有一个patition key,通过patition key的查询能够直接定位到库,但是非patition key上的查询可能就转载 2016-03-03 13:31:42 · 902 阅读 · 0 评论 -
开源的DevOps开发工具箱
DevOps是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。在DevOps的整个流程中,使用一些开源工具可以促进开发与运维之间的沟通,有利于项目的管理,甚至可以达到事半功倍的效果。本文作者Richard Kraaijenhagen是Owlin创始人,全栈工程师,数据科学家。他收集了DevOps开发可能用到的所有工具,并转载 2016-04-11 19:38:28 · 1684 阅读 · 0 评论 -
保证分布式系统数据一致性的6种方案
问题的起源在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要么同时成功;要么同时失败。A、B、C 可能是多个不同部门开发、部署在不同服务器上的远程服务。在分布式系统来说,如果不想牺牲一致性,CAP 理论告诉我们只能放弃可用性,这显然不能接转载 2016-04-19 10:57:19 · 15430 阅读 · 0 评论 -
58到家通用实时消息平台架构细节
一、解决什么问题 + 难点解决什么业务问题(1)端到云的实时上报需求:58速运司机端GPS实时上报(2)云到端的实时推送需求:58速运司机订单实时推送(3)端到端的聊天消息需求:用户、商户、客服之间的聊天沟通难点:(1)APP无线环境下消息可达性(2)通用性,平台实现尽量与业务解耦二、传统解决方案与潜在不足【端转载 2016-04-23 14:05:57 · 3350 阅读 · 0 评论 -
搜索引擎选择: Elasticsearch与Solr
Elasticsearch简介*Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说Lucene是当今最先进,最高效的全功能开源搜索引擎框架。转载 2016-03-04 13:44:00 · 356 阅读 · 0 评论 -
搜索引擎中的粒度问题
一.前言传统的搜索引擎的定义,是指一种对于指定的查询(Query),能够返回与之相关的文档集合(Documents)的系统。而百度将这个定义更加丰富化,即搜索引擎能够帮助人们更方便的找到所求。这里的“所求”,比“文档”更加宽泛和丰富,比如一个关于天气的查询,直接返回一个天气预报的窗口,而非一篇关于天气的文档;再如一个关于小游戏的查询,直接返回这个小游戏的Flash页面而非简单的介绍性的文字转载 2012-09-07 15:03:32 · 2804 阅读 · 1 评论 -
特殊索引类型
位图索引也称bitmap索引。该索引主要针对DF(文档频率)非常高的term,比如“的”(如果它不是一个停用词的话)。它用一个位来表示是否在某个文档中出现,因此,对于总文档数为N的索引库,每个term对应的索引大小为N/8。差分索引普通索引中,文档ID使用u_int表示。对于索引比较长的term,其连续两个文档ID之间的差通常比较小,因此可以采用记录差值来代替记录ID,并且转载 2011-11-25 15:18:37 · 647 阅读 · 0 评论 -
实时索引
记录修改次数一个全局的位图结构记录每个文档的当前修改次数,每次修改该次数增1。这样只需要对修改后内容的term的索引拉链进行追加,并在索引中记录当前修改次数,原来的term不需要动。检索的时候在获取索引拉链时比较修改索引中记录的修改次数是否与全局结构的修改次数相同,不同则是“过期”的索引,不再使用。这些过期的索引可以在合并的索引库的时候丢弃。大小ID编号方法小ID表示全局I转载 2011-11-25 15:18:33 · 937 阅读 · 0 评论 -
检索FAQ
Q1:不到1秒的时间怎么在网上检索到那么多的东东? 1Q2:什么是倒排索引? 2Q3:像mp3、image这种非文本对象怎么建立倒排索引? 2Q4:为什么要进行切词?怎么进行切词? 2Q5:ns的检索系统是怎么实现Q1中所说的检索过程的? 2Q6:前端检索服务程序之间是怎么分工合作的? 3Q7:as、bs、di的检索架构有什么转载 2011-11-25 15:18:30 · 2345 阅读 · 0 评论 -
etcd VS zookeeper
背景coreOS中使用了etcd作为集群配置服务,拥有众多出色的特点,etcd是一个key,value的数据服务器,单实例可达每秒 1000 次写操作,以及方便的REST接口。 zookeeper则是在Hadoop中大放光彩的分布式协调服务,提供了分布式锁,数据同步,等服务。从功能上看,二者都可以很好的完成集群中分布式中遇到的同步,配置问题,但是不可否认,这2种服务在设计的时候的目转载 2016-04-11 19:20:03 · 4994 阅读 · 1 评论 -
秒杀业务架构优化之路
一、秒杀业务为什么难做im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息);微博系统,每个人读你关注的人的数据,一个人读多个人的数据;秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。 例如小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万。又例如12306抢票,票是有限的,库存一份,转载 2016-03-24 21:34:53 · 3149 阅读 · 0 评论 -
ZeroMQ研究与应用分析
1 ZeroMQ概述ZeroMQ是一种基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。ZeroMQ是网络通信中新的一层,介于应用层和传输层之间(按照TCP/IP划分),其是一个可伸缩层,可并行运行,分散在分布式系统间。2 系统架构2.1总体架构ZeroMQ几乎所有的I/O操作都是异步的,主线程不转载 2016-03-12 17:06:06 · 757 阅读 · 0 评论 -
12306系统架构优化
coolshell陈皓优化方案原文:http://coolshell.cn/articles/6470.html一、业务复杂度比对(1)qq业务模型:只访问自己的数据(2)秒杀业务模型:秒杀能够只接受前N个请求,后续请求直接返回(3)奥运会售票业务模型:注册+抽奖,非先来先抢,可以事后线下处理(4)电子商务业务模型:c2c只需关注自己的库存结论:库存是b2c的噩梦,12转载 2016-03-03 15:16:08 · 491 阅读 · 0 评论 -
互联网智能广告系统架构(业务+系统)
互联网智能广告系统架构(争取用最简单的图,最简洁的语言描述清楚)一、业务简述从业务上看整个智能广告系统,主要分为:1)业务端:广告主的广告后台2)展现端:用户实际访问的页面业务端,广告主主要有两类行为:1)广告设置行为:例如设置投放计划,设置地域,类别,关键字,竞价等2)效果查看行为:例如广告展转载 2016-03-03 15:34:12 · 6635 阅读 · 0 评论 -
互联网架构师必备技能
一、每个好架构师都是一位出色的程序员这一点毋庸置疑,如果不是写过N年代码的优秀程序员,一定不是好的架构师。“架构师”这是一个听上去比较虚的职位,它的主要价值在于“落地”的过程中,而不是“指点江山”。eBay的架构师总结架构师在项目中的职责:1)产品团队要做一个产品,架构师要帮助团队把技术可行性,技术方案权衡取舍一一剖析清楚;2)技术方案权衡取舍出来了,架构师要设计整体的技术转载 2016-03-03 15:40:13 · 1708 阅读 · 0 评论 -
无线APP日志上报优化实践
昨天,和大家讨论了无线APP时代如何进行DNS速度优化【回复“dns”阅读】,今天和大家一起讨论一下无线时代的日志上报流量优化。缘起:无线时代,APP流量敏感,为了统计APP内用户行为,或者需要收集某些产品数据,往往需要进行日志上报,日志上报往往又非常费流量,有没有一些好的节省流量的优化方法呢,这是本文将要讨论的问题。一、APP可不可以不进行日志上报,而转载 2016-03-03 15:46:01 · 1190 阅读 · 0 评论 -
58怎么玩数据库架构
大家好,我是58沈剑,今天我分享的主题是《58怎么玩数据库架构》,我的PPT页数非常少,讨论的问题非常的聚焦。一、数据库的基本概念基本概念就一页PPT,让大家就一些数据库方面的概念达成一致。首先是“单库”,最开始的时候数据库都是这么玩的,几乎所有公司都会经历这个阶段。接下来是“分片”,也就是水平切分,它是用来解决数据量大的问题。有一些转载 2016-03-03 13:55:12 · 852 阅读 · 0 评论 -
用Kibana和logstash快速搭建实时日志查询、收集与分析系统
Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索),您可以使用它。说到搜索,logstash带有一个web界面,搜索和展示所有日志。kibana 也是一个开源和免费的工具,他可以帮助您汇总、分析和搜索重要数据日志并提供友好的web界面。他可以为 Logstash 和 ElasticSearch 提供的日志分析的 Web 界面说到这里,我们转载 2016-03-31 19:06:54 · 1144 阅读 · 0 评论 -
zookeeper原理
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookee转载 2016-03-08 22:22:33 · 328 阅读 · 0 评论 -
浅谈我对协程的理解
最近在研究网络服务框架方面的东西,发现了一个神奇的东西-协程。一句话说明什么是线程:协程是一种用户态的轻量级线程。一句话并不能完全概括协程的全部,但是起码能让我们对协程这个概念有一个基本的印象。从硬件发展来看,从最初的单核单CPU,到单核多CPU,多核多CPU,似乎已经到了极限了,但是单核CPU性能却还在不断提升。server端也在不断的发展变化。如果将程序分为IO密集型应用和CP转载 2016-03-10 21:06:17 · 325 阅读 · 0 评论 -
初探nginx架构
众所周知,nginx性能高,而nginx的高性能与其架构是分不开的。那么nginx究竟是怎么样的呢?这一节我们先来初识一下nginx框架吧。nginx在启动后,在unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。我们也可以手动地关掉后台模式,让nginx在前台运行,并且通过配置让nginx取消master进程,从而可以使nginx以单进转载 2016-03-10 22:08:03 · 601 阅读 · 0 评论 -
网页搜索中查询纠错概述
1. 背景介绍 搜索引擎的输入查询中,有相当一部分是带输入错误的查询。而提交有错误的查询给搜索引擎,通常得不到好的搜索结果,返回结果数很少并且和用户的期待相差很远,会严重影响了用户的使用体验。 如: “火箭队对振勇士直拨”直接用这样的查询,显然不可能给用户找到正确的网页。 但是,如果能自动地对查询进行纠错,修改成符合用转载 2011-11-23 15:40:33 · 3088 阅读 · 1 评论