大型分布式网站架构设计与实践 第一章《面向服务的体系架构(SOA)》
第一章 面向服务的体系架构(SOA)
伴随着互联网的快速发展和演进,不断变化的商业环境所带来的五花八门、无穷无尽的业务需求,使得原有的单一应用架构越来越复杂,越来越难以支撑业务体系的发展,因此,系统拆分便成了不可避免的事情,由此演变为垂直应用架构体系。
垂直应用架构解决了单一应用架构所面临的扩容问题,流量能够分散到各个子系统当中,且系统的体积可控,一定程度上降低了开发人员协同和维护的成本,提升了开发效率。
但是,当垂直应用越来越多,达到一定规模时,应用之间相互交互,相互调用不可避免。否则,不同系统之间存在着重叠的业务,容易形成信息孤岛,重复造轮子。此时,相对核心的业务会被抽取出来,作为单独的系统对外提供服务,达成业务之间相互复用,系统也因此演变为分布式应用架构体系,如图1-1所示。
分布式应用架构所面临的首要问题,便是如何实现应用中的远程调用(RPC) ,基于HTTP协议的系统间的RPC,具有使用灵活性,实现便捷(多种开源的web服务器支持),开放(国际标准)且天生支持异构平台之间的调用等优点,得到了广泛的使用。与之相对应的是基于TCP协议的实现版本,它效率更高,但实现起来更加繁琐,由于协议和标准的不同,难以进行跨平台和企业间的便捷通讯。当服务越来越多时,使得原来基于F5、LVS等负载均衡策略、服务地址管理和配置变得相当复杂和繁琐,单点的压力也变得越来越大。服务的动态注册和路由、更加高效的负载均衡的实现,成为了亟待解决的问题。
本章主要介绍和解决以下问题,这些也是全书的基础:
- HTTP协议的工作方式与HTTP网络协议栈的结构。
- 如何实现基于HTTP协议和TCP协议的RPC调用,它们有何差别,分别适用何种场景。
- 如何实现服务的动态注册和路由,以及软负载均衡的实现。
大型分布式网站架构设计与实践 第一章《面向服务的体系架构(SOA)》相关推荐
- 面向服务的体系架构(SOA)—入门篇
1.面向服务的体系架构(SOA) 面向服务的架构(service-oriented architecture)是Gartner于2O世纪9O年代中期提出的面向服务架构的概念.2002年的l2月,Gar ...
- 面向服务的体系架构(SOA)—架构篇
面向服务的体系架构(SOA)-架构篇 1.面向服务的体系架构(SOA) 面向服务的架构(service-oriented architecture)是Gartner于2O世纪9O年代中期提出的面向服务 ...
- 系统架构设计笔记(46)—— 面向服务的架构
迄今为止,对于面向服务的架构( Service-Oriented Architecture , SOA )还没有一个公认的定义.许多组织从不同的角度和不同的侧面对 SOA 进行了描述,较为典型的有以下 ...
- java面向服务架构_面向服务的体系架构 SOA(一) --- 基于TCP、HTTP协议的RPC
1.1 基于TCP协议的RPC 1.1.1 RPC名词解释 RPC的全称是Remote Process Call,即远程过程调用,RPC的实现包括客户端和服务端,即服务调用方和服务提供方.服务调用方发 ...
- 大型分布式网站架构设计与实践
阅读文本大概需要3分钟. SOA和RPC 随着互联网规模发展,面向服务的体系架构(SOA)成为主流的架构方式,SOA的本质思想是高内聚.低耦合地实现分治,各个系统之间通过服务的方式进行交互,这样保证了 ...
- [读书笔记]大型分布式网站架构设计与实践.分布式缓存
前言:本书是对分布式系统架构涉及到的相关技术的一本科普书籍.由于很难作为开发参考,只能但求了解.所以通篇浅读,对分布式系统进行大致的了解.因为写的非常好,感觉非常有意思,自己也做不出总结.所谓的读书笔 ...
- 【大型分布式网站】抗住千万流量的大型分布式系统架构设计
一.大型分布式网站架构技术 1.1 大型网站的特点 用户多,分布广泛 大流量,高并发 海量数据,服务高可用 安全环境恶劣,易受网络攻击 功能多,变更快,频繁发布 从小到大,渐进发展 以用户为中心 免费 ...
- 大型分布式网站架构技术总结
大型分布式网站架构技术总结: " 本文是学习大型分布式网站架构的技术总结.对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考.一部分为读书笔记,一部分是 ...
- 大型分布式网站架构总结
本文是学习大型分布式网站架构的技术总结.对架构一个高性能.高可用.可伸缩及可扩展的分布式网站进行了概要性描述,并给出一个架构参考.文中一部分为读书笔记,一部分是个人经验总结,对大型分布式网站架构有较好 ...
最新文章
- git commit -amend_最常见的Git错误都有哪些,如何解决它们?
- 浏览器页面关闭事件获取及处理--onbeforeunload
- 问题 A: 约瑟夫问题(普及第一关模拟)
- 查看IIS日志 各大搜索引擎是否访问网站
- SpringBoot与JPA
- Numpy:通过算数运算取值、替换值
- Qt5.4中遇到找不到头文件QApplication等。
- python复制csv数据_如何使用Python将CSV数据复制到现有xlsx文件
- Linux中使用 if 、for、while等循环来写脚本
- 斯坦福计算机科学博士研究方向,美国人工智能专业Top10名校推荐
- mhl数据线_superMHL接口诞生:只需五个针脚 干掉HDMI
- Python连接MySQL数据库locahost无法连接的问题
- 基于pytorch的sque2suqe with attention实现与介绍
- 王姨劝我学HarmonyOS鸿蒙2.0系列教程之四Git搭建下载实例!
- 没有人比我更懂集群调度器---之流行集群调度器综述
- QueryDet: Cascaded Sparse Query for Accelerating High-Resolution Small Object Detection
- jenkins远程执行脚本不退出Exec in pty
- Mac安装Tmux的一次纪录
- 数据分析师需要学习哪些知识?
- 腾讯qq珊瑚虫版_12年来第二次更新:这个版本的QQ你还用吗
热门文章
- ITK:创建高斯内核
- DCMTK:测试DcmSCU的C-FIND / GET / MOVE会话处理
- VTK:可视化之Arbitrary3DCursor
- VTK:Medical之GenerateCubesFromLabels
- VTK:InfoVis之KMeansClustering
- OpenCV读取视频文件的实例(附完整代码)
- OpenCV gapi模块基本API的实例(附完整代码)
- OpenCV长方形squares探测器的实例(附完整代码)
- C++中overload,override,overwrite的区别?
- JAVA无法加载此类文件,Java 7错误:无法加载本机库:ld.so.1:java:致命:libscf.so.1:打开失败:没有此类文件或目录...