第一章 面向服务的体系架构(SOA)

伴随着互联网的快速发展和演进,不断变化的商业环境所带来的五花八门、无穷无尽的业务需求,使得原有的单一应用架构越来越复杂,越来越难以支撑业务体系的发展,因此,系统拆分便成了不可避免的事情,由此演变为垂直应用架构体系。

垂直应用架构解决了单一应用架构所面临的扩容问题,流量能够分散到各个子系统当中,且系统的体积可控,一定程度上降低了开发人员协同和维护的成本,提升了开发效率。

但是,当垂直应用越来越多,达到一定规模时,应用之间相互交互,相互调用不可避免。否则,不同系统之间存在着重叠的业务,容易形成信息孤岛,重复造轮子。此时,相对核心的业务会被抽取出来,作为单独的系统对外提供服务,达成业务之间相互复用,系统也因此演变为分布式应用架构体系,如图1-1所示。

分布式应用架构所面临的首要问题,便是如何实现应用中的远程调用(RPC) ,基于HTTP协议的系统间的RPC,具有使用灵活性,实现便捷(多种开源的web服务器支持),开放(国际标准)且天生支持异构平台之间的调用等优点,得到了广泛的使用。与之相对应的是基于TCP协议的实现版本,它效率更高,但实现起来更加繁琐,由于协议和标准的不同,难以进行跨平台和企业间的便捷通讯。当服务越来越多时,使得原来基于F5、LVS等负载均衡策略、服务地址管理和配置变得相当复杂和繁琐,单点的压力也变得越来越大。服务的动态注册和路由、更加高效的负载均衡的实现,成为了亟待解决的问题。

本章主要介绍和解决以下问题,这些也是全书的基础:

  • HTTP协议的工作方式与HTTP网络协议栈的结构。
  • 如何实现基于HTTP协议和TCP协议的RPC调用,它们有何差别,分别适用何种场景。
  • 如何实现服务的动态注册和路由,以及软负载均衡的实现。

大型分布式网站架构设计与实践 第一章《面向服务的体系架构(SOA)》相关推荐

  1. 面向服务的体系架构(SOA)—入门篇

    1.面向服务的体系架构(SOA) 面向服务的架构(service-oriented architecture)是Gartner于2O世纪9O年代中期提出的面向服务架构的概念.2002年的l2月,Gar ...

  2. 面向服务的体系架构(SOA)—架构篇

    面向服务的体系架构(SOA)-架构篇 1.面向服务的体系架构(SOA) 面向服务的架构(service-oriented architecture)是Gartner于2O世纪9O年代中期提出的面向服务 ...

  3. 系统架构设计笔记(46)—— 面向服务的架构

    迄今为止,对于面向服务的架构( Service-Oriented Architecture , SOA )还没有一个公认的定义.许多组织从不同的角度和不同的侧面对 SOA 进行了描述,较为典型的有以下 ...

  4. java面向服务架构_面向服务的体系架构 SOA(一) --- 基于TCP、HTTP协议的RPC

    1.1 基于TCP协议的RPC 1.1.1 RPC名词解释 RPC的全称是Remote Process Call,即远程过程调用,RPC的实现包括客户端和服务端,即服务调用方和服务提供方.服务调用方发 ...

  5. 大型分布式网站架构设计与实践

    阅读文本大概需要3分钟. SOA和RPC 随着互联网规模发展,面向服务的体系架构(SOA)成为主流的架构方式,SOA的本质思想是高内聚.低耦合地实现分治,各个系统之间通过服务的方式进行交互,这样保证了 ...

  6. [读书笔记]大型分布式网站架构设计与实践.分布式缓存

    前言:本书是对分布式系统架构涉及到的相关技术的一本科普书籍.由于很难作为开发参考,只能但求了解.所以通篇浅读,对分布式系统进行大致的了解.因为写的非常好,感觉非常有意思,自己也做不出总结.所谓的读书笔 ...

  7. 【大型分布式网站】抗住千万流量的大型分布式系统架构设计

    一.大型分布式网站架构技术 1.1 大型网站的特点 用户多,分布广泛 大流量,高并发 海量数据,服务高可用 安全环境恶劣,易受网络攻击 功能多,变更快,频繁发布 从小到大,渐进发展 以用户为中心 免费 ...

  8. 大型分布式网站架构技术总结

    大型分布式网站架构技术总结: " 本文是学习大型分布式网站架构的技术总结.对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考.一部分为读书笔记,一部分是 ...

  9. 大型分布式网站架构总结

    本文是学习大型分布式网站架构的技术总结.对架构一个高性能.高可用.可伸缩及可扩展的分布式网站进行了概要性描述,并给出一个架构参考.文中一部分为读书笔记,一部分是个人经验总结,对大型分布式网站架构有较好 ...

最新文章

  1. git commit -amend_最常见的Git错误都有哪些,如何解决它们?
  2. 浏览器页面关闭事件获取及处理--onbeforeunload
  3. 问题 A: 约瑟夫问题(普及第一关模拟)
  4. 查看IIS日志 各大搜索引擎是否访问网站
  5. SpringBoot与JPA
  6. Numpy:通过算数运算取值、替换值
  7. Qt5.4中遇到找不到头文件QApplication等。
  8. python复制csv数据_如何使用Python将CSV数据复制到现有xlsx文件
  9. Linux中使用 if 、for、while等循环来写脚本
  10. 斯坦福计算机科学博士研究方向,美国人工智能专业Top10名校推荐
  11. mhl数据线_superMHL接口诞生:只需五个针脚 干掉HDMI
  12. Python连接MySQL数据库locahost无法连接的问题
  13. 基于pytorch的sque2suqe with attention实现与介绍
  14. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之四Git搭建下载实例!
  15. 没有人比我更懂集群调度器---之流行集群调度器综述
  16. QueryDet: Cascaded Sparse Query for Accelerating High-Resolution Small Object Detection
  17. jenkins远程执行脚本不退出Exec in pty
  18. Mac安装Tmux的一次纪录
  19. 数据分析师需要学习哪些知识?
  20. 腾讯qq珊瑚虫版_12年来第二次更新:这个版本的QQ你还用吗

热门文章

  1. ITK:创建高斯内核
  2. DCMTK:测试DcmSCU的C-FIND / GET / MOVE会话处理
  3. VTK:可视化之Arbitrary3DCursor
  4. VTK:Medical之GenerateCubesFromLabels
  5. VTK:InfoVis之KMeansClustering
  6. OpenCV读取视频文件的实例(附完整代码)
  7. OpenCV gapi模块基本API的实例(附完整代码)
  8. OpenCV长方形squares探测器的实例(附完整代码)
  9. C++中overload,override,overwrite的区别?
  10. JAVA无法加载此类文件,Java 7错误:无法加载本机库:ld.so.1:java:致命:libscf.so.1:打开失败:没有此类文件或目录...