《大型网站系统与Java中间件实践》第一章笔记:分布式系统基础
需积分: 9 173 浏览量
更新于2024-09-13
2
收藏 892KB DOC 举报
"大型网站系统与Java中间件实践读书笔记(一)—— 分布式系统基础知识"
本章节主要探讨了分布式系统的基本概念和关键知识点,包括计算机系统的五要素、线程与进程的执行模式、网络通信基础知识以及如何将应用从单机扩展到分布式系统。
1.1 初识分布式系统
分布式系统是由多个独立的计算机节点通过网络连接,共同协作完成一项任务的系统。这样的系统可以提供高可用性、高性能和可扩展性,是构建大型网站系统的基础。
1.2 分布式系统的基础知识
1.2.1 组成计算机的五要素
计算机系统由输入设备、输出设备、存储(包括内存和外存)、运算和控制这五个基本部分组成。在分布式系统中,这些元素可能分布在不同的节点上,通过网络进行交互。
1.2.2 线程与进程的执行模式
- 阿萨姆定律强调并发执行的重要性,它指出并行代码的比例决定了添加处理器后系统性能的提升程度。
- 互不通信的多线程模式:线程之间无直接交互,各自独立执行。
- 基于共享容器协同的多线程模式:线程间共享数据,需要同步和互斥机制来保证数据一致性,如生产者消费者问题。
- 基于事件协同的多线程模式:线程间通过事件触发进行协调,防止死锁的发生。
1.2.2.5 多进程模式
多进程与多线程类似但有区别,进程间通信、协同和资源管理相对复杂,但具有更好的隔离性和容错性。进程间的通信通常涉及序列化和反序列化。
1.2.3 网络通信基础知识
1.2.3.1 OSI与TCP/IP网络模型:理解网络通信的层次结构,包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。TCP/IP模型则简化为四层,分别是网络接口层、网络层、传输层和应用层。
1.2.3.2 网络IO实现方式:
- BIO(Blocking IO):传统的阻塞式IO,当进行IO操作时,会阻塞当前线程直到IO操作完成。
- NIO(Non-blocking IO):非阻塞IO,允许多个IO操作并发进行,提高了效率。
- AIO(Asynchronous IO):异步IO,应用程序可以注册感兴趣的IO事件,当事件发生时,操作系统通知应用程序。
1.2.4 如何把应用从单机扩展到分布式
1.2.4.1 输入设备:在分布式系统中,输入不再局限于传统的人机交互设备,还包括节点间的通信接口。
1.2.4.2 输出设备:输出同样扩展为节点间的通信输出和其他传统输出设备。
1.2.4.3 控制器:分布式系统中,控制逻辑分布在多个节点上,通过网络协调工作。
总结来说,分布式系统的核心在于如何有效地管理多个节点的资源,实现数据的一致性、高可用性和可扩展性。这需要深入理解线程与进程的协同、网络通信机制以及如何将单机应用转变为分布式架构。《大型网站系统与Java中间件实践》第一章为后续深入学习分布式系统和Java中间件奠定了坚实的基础。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2014-12-23 上传
2017-03-15 上传
2023-10-12 上传
2019-12-10 上传
点击了解资源详情
点击了解资源详情
穿越千年做系统
- 粉丝: 47
- 资源: 11
最新资源
- remote-lighting-system:使用 zigbee 和 soc 的基于网络的远程照明系统
- 49--[自由翱翔].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码
- TanzaniaHealthODK:坦桑尼亚专用于健康的OpenDataKit收集应用程序
- 钢铁行业周报:双控运动.rar
- Scratch少儿编程项目音效音乐素材-【水】相关音效-间歇喷泉.zip
- fullstack-login1
- mac上好用的SSH工具.zip
- UFQFPN封装库PCB文件3D封装AD库
- FoundationIsotopeMVC:如何在 Foundation 和 MVC 中使用 Isotope
- SimpleCalculator:GWT简单计算器
- Project-Analisa-Klasifikasi-Pinjaman-untuk-Sektor-UMKM:MSME部门的贷款分类分析项目
- 12.看门狗_CC2530看门狗代码_watch_
- Scratch少儿编程项目音效音乐素材-【水】相关音效-小溪.zip
- 教育科研-学习工具-PASSIM卷烟机盘纸拼接装置.zip
- three-dead-protocols:Rust中三个死协议的服务器
- C# 使用MQTTnet实现MQTT通信