大型分布式架构设计与实现-第一章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就 ...
随机推荐
- IDEA 控制台乱码问题
一.修改IDEA的配置文件 找到IDEA安装目录下的 /bin/idea.exe.vmoptions(32位) 或 idea64.exe.vmoptions(64位),添加如下一行: -Dfile.e ...
- 部署JupyterLab和pyalgotrade搭建web策略回测环境
==========================================================================安装anaconda 3 64位版本cd /optm ...
- centos7配置iscsi
什么是ISCSI iscsi--internet small computer system interface互联小型计算机系统接口,将数据包封装在TCP/IP协议中传输,使用普通网线和网络设备即可 ...
- 当鼠标经过表格数据行时颜色不同且奇偶行颜色也不同 (纯CSS)
<!DOCTYPE html> <!-- To change this license header, choose License Headers in Project Prope ...
- Azure CosmosDB (12) 创建Cosmos DB并执行查询语句
<Windows Azure Platform 系列文章目录> The SQL API supports the following aggregate functions. SUM an ...
- Windows 10 RS4 无法完全关闭Hyper-V导致Virtual Box 虚拟机无法启动
https://www.jianshu.com/p/2e3429d45aea 起因 因为需要使用Virtual Box做一些工作,卸载了Windows Docker.按照经验,关闭了Hyper-V. ...
- 使用GNVM工具高效切换node版本
在开发中,有时候需要在多个node版本之间切换,重复手动下载安装node安装包来切换版本很麻烦,在Mac系统中可以使用nvm工具,而windows系统无法使用nvm工具.gnvm解决了在windows ...
- VSFTP的使用
一.基本安装 1.安装服务 yum -y install vsftpd //centos Redhat apt-get install vsftpd //debian ubuntu 2.开启服务 se ...
- 工控随笔_18_西门子_WinCC的VBS脚本_07_变量作用域和传值、传址
在vbs脚本中也存在和其他编程语言一样的概念,那就是变量的作用域,变量的作用域决 定在什么范围内可以访问. 同样的在vbs脚本中对于变量也有一个生命周期, 变量的生命周期决定了变量的存续时间 这个主要 ...
- pc端布局的一点思考
编写pc端页面需要注意些什么? 1.自适应最小屏幕,在小屏幕上样式不能错乱. 在桌面屏幕各分辨率使用比例中可以看到各桌面分辨率的使用比例,日常pc端开发我们会考虑到适配1024宽度大小的屏幕. 对于管 ...