大型分布式架构设计与实现-第一章SOA(面向服务的体系架构)
拜读了大型分布式架构设计与实现,觉得该书作为入门不错,但内容过于简单,描述过于琐碎,小节之间连续性不强,不适合深入钻研学习。但为了更多的希望向架构师行业靠拢的工程师学习需要,本博客将对上书进行简化讲解。
小公司建议使用单一应用架构,中等公司建议使用垂直应用架构,大公司必须使用分布式应用架构,其中公司规模依靠用户峰值用户访问量进行判断。
分布式应用难点在于远程调用(RPC),而RPC的前提是对象的序列化和反序列化,序列化本质就是对象以二进制进行传输,反序列化就是接收到二进制数据流后恢复为对象。(若读者愿意,可参考Hessian和Protobuf)
分布式传输则需要参考的协议有传输层协议TCP和UDP,应用层协议HTTP,网络层协议IP,这是基础,请各位看官必须详细了解并掌握。
SOA架构中,服务消费者通过服务名称等在众多服务中找到服务的地址列表,称为服务的路由。为了防止服务器集群中某台服务器超负荷运行,就必须找到可靠的方法来均衡访问流量,这种方法称为负载均衡。小公司可以直接硬编码,中等公司直接硬件F5均衡或者采用软件均衡方案:LVS或Nginx。大公司需要服务配置中心,服务配置中心能够动态注册和获取服务信息,并统一管理服务名称和对应列表。建议读者学习ZooKeeper。
几种负载均衡算法简介:1.轮询法 2.随机法 3.源地址Hash法 4.加权轮询法 5.加权随机法6.最小连接数法 等,读者可大致了解。固定算法无法满足需求时,就需要动态配置规则,读者可学习Groovy脚本语言动态配置规则。
大公司一般有一个网关集群,解决安全问题,可参考京东的网关方案。
所以第一章是基本知识普及,但对于初学者必须好好下功夫,把这些知识点掌握。我很尊敬和崇拜作者,但可能是考虑普及基本知识,以及是一个人的著作,所以第一章过多的代码让第一章过于具体,好处是初学者可以一步一步跟着学,坏处是过于简单的东西其实没有必要写出来,给个连接让读者自己去学习更好,当然这是自己的拙见。个人认为第一章的顺序上可以调整的更好,部分内容应该以补充知识或者附录的形式给出会更好,期待作者新的版本更新。
参考文献
[1] 陈康贤.大型分布式网站架构设计与实践.北京:电子工业出版社.2014
大型分布式架构设计与实现-第一章SOA(面向服务的体系架构)的更多相关文章
- SOA——面向服务的体系架构
上一篇博文中提到了"紧耦合"的现象.怎样解决?SOA.採用面向服务的体系架构. 一.What? SOA=Service-oriented Architecture面向服务的体系结构 ...
- 面向服务的体系架构(SOA)
面向服务的体系架构(SOA) 1.面向服务的体系架构(SOA) 面向服务的架构(service-oriented architecture)是Gartner于2O世纪9O年代中期提出的面向服务架构的概 ...
- 面向服务的体系架构SOA
面向服务的体系架构SOA 序言 在.Net的世界中,一提及SOA,大家想到的应该是Web Service,WCF,还有人或许也会在.NET MVC中的Web API上做上标记,然后泛泛其谈! 的确,微 ...
- 说说面向服务的体系架构SOA
序言 在.Net的世界中,一提及SOA,大家想到的应该是Web Service,WCF,还有人或许也会在.NET MVC中的Web API上做上标记,然后泛泛其谈! 的确,微软的这些技术也确实推动着面 ...
- .net架构设计读书笔记--第一章 基础
第一章 基础 第一节 软件架构与软件架构师 简单的说软件架构即是为客户构建一个软件系统.架构师随便软件架构应运而生,架构师是一个角色. 2000年9月ANSI和IEEE发布了<密集性软件架构建 ...
- 面向服务的体系架构 SOA(二) --- 服务的路由和负载均衡
2. 服务的路由和负载均衡 1.2.1 服务化的演变 SOA设计思想:分布式应用架构体系对于业务逻辑复用的需求十分强烈,上层业务都想借用已有的底层服务来快速搭建更多.更丰富的应用,降低新业务开展的人力 ...
- 分布式架构设计(一) --- 面向服务的体系架构 SOA
1.1 基于TCP协议的RPC 1.1.1 RPC名词解释 RPC的全称是Remote Process Call,即远程过程调用,RPC的实现包括客户端和服务端,即服务调用方和服务提供方.服务调用方发 ...
- 面向服务的体系架构 SOA(三) --- Zookeeper API、zkClient API的使用
zookeeper简单介绍及API使用 1.1 zookeeper简介 zookeeper是一个针对大型分布式系统的可靠的协调系统,提供的功能包括配置维护.名字服务.分布式同步.组服务等.zookee ...
- 使用WCF实现SOA面向服务编程—— 架构设计
原文地址:http://www.cnblogs.com/leslies2/archive/2011/03/29/1997889.html SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就 ...
随机推荐
- 第七届蓝桥杯省赛javaB组 第七题剪邮票
剪邮票 如[图1.jpg], 有12张连在一起的12生肖的邮票.现在你要从中剪下5张来,要求必须是连着的.(仅仅连接一个角不算相连)比如,[图2.jpg],[图3.jpg]中,粉红色所示部分就是合格的 ...
- (C#)生成指定长度的随机字符串的通用方法
.NET(C#)生成指定长度的随机字符串的通用方法,此方法可以指定字符串的长度,是否包含数字,是否包含符号,是否包含小写字母,是否包含大写字母等, 源码: #region 生成指定长度的随机字符串 / ...
- Cookie 简单设置使用
cookie的理解可以为,存放在用户浏览器上的一个文件,里面是键值对数据,用于跟服务端通讯.前端可以通过jquery cookie插件设置和读取,后端直接设置 1.获取Cookie: 1 2 3 4 ...
- 数字色彩的艺术 | The Art Of Digital Color(修订)
翻译一篇来自2011年的文章,原链地址:https://www.fxguide.com/featured/the-art-of-digital-color/ 在这个时期,DPX日渐式微,ACES方兴未 ...
- ADO.Net操作数据库的方式
1.使用数据提供程序执行sql或者ddl语句操作数据库. 2.使用oledb操作数据库 3.使用odbc操作数据库 4.使用DataSet操作数据库 前面3种方式都无法避免要使用sql语句,对不同种类 ...
- TCP/IP学习20180709-数据链路层-arp协议
arp协议:address resolution protocol地址解析协议数据链路层,每个数据包都有MAC地址.主机是怎样根据对方主机的ip地址知道对方主机的mac地址呢?通过arp协议.主机里有 ...
- MySQL data type
MySQL数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 数值类型 MySQL支持所有标准SQ ...
- localStorage溢出问题
项目使用的store.js库 store.js库不能管理localStorage中的过期项到时清除,只能在再次调用get的时候才做处理,如果一直不调用get,过期了也还是占用着空间.溢出后,再储存项目 ...
- 搭建Mock Server
1.为什么要搭建mock-server? 为了更好的分工合作,让前端能在不依赖后端环境的情况下进行开发,其中一种手段就是为前端开发者提供一个 web 容器,这个本地环境就是 mock-server. ...
- altera DDR2 ip使用笔记之IP核生成
IP核生成 Quartus生成DDR2 ip流程如下: 点击菜单栏的Tools->MegaWizard Plug-In Manager,弹出 选择IP类型,保持路径即文件名等,如下图 点击n ...