设计
青色刀客
这个作者很懒,什么都没留下…
展开
-
持续可用与CAP理论 – 一个系统开发者的观点
持续可用本文主要针对金融数据库,认为金融数据库的持续可用包含两点:一个是强一致性;另外一个是高可用性。数据库系统必须是强一致性的系统,这是因为数据库系统有事务ACID的基本要求,而弱一致系统无法做到。业内也有一些流行的NOSQL系统,例如各种类Dynamo系统,如开源的Cassandra,对同一个最小数据单位(同一行数据)允许多台服务器同时写入,虽然采用NWR机制处理冲突,但是由于不可能解转载 2015-04-22 10:23:05 · 444 阅读 · 0 评论 -
读写模型整理笔记
读模型1、主键读最常见的读模型,说是主键,其实也包括其它索引键,或者联合主键。常见实现:hash,时间复杂度可以接近O(1);B树或变种:时间复杂度接近O(log(n))。关于B树和变种:B树(B-树):本质上是二叉查找树的升级版,变成了平衡的N叉查找树,这个N的范围根据磁盘一次读取的块大小来调整,这样复杂度log n的底数就从2变成一个更大的数,减少了树的高度。除此以外,还有转载 2015-04-27 14:15:54 · 596 阅读 · 0 评论 -
10步了解产品经理要懂的应用架构
互联网发展至今,从个人网站到大型购物网站,不同类型的网站导致了需求架构的不同。每个网站都有其对应的技术架构。不同的层级之间架构也不尽相同。设计产品的时候,哪些架构是产品经理需要了解的呢?我们一起来看看。转载 2015-04-27 14:35:38 · 717 阅读 · 0 评论 -
面向服务体系和遗留系统
企业系统已经从单片孤岛(monolithic silos)快速发展为使用机制灵活、面向服务的分布式应用系统。为了跟上这一趋势,IT组织必须近乎实时地调整他们的遗留系统,以面对商业变化的挑战,这一机会稍纵即逝。面向服务的体系(SOAs)已经演进成可灵活进行操作,并能连接业务进程和底层系统。Nicolas Serrano、Josune Hernantes和Gorka Gallardo提供了当前SOA技转载 2015-04-28 09:24:47 · 798 阅读 · 0 评论 -
apache与tomcat负载集群的3种方法
apache与tomcat负载集群集成方法有3种jk、jk_proxy、http_proxy本次集成使用的软件版本:apache:httpd-2.2.17-win32-x86-no_ssl.msitomcat:apache-tomcat-6.0.20.zipjdk:jdk-6u14-windows-i586.exe本次测试是1个apache集成两个tomcat。安装转载 2015-05-12 10:05:30 · 410 阅读 · 0 评论 -
apache与tomcat负载集群的3种方法
集群tomcat主要是解决SESSION共享的问题花了两天时间学习apache与tomcat的集成方法,现在把学习成果记录下来。 apache与tomcat负载集群集成方法有3种jk、jk_proxy、http_proxy 本次集成使用的软件版本: Code highlighting produced by Actipro CodeHighlighter (freeware) h转载 2015-05-12 10:04:56 · 645 阅读 · 0 评论 -
centos下搭建nginx+tomcat实现集群负载与session复制
第一章 测试环境说明 1.1 系统说明 系统均选用最小化安装的centos 5.7 1.2 软件说明 nginx-0.8.55 pcre-8.13 apache-tomcat-6.0.35 jdk-6u31-linux-x64 nginx-upstream-jvm-route-0.1 1.3 规划说明 客户端通过访问nginx做的负载均衡层去访问后端的we转载 2015-05-12 10:08:33 · 505 阅读 · 0 评论 -
TCP协议缺陷不完全记录
零。前言TCP自从1974年被发明出来之后,历经30多年发展,目前成为最重要的互联网基础协议。有线网络环境下,TCP表现的如虎添翼,但在移动互联网和物联网环境下,稍微表现得略有不足。移动互联网突出特性不稳定:信号不稳定,网络连接不稳定。虽然目前发展到4G,手机网络带宽有所增强,但因其流动特性,信号也不是那么稳定:坐长途公交车,或搭乘城铁时,或周边上网密集时等环境,现实环境很复杂。以下讨转载 2015-05-12 10:14:14 · 1031 阅读 · 0 评论 -
实战低成本服务器搭建千万级数据采集系统
有这样一个采集系统的需求,达成指标: 需要采集 30万关键词的数据 、微博必须在 一个小时采集到、覆盖四大微博(新浪微博、腾讯微博、网易微博、搜狐微博)。为了节约客户成本,硬件为 普通服务器:E5200 双核 2.5G cpu, 4 G DDR3 1333内存,硬盘 500G SATA 7200转硬盘。数据库为mysql。在这样的条件下我们能否实现这个系统目标?当然如果有更好的硬件不是这个转载 2015-05-12 10:19:15 · 492 阅读 · 0 评论 -
nginx+tomcat+memcached (msm)实现 session同步复制
tomcat + memcached + nginx 实现session共享 这里重点强调如何实现linux服务器上 服务器session共享,软件安装不再赘述。 首先我们需要对 cookie 和session的工作机制非常了解,如果不了解其中的原理,就算配置成功,也毫无意义。换了工作换了环境,重新配置起来 仍然需要重头来过,事倍功半。 cookie是怎样工作的转载 2015-05-12 09:59:39 · 2966 阅读 · 0 评论 -
Apache+Tomcat+Memcached共享Session的构架设计
网站集群部署解决方案一、 方案目标实现互动留言系统、后台发布系统的高可用性,有效解决高并发量对单台应用服务器的冲击,确保应用服务器单点故障不影响系统正常运行。二、 部署架构采取Tomcat集群的部署方式,Apache通过proxy_module代理方式对用户的请求进行负载均衡,转发至tomcat集群中的某一实例进行处理,tomcat集群之间通过Memcach转载 2015-05-12 10:03:47 · 436 阅读 · 0 评论 -
java中线程队列BlockingQueue的用法
原文地址:http://blog.itpub.net/143526/viewspace-1060365/在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用转载 2015-05-08 09:36:26 · 438 阅读 · 0 评论 -
搜狗商业平台Java技术实践
Java自1995年问世以来,已历经20多年岁月。20年来,IT技术风起云涌,Java始终以其可移植性、跨平台性、生态系统完备性等特点成为最主流的开发语言之一。事实上,Java无处不在,已经渗入到大家的日常生活中,从你的每一次购物到每一笔支付,都有Java技术的身影,国内外的主流网站大部分都是由Java技术支撑。搜狗商业平台负责搜狗广告业务,涵盖搜索、网盟、无线、品牌等业务线,面向几十万广告主转载 2015-05-27 13:06:44 · 711 阅读 · 0 评论 -
Java NIO通信框架在电信领域的实践
1. 华为电信软件技术架构演进1.1. 电信软件从广义上看电信软件的范围非常广,细分实际可以分为两大类:系统软件和业务应用软件。系统软件包括路由器底层的信令机软件、手机操作系统等,业务应用软件主要包括客户关系管理CRM、网上营业厅、融合计费OCS和各类消息网关,例如短信网关、彩信网关等。本文重点介绍电信业务应用软件的技术变迁历史,以及华为电信软件架构演进和Java NIO框架在技术转载 2015-05-27 12:46:57 · 1291 阅读 · 0 评论 -
高可用可伸缩架构实用经验谈
移动互联网、云计算和大数据的成熟和发展,让更多的好想法得以在很短的时间内实现为产品。此时,如果用户需求抓得准,用户数量将很可能获得爆发式增长,而不需要像以往一样需要精心运营几年的时间。然而用户数量的快速增长(尤其是短时间内的爆发式增长),通常会让应用开发者有些吃不消,不得不面临一些严峻的技术挑战:如何避免因为单台机器当机导致服务不可用;如何避免在服务容量不足时,用户体验下降,等等。在系统构建之初就转载 2015-05-27 12:59:22 · 572 阅读 · 0 评论 -
高性能服务器架构
任何一行都有自己的军规, 我想这篇著名的文章就是游戏服务器程序员的军规. 也许你认为游戏服务器程序员日常并不涉及这样底层的实现, 而只是去完成策划提出的需求, 我觉得也有道理, 毕竟这些是我们的工作, 下面的译文就不太适合你. 但是对于想改进现有系统, 在服务器方面给予更好的技术支持, 那么你在开始工作之前必须了解一些禁忌, 并且给出了一些解决方向上的真知灼见. 把它发在这里, 供随时复习. 下面给转载 2015-05-18 10:03:19 · 499 阅读 · 0 评论 -
高性能服务端漫谈
一、背景进入多核时代已经很久了,大数据概念也吵得沸沸扬扬,不管你喜欢不喜欢,不管你遇到没遇到,big-data或bigger-data都必须正视.处理大数据,基本都离不开分布式计算和分布式存储,这其中以hadoop最为使用广泛和经典。分布式系统,就离不开计算系统、网络系统、文件系统和数据库系统。这么多系统,之间又是如何协作的呢? 通讯过程又是如何保障高性能的呢?1.单处理器 在以前的单核心cpu转载 2015-05-18 10:00:00 · 453 阅读 · 0 评论 -
http connection
概述本部分主要讨论HTTP连接管理及其相关话题。在此之前,需要先对TCP连接及其性能相关问题进行研究。简单原因如下:HTTP连接实际上就是TCP连接及其使用规则就HTTP时延而言,TCP网络时延是主要部分此外,由于HTTP连接内容较多,本篇文章篇幅有限,下一篇文章将继续深入研究关于持久化连接和管道化连接内容。TCP协议相关浏览器与服务器交互过程图解转载 2015-05-23 11:25:14 · 1330 阅读 · 0 评论 -
Kafka设计解析(二):Kafka High Availability (上)
Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务。若该Broker永远不能再恢复,亦或磁盘故障,则其上数据将丢失。而Kafka的设计目标之一即是提供数据持久化,同时对于分布式系统来说,尤其当集群规模上升到一定程度后,一台或者多台机器宕机的可能性大大提高,对Failover要求非常高。转载 2015-04-27 14:11:37 · 519 阅读 · 0 评论 -
Kafka剖析(一):Kafka背景及架构介绍
Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。InfoQ一直在紧密关注Kafka的应用以及发展,“Kafka剖析”专栏将会从架构设计、实现、应用场景、性能等方面深度解析Kafka。背景介绍Kafka创建背景转载 2015-04-27 14:09:34 · 440 阅读 · 0 评论 -
【分布式系统工程实现】CAP理论及系统一致性
印象中CAP理论开始流行是从Amazon Dynamo的论文开始的,Amazon的CTO还在他的博客中介绍了最终一致性的概念,从此以后,各种会议和交流中都少不了CAP的影子。然而,对于分布式系统工程设计和开发来说,CAP意味着什么呢?CAP 理论由 Berkerly 的 Brewer 教授提出,三者的含义如下:一致性 ( Consistency) :任何一个读操作总是能读取到之前完成的转载 2015-04-22 10:25:30 · 938 阅读 · 0 评论 -
[译]如何“打败”CAP定理
昨天看到了Nathan Marz这篇《How to beat the CAP theorem》觉得写得很有想法,所以决定把这篇文章翻译成中文,希望能够被更多的人看到,翻译可能不是很准确,如有错误之处欢迎指出。 原文翻译: CAP定理指出一个数据库不可能同时满足:一致性(Consistency)、可用性(Availability)和分区容错性(Partition-Tolerance)转载 2015-04-22 10:28:15 · 1089 阅读 · 0 评论 -
分布式系统之CAP理论 - DM张朋飞
一.CAP起源 CAP原本是一个猜想,2000年PODC大会的时候大牛Brewer提出的,他认为在设计一个大规模可扩放的网络服务时候会遇到三个特性:一致性(consistency)、可用性(Availability)、分区容错(partition-tolerance)都需要的情景,然而这是不可能都实现的。之后在2003年的时候,Mit的Gilbert和Lynch就正式的证明了这三个特征确实是转载 2015-04-22 10:25:18 · 624 阅读 · 0 评论 -
NOSQL数据模型和CAP原理
我本来一直觉得NoSQL其实很容易理解的,我本身也已经对NoSQL有了非常深入的研究,但是在最近准备YunTable的Chart的时候,发现NoSQL不仅非常博大精深,而且我个人对NoSQL的理解也只是皮毛而已,但我还算是一个“知耻而后勇”的人,所以经过一段时间的学习之后,从本系列第六篇开始,就将和大家聊聊NoSQL,而本篇将主要给大家做一下NoSQL数据库的综述。首先将和大家聊聊为什转载 2015-04-22 10:28:35 · 548 阅读 · 0 评论 -
大型网站架构的演变
今天我们来谈谈一个网站一般是如何一步步来构建起系统架构的,虽然我们希望网站一开始就能有一个很好的架构,但告诉我们事物是在发展中不断前进的,网站架构也是随着业务的扩大、用户的需求不断完善的,下面是一个网站架构逐步发展的基本过程,读完后,请思考,你现在在哪个阶段。 架构演变第一步:物理分离WebServer和数据库 最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机转载 2015-04-20 14:01:15 · 365 阅读 · 0 评论 -
淘宝网架构分享总结 - 架构,分布式,淘宝,虚拟化,水平伸缩
一、为什么stateless比较有利于实现水平伸缩 关于什么是stateless的扫盲,见这个贴: http://kyfxbl.iteye.com/blog/1831869 一般有一个共识,就是把应用做成无状态的,会比较容易实现水平伸缩。但是以前一直有一个想法,就算应用是有状态的,也可以做成水平伸缩:只需要在负载均衡那里做一个session绑定就可以了,根据某种标识,把请求固定转载 2015-04-20 13:41:09 · 1066 阅读 · 0 评论 -
软件架构师应该知道的97件事(极致总结)
软件架构师是IT 行业里独一无二的职业,既要精通软件开发技术,又要掌握业务知识,还要周旋于公司不同部门之间,协调各种予盾。简洁的总结下,希望对读者有帮助!1.客户需求重于个人简历 客户需求至上。为了自己的简历更炫而采用新技术是沽名钓誉,往往事与愿违。2. 简化根本复杂性 ,消除偶发复杂性 根本复杂性指的是问题与生俱来的、无法避免的困难。偶发复杂性是人们解决根本复杂性的过程中衍生的转载 2015-04-20 13:59:34 · 550 阅读 · 0 评论 -
大型门户网站架构分析
大型门户网站架构分析 千万人同时访问的网站,一般是有很多个数据库同时工作,说明白一点就是数据库集群和并发控制,这样的网站实时性也是相对的。这些网站都有一些共同的特点:数据量大,在线人数多,并发请求多,pageview高,响应速度快。总结了一下各个大网站的架构,主要提高效率及稳定性的几个地方包括: 1、程序 程序开发是一方面,系统架构设计(硬件+网络+软件)是另转载 2015-04-20 14:00:26 · 1041 阅读 · 0 评论 -
Memcache架构新思考
Memcache使用中的雷区通常你可能考虑不到,但又隐藏在某处等着你踩的称之为“雷”。带宽和连接数Memcache具有很高吞吐能力,Memecache@Facebook中介绍Memcache支持8万/s读和2万/s写,在weibo内部我们通常认为单个Memcache实例支持7w/s读,2w/s写是安全的。和Facebook一样,为了充分榨取服务器性能,我们会在一台物理机上部署多个Memcache。转载 2015-04-24 10:40:19 · 334 阅读 · 0 评论 -
秒杀系统设计的知识点
秒杀系统涉及到的知识点:A, 高并发,cache,锁机制 B, 基于缓存架构redis,Memcached的先进先出队列。C, 稍微大一点的秒杀,肯定是分布式的集群的,并发来自于多个节点的JVM,synchronized所有在JVM上加锁是不行了D, 数据库压力E, 秒杀超卖问题F, 如何防止用户来刷, 黑名单?IP限制?G, 利用memcached的带原子性特性的操作做并发控制. 秒杀简单设计方案转载 2015-04-24 10:44:35 · 503 阅读 · 0 评论 -
打造一款亿级应用你会碰到哪些问题?
饿了么原来有一个机房,差不多有两三百台机器。但是每个月的业务都在涨,所以运维部门很头疼,每个月都要采购设备、上架设备。机房满了再部署一个机房,整个周期又很强,最后不得已把服务部署在云机房。A11上周,腾讯云举 办了“最强应用,由你智造”的沙龙活动。 腾讯云的商务合作负责人王志永表示,腾讯云开始做应用的时候,有许多血的教训。尤其是服务的微信、QQ空间、还有手Q这种过亿级的应用,踩过很多坑,有很 多血和转载 2015-04-24 10:55:34 · 422 阅读 · 0 评论 -
互联网全站HTTPS的时代已经到来
前言我目前正在从事HTTPS方面的性能优化工作。在HTTPS项目的开展过程中明显感觉到目前国内互联网对HTTPS并不是很重视,其实也就是对用户隐私和网络安全不重视。本文从保护用户隐私的角度出发,简单描述现在存在的用户隐私泄露和流量劫持现象,然后进一步说明为什么HTTPS能够保护用户安全以及HTTPS使用过程中需要注意的地方。国外很多网站包括google,facebook,twitter都支持了全站H转载 2015-04-24 11:05:45 · 559 阅读 · 0 评论 -
架构之重构的12条军规(上)
对于开发者来说,架构设计是软件研发过程中最重要的一环,所谓没有图纸,就建不了房子。在遍地App的互联网时代,架构设计有了一些比较成熟的模式,开发者和架构师也可以经常借鉴。但是,随着应用的不断发展,最初的架构往往面临着各种问题,比如无法满足客户的需求、无法实现应用的扩展、无法实现新的特性等等。在这种情况下,我们如何避免一些坑,尽量比较成功地实现架构的重构,是很多开发者和架构师亟需解决的问题。在这里,跟转载 2015-04-24 10:30:36 · 455 阅读 · 0 评论 -
【转】对前端质量保障的思考 - Barret Lee
我们时时在踩坑,有时也忍不住埋怨前人给我们留下了无数的坑,可回头想想,自己是不是也在挖坑等别人踩…上次听 赵海平 的讲座,他提到 Facebook 没有测试人员,以前和现在都没有,以后也不打算有。还提到上线之后就开发者坐在系统前等着,只要有bug,系统能够在五分钟之内检测到,并提供快捷方式修复。我惊叹的是他们能够在五分钟之内监控到所有的问题,实时回馈并及时修复。当然在探讨质量保障这个话题前,我们需要转载 2015-04-24 10:27:46 · 806 阅读 · 0 评论 -
技术领导力:作为技术团队领导经常为人所忽略的技能和职责
因为团队的存在,每个软件团队都会设置一位团队领导的角色。这一职位在不同的组织中的具体名称或许会有所不同,但无论在哪个组织中,他的主要常见职责都是相同的,那就是产品的交付。产品交付的职责范围在不同的场合可能会具有不同的定义。某种极端的定义认为,团队领导只需要负责设计与开发过程中的技术部分。而另一种极端的定义认为,他除了负责设计与开发之外,还要负责与客户的协作、团队的运维、对高管进行汇报,以及战略转载 2015-04-21 09:42:34 · 504 阅读 · 0 评论 -
如何构建高扩展性网站
本篇通过阅读《高扩展性网站的50条原则》,总结出以下内容。一方面博主没有实际的架构经验,另一方面知识面也不够宽阔,所以只能系统的总结书中的要点,并根据自己的理解做些归纳。主要内容本书从多个方面围绕高扩展性提出了50条建议,一个高扩展性的网站会随着业务的发展、用户的增加,自由的扩展架构,从而轻松的应付网站的快速发展。下面看看本书的具体内容:化简方程1 不要过度的设计过度的转载 2015-04-17 11:29:15 · 555 阅读 · 0 评论 -
序列化和反序列化
简介文章作者服务于美团推荐与个性化组,该组致力于为美团用户提供每天billion级别的高质量个性化推荐以及排序服务。从Terabyte级别的用户行为数据,到Gigabyte级别的Deal/Poi数据;从对实时性要求毫秒以内的用户实时地理位置数据,到定期后台job数据,推荐与重排序系统需要多种类型的数据服务。推荐与重排序系统客户包括各种内部服务、美团客户端、美团网站。为了提供高质量的数据服务转载 2015-05-08 09:31:43 · 411 阅读 · 0 评论 -
Redis应用场景
1. MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。 2.Memcach转载 2015-05-27 11:46:18 · 504 阅读 · 0 评论