代码改变世界

随笔分类 -  互联网/架构

HTTPS工作原理和TCP握手机制

2012-08-20 17:35 by coodoing, 42003 阅读, 收藏, 编辑
摘要: 1、HTTPS的工作原理 HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经过艺术家精心设计的艺术品,TLS/SSL中使用了非对称加密,对称加密以及HASH算法。握手过程的具体描述如下: 1.浏览器将自己支持的一套加密规则发送给网站。 2.网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。 3.浏览器获得网站证书之后浏览器要做以下工作: a)... 阅读全文

【转】基于.NET的大型Web站点StackOverflow架构分析

2012-08-15 23:09 by coodoing, 391 阅读, 收藏, 编辑
摘要: 原文链接:Stack Overflow Architecture Update - Now At 95 Million Page Views A MonthStack Overflow网址:http://stackoverflow.com/当前访问量:每月9500PV(每天300多万PV)当前Alexa排名:149所用.NET技术:C#、Visual Studio 2010 Team Suite、ASP.NET 4、ASP.NET MVC 3、Razor、LINQ to SQL+raw SQL下面是英文原文:A lot has happened since my first article o 阅读全文

一致性hash算法-consistent hashing

2012-08-14 11:15 by coodoing, 538 阅读, 收藏, 编辑
摘要: 0、应用场景 在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time)、加权法(Weighted )等。其中哈希算法是最为常用的算法。 典型的应用场景是: 有N台服务器提供缓存服务,需要对服务器进行负载均衡,将请求平均分发到每台服务器上,每台机器负责1/N的服务。 常用的算法是对hash结果取余数 (hash() modN):对机器编号从0到N-1,按照自定义的hash()算法,对每个请求的hash()值按N取模,得到余数i,然后将请求.. 阅读全文

高并发系统数据库设计

2012-08-13 19:04 by coodoing, 2188 阅读, 收藏, 编辑
摘要: 在WEB网站的规模从小到大不断扩展的过程中,数据库的访问压力也不断的增加,数据库的架构也需要动态扩展,在数据库的扩展过程基本上包含如下几步,每一个扩展都可以比上一步骤的部署方式的性能得到数量级的提升。 1、WEB应用和数据库部署在同一台服务器上 一般的小规模的网站采用这种方式,用户量、数据量、并发访问量都比较小,否则单台服务器无法承受,并且在遇到性能瓶颈的时候... 阅读全文

【转】国内图片网站Yupoo的架构

2012-08-13 18:53 by coodoing, 355 阅读, 收藏, 编辑
摘要: 之前向大家介绍过全球最大在线图片服务网站Flickr网站架构,Yupoo(又拍网)作为国内最大的图片服务提供商,我们也一起来看看它的架构,同样是提供图片服务,看看他与Flickr的差别在哪里,大家看完本文可以思考一下。 一、先来看看Yupoo网站的基本信息: 带宽:4000M/S (参考) 服务器数量:60 台左右 Web服务器:Lighttpd, Apache, nginx ... 阅读全文

【转】Twitter网站架构介绍

2012-08-13 18:40 by coodoing, 414 阅读, 收藏, 编辑
摘要: 作为140个字的缔造者,twitter太简单了,又太复杂了,简单是因为仅仅用140个字居然使有几次世界性事件的传播速度超过任何媒体,复杂是因为要为2亿用户提供这看似简单的140个字的服务,这真的是因为简单,所以复杂。可是比较遗憾的是目前在中国大陆twitter是无法访问的,但作为一个爱好架构的程序猿,这道墙是必须得翻的,墙外的世界更精彩。今天就结合网络上的一些资料,来浅谈一下我对twitter网站架构的学习体会,希望给路过的朋友一点启示.......一、twitter网站基本情况概览截至2011年4月,twitter的注册用户约为1.75亿,并以每天300000的新用户注册数增长,但是其真正的 阅读全文

Options for Storing Hierarchical Data in a Relational Database

2012-08-10 22:59 by coodoing, 979 阅读, 收藏, 编辑
摘要: Good OverviewsGenerally speaking you're making a decision between fast read times (e.g. nested set) or fast write times (adjacency list). Usually you end up with a combination of the options below that best fit your needs. The following provides some in depth reading:One more Nested Intervals vs 阅读全文

【转】架构系列-Microsoft Azure存储架构设计

2012-08-09 22:59 by coodoing, 461 阅读, 收藏, 编辑
摘要: 本文链接地址: http://www.nosqlnotes.net/archives/83 SQL Azure简介 SQL Azure是Azure存储平台的逻辑数据库,物理数据库仍然是SQL Server。一个物理的SQL Server被分成多个逻辑分片(partition),每一个分片成为一个SQL Azure实例,在分布式系统中也经常被称作子表(tablet)。和大多数分布式存储系统一样,... 阅读全文

BT中的Tracker

2011-03-24 01:34 by coodoing, 833 阅读, 收藏, 编辑
摘要: BT中的Tracker tracker 是指运行于服务器上的一个程序,这个程序能够追踪到底有多少人同时在下载同一个文件。 客户端连上tracker服务器,就会获得一个下载人员的名单,根据这个,BT会自动连上别人的机器进行下载。它是提供bt的服务器。把文件用bt发布出来的人需要知道该使用哪个服务器来为要发布的文件提供tracker。指定服务器,BitTorrent采用BT文件来确定下载源。 tracker服务器是BT下载中必须的角色。一个BTclient在下载开始以及下载进行的过程中,要不停的与tracker服务器进行通信,以报告自己的信息,并获取其它下载client的信息。这种通信是通过HTT 阅读全文