
架构系列
五柳-先生
宅边有五柳树,因以为号焉。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
大型网站架构系列:20本技术书籍推荐
学习是技术人员成长的基础,本次分享20本技术方面的书籍,这些书不是每一本都是经典,但是每一本都有其特点。以下20本大部分本人都看过,因此推荐给大家。(本次推荐的20本只是一个参考,比如像Head First,Java编程思想等经典书籍是大家都知道,因此不在推荐之列)本次分享大纲大型网站架构系列分布式系统系列BAT技术文学系列架构设计系列本次分享总结一、大型网站架构系列第一本:《转载 2016-02-27 15:21:05 · 1531 阅读 · 0 评论 -
《架构师成长之路》连载之NO.4
……转载 2016-06-17 17:28:54 · 475 阅读 · 0 评论 -
DNS 原理入门
DNS 是互联网核心协议之一。不管是上网浏览,还是编程开发,都需要了解一点它的知识。本文详细介绍DNS的原理,以及如何运用工具软件观察它的运作。我的目标是,读完此文后,你就能完全理解DNS。一、DNS 是什么?DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址。你可以把它想象成一本巨大的电话本。举例来说,如果你要转载 2016-06-17 17:47:10 · 448 阅读 · 0 评论 -
伯克利包过滤(Berkeley Packet Filter,BPF)语言
伯克利包过滤(Berkeley Packet Filter,BPF)语言libpcap支持一种功能非常强大的过滤语言——“伯克利包过滤”语法。使用BPF过滤规则,你可以确定该获取和检查哪些流量,忽略哪些流量。BPF让你能够通过比较第2、3、4层协议中各个数据字段值的方法对流量进行过滤。BPF中内置了一些“基元”来指代一些常用的协议字段。可以用“host”、"prot"之类的基元写出非常简洁转载 2016-06-18 10:05:14 · 8820 阅读 · 0 评论 -
Wireshark和TcpDump抓包分析心得
1. Wireshark与tcpdump介绍 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用Wireshark,如果是Linux的话,我直接用tcpdump了,因为我工作环境中的Linux一般只有字符界面,且一般而言Linux都自带的tcpdump,或者用tcpdump抓包以后用Wireshark打开分析。在Windows转载 2016-06-18 10:06:56 · 1159 阅读 · 0 评论 -
互联网协议入门(一)
我们每天使用互联网,你是否想过,它是如何实现的?全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗?互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网转载 2016-06-18 09:06:56 · 394 阅读 · 0 评论 -
互联网协议入门(二)
原文出处: 阮一峰的日志(@ruanyf) 上一篇文章分析了互联网的总体构思,从下至上,每一层协议的设计思想。这是从设计者的角度看问题,今天我想切换到用户的角度,看看用户是如何从上至下,与这些协议互动的。(接上文)七、一个小结先对前面的内容,做一个小结。我们已经知道,网络通信就是交换数据包。电脑A向电脑B发送一个数据包,后者收到了,回复一个数据包转载 2016-06-18 10:20:36 · 455 阅读 · 0 评论 -
图解 Monad
函数式编程有一个重要概念,叫做Monad。网上有很多解释(这里和这里),但都很抽象,不容易看懂。我尝试了好多次,还是不明白Monad到底是什么。昨天,我读到了Aditya Bhargava的文章,他画了很多图。我想了半天,终于恍然大悟。下面,我就用这些图来解释Monad。1.软件最基本的数据,就是各种值(value)。2.转载 2016-06-18 10:54:14 · 1564 阅读 · 0 评论 -
字符编码笔记:ASCII,Unicode和UTF-8
今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。1. ASCII码我们知道,在计转载 2016-06-18 10:57:37 · 494 阅读 · 0 评论 -
DNS 原理入门
DNS 是互联网核心协议之一。不管是上网浏览,还是编程开发,都需要了解一点它的知识。本文详细介绍DNS的原理,以及如何运用工具软件观察它的运作。我的目标是,读完此文后,你就能完全理解DNS。一、DNS 是什么?DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址。你可以把它想象成一本巨大的电话本。举例来说,如果你要转载 2016-06-18 11:07:01 · 559 阅读 · 0 评论 -
VRRP协议详解-----(1)
目录入木三分学网络第一篇--VRRP协议详解1. VRRP产生背景及应用环境1.1为什么要用VRRP2.VRRP基本原理及实现过程2.1 VRRP基本概念2.2 VRRP报文组成2.3 VRRP协议状态机2.3.1初始状态(Initialize)2.3.2备份路由器状态(Backup)2.3.3 Master路由器(Master state)2.4转载 2016-06-20 16:50:39 · 1637 阅读 · 0 评论 -
为什么微服务应该是事件驱动?
建立微服务的真正道路是事件驱动,这是一个有着DDD, CQRS, Event-sourcing, event streaming, complex-event processing(CEP) 等背景以及丰富JavaEE技术经验的架构师的认识,他经历了从传统整体型monolith到微服务架构之转变,细节技术涉及从容器技术 (Docker, Kubernetes) 到JVM层 (Spring转载 2016-06-21 11:43:23 · 1363 阅读 · 0 评论 -
DDD CQRS架构和传统架构的优缺点比较
明天就是大年三十了,今天在家有空,想集中整理一下CQRS架构的特点以及相比传统架构的优缺点分析。先提前祝大家猴年新春快乐、万事如意、身体健康!最近几年,在DDD的领域,我们经常会看到CQRS架构的概念。我个人也写了一个ENode框架,专门用来实现这个架构。CQRS架构本身的思想其实非常简单,就是读写分离。是一个很好理解的思想。就像我们用MySQL数据库的主备,数据写到主,然后查询从备来查,转载 2016-06-21 11:45:40 · 1590 阅读 · 0 评论 -
Serverless架构
这是来自martinfowler.com的Serverless架构一文的大意翻译。什么是Serverless?Serverless首先是用于描述我们的应用程序是明显或充分地依赖第三方应用或服务来管理服务器端逻辑和状态,这些应用是典型的富客户端应用,比如单页Web应用或移动应用,它们使用基于云可访问的数据库比如Parse或Firebase,还有授权服务比如Auth0AWS Cognito转载 2016-06-21 11:48:46 · 1568 阅读 · 0 评论 -
什么是Serverless无服务器架构?
Serverless不代表再也不需要服务器了,而是说:开发者再也不用过多考虑服务器的问题,计算资源作为服务而不是服务器的概念出现。Serverless是一种构建和管理基于微服务架构的完整流程,允许你在服务部署级别而不是服务器部署级别来管理你的应用部署,你甚至可以管理某个具体功能或端口的部署,这就能让开发者快速迭代,更快速地开发软件。 以亚马逊的AWS Lambda为案例,Lambda能让转载 2016-06-21 11:50:40 · 2630 阅读 · 0 评论 -
《架构师成长之路》连载之NO.5
http://chuansong.me/n/368313148571转载 2016-06-17 17:15:57 · 699 阅读 · 0 评论 -
《架构师成长之路》连载之NO.0
动图动图动图动图动图转载 2016-06-17 17:03:27 · 474 阅读 · 0 评论 -
《架构师成长之路》连载之NO.1
转载:http://chuansong.me/n/2311460转载 2016-06-17 16:56:30 · 486 阅读 · 0 评论 -
大型网站架构系列:分布式消息队列(一)
以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。本次分享大纲消息队列概述消息队列应用场景消息中间件示例JMS消息服务(见第二篇:大型网站架构系列:分布式消息队列(二))常用消息队列(见第二篇:大型网站架构系列:分布式消息队列(二))参考(推荐)资料(见第二篇:大型网站架构系列:分布式消息队列(二))本次分享总结(见第二篇:转载 2016-02-27 15:23:54 · 1253 阅读 · 0 评论 -
大型网站架构系列:消息队列(二)
本文是大型网站架构系列:消息队列(二),主要分享JMS消息服务,常用消息中间件(Active MQ,Rabbit MQ,Zero MQ,Kafka)。【第二篇的内容大部分为网络资源的整理和汇总,供大家学习总结使用,最后有文章来源】本次分享大纲消息队列概述(见第一篇:大型网站架构系列:分布式消息队列(一))消息队列应用场景(见第一篇:大型网站架构系列:分布式消息队列(一))消息中转载 2016-02-27 15:43:21 · 935 阅读 · 0 评论 -
大型网站架构系列:电商网站架构案例(1)
大型网站架构是一个系列文档,欢迎大家关注。本次分享主题:电商网站架构案例。从电商网站的需求,到单机架构,逐步演变为常用的,可供参考的分布式架构的原型。除具备功能需求外,还具备一定的高性能,高可用,可伸缩,可扩展等非功能质量需求(架构目标)。根据实际需要,进行改造,扩展,支持千万PV,是没问题的。本次分享大纲电商案例的原因电商网站需求网站初级架构系统容量估算网站架构分析网站架转载 2016-02-27 15:56:34 · 774 阅读 · 0 评论 -
大型网站架构系列:电商网站架构案例(2)
电网网站架构案例系列的第二篇文章。主要讲解网站架构分析,网站架构优化,业务拆分,应用集群架构,多级缓存,分布式Session。五、网站架构分析根据以上预估,有几个问题:需要部署大量的服务器,高峰期计算,可能要部署30台Web服务器。并且这三十台服务器,只有秒杀,活动时才会用到,存在大量的浪费。所有的应用部署在同一台服务器,应用之间耦合严重。需要进行垂直切分和水平切分。大量应用存在冗转载 2016-02-28 12:52:58 · 540 阅读 · 0 评论 -
大型网站架构系列:电商网站架构案例(3)
本文章是电商网站架构案例的第三篇,主要介绍数据库集群,读写分离,分库分表,服务化,消息队列的使用,以及本电商案例的架构总结。6.5数据库集群(读写分离,分库分表)大型网站需要存储海量的数据,为达到海量数据存储,高可用,高性能一般采用冗余的方式进行系统设计。一般有两种方式读写分离和分库分表。读写分离:一般解决读比例远大于写比例的场景,可采用一主一备,一主多备或多主多备方式。本案例转载 2016-02-28 12:56:15 · 495 阅读 · 0 评论 -
大型网站架构系列:负载均衡详解(1)
面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限时,我们需要考虑业务拆分和分布式部署,来解决大型网站访问量大,并发量高,海量数据的问题。从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统。分布式和业务拆分解决转载 2016-02-28 12:59:25 · 566 阅读 · 0 评论 -
大型网站架构系列:负载均衡详解(2)
本文是负载均衡详解的第一篇文章,介绍负载均衡算法, 硬件负载均衡。部分内容摘自读书笔记。三、负载均衡算法常用的负载均衡算法有,轮询,随机,最少链接,源地址散列,加权等方式;3.1 轮询将所有请求,依次分发到每台服务器上,适合服务器硬件同相同的场景。优点:服务器请求数目相同;缺点:服务器压力不一样,不适合服务器配置不同的情况;3.2 随机请求随机分配到各个服务转载 2016-02-28 13:02:54 · 420 阅读 · 0 评论 -
大型网站架构系列:负载均衡详解(3)
本次分享大纲软件负载均衡概述Ngnix负载均衡Lvs负载均衡Haproxy负载均衡本次分享总结一、软件负载均衡概述硬件负载均衡性能优越,功能全面,但是价格昂贵,一般适合初期或者土豪级公司长期使用。因此软件负载均衡在互联网领域大量使用。常用的软件负载均衡软件有Nginx,Lvs,HaProxy等。本文参考大量文档,部分为直接拷贝,参考出处见负载均衡详解(4)。二、Ngnix负载均转载 2016-02-28 13:07:14 · 449 阅读 · 0 评论 -
大型网站架构系列:负载均衡详解(4)
本文是负载均衡详解的第四篇,主要介绍了LVS的三种请求转发模式和八种负载均衡算法,以及Haproxy的特点和负载均衡算法。具体参考文章,详见最后的链接。 三、LVS负载均衡LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立,用来实现Linux平台下的简单负载均衡。LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。基于IP层转载 2016-02-28 13:09:42 · 461 阅读 · 0 评论 -
HTTP服务七层架构技术探讨
玉面修罗 http://weibo.com/kalon前言:太久没有做过技术分享了,这里把曾经老的新浪论坛里面使用过的架构技术做了改进和整理,最后总结了这么一篇,欢迎拍砖。1.为什么分层? 计算机领域的体系结构普遍采用了分层的方式。 从整体结构来看: 从最底层的硬件往高层依次有操作系统->驱动程序->运行库->系统程序转载 2016-02-28 15:23:50 · 367 阅读 · 0 评论 -
四层和七层负载均衡的区别
(一) 简单理解四层和七层负载均衡: ① 所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。 换句换说,二层负载均衡会通过一个虚拟MAC地址接收请求,然后再分配到真实的MAC地址;三层负载均衡会通过一个虚拟IP地址接收请求,然后再分配到真实的IP地址;四层通过虚拟IP+端口接收请求转载 2016-02-28 15:38:59 · 500 阅读 · 0 评论 -
理解RESTFul架构
1 什么是RESTREST全称是Representational State Transfer,中文意思是表述性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是 HTTP 规范的主要编写者之一。 他在论文中提到:“我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强、性能好、适宜通信转载 2016-02-28 16:40:11 · 400 阅读 · 0 评论 -
细说五层网站架构
目前网站架构一般分为网页缓存层、负载均衡层、Web层、数据库层、文件服务器层。我们可以依次用这五层对网站架构进行讨论,为了增强说服力,我将用如下三个并发较大的生产环境来说明。q 电子商务网站(并发最大峰值2900,日PV500万左右)q 电子广告网站(并发最大峰值1500,日PV150万左右)q 大型CDN门户广告网站(并发最大峰值5000,日PV5000万左右)笔转载 2016-06-06 19:07:18 · 514 阅读 · 0 评论 -
软件测试中的V模型、W模型和H模型
1.软件测试过程模型-V模型 是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系;局限性:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现2.软件测试过程模型-W模型 在V模型的基础上,增加千开发阶段的同步测试,形成W模型;测试与开发同步进行,有利用尽早的发现问题局限性:仍把开发转载 2016-06-17 15:29:09 · 6016 阅读 · 0 评论 -
Serverless架构的优缺点
Serverless架构或Serverless计算是软件架构风格向分布式系统发展结果,而当前建立一个系统的标准是面向服务架构(SOA)或者是SOA之微服务架构。在微服务架构中,应用/服务被开发出来然后部署,每个服务组相关一些函数,在Serverless架构中,函数是被开发并部署到独立的平台,这个平台会照顾执行这些函数响应一些事件,举例:当有HTTP请求访问时,也许有一个函数计算计算出一个响转载 2016-06-21 11:55:18 · 5041 阅读 · 0 评论