首页 > 其他 > 详细

分布式系统笔记

时间:2019-11-13 00:05:15      阅读:85      评论:0      收藏:0      [点我收藏+]

1.1.1什么是分布式系统
《分布式系统原理与范型》一书中是这样定义分布式系统的:
“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”。
这里面包含了2个含义:
硬件独立;
软件统一。

1.2.1什么是线程
线程是程序执行流的最小单位。一个标准的线程由线程ID、当前指令指针(PC)、寄存器集合和堆栈组成。
线程拥有三种基本状态:
就绪;
阻塞;
运行。

1.2.3Java编程语言中的线程对象
Java中有两种创建Thread实例的方式:
使用Runnable对象
继承Thread

1.3.2网络I/O模型的演进
同步和异步描述的是用户线程与内核的交互方式:
同步是指用户线程发起I/O请求后需要等待或者轮询内核I/O操作完成后才能继续执行;
同步是指用户线程发起I/O请求后仍继续执行,当内核I/O操作完成后会通知用户线程,或者调用用户线程注册的回调函数。
阻塞和非阻塞描述的是用户线程调用内核I/O操作的方式:
阻塞是指I/O操作需要彻底完成后才返回到用户空间;
非阻塞是指I/O操作被调用后立即返回给用户一个状态值,无须等到I/O操作彻底完成。
一个I/O操作其实被分成了两个步骤:发起I/O请求和实际的I/O操作。
阻塞I/O和非阻塞I/O的区别在于第一步,发起I/O请求是否会被阻塞。
同步I/O和异步I/O的区别在于第二步是否阻塞,如果实际的I/O读写阻塞请求进程,那么就是同步I/O。

20191006添加:
集群:多个人在一起作同样的事 。
分布式 :多个人在一起作不同的事 。
大白话解说,半分钟就懂 --- 分布式与集群是什么 ? 区别是什么? - 愿我如星君如月 ... 夜夜流光相皎洁 ... - CSDN博客 https://blog.csdn.net/jiangyu1013/article/details/80417961
Services-based Architecture(服务化架构)和 Cells-based Architecture(单元化架构)的优缺点。
其实也就是distributed(分布式)和clustered(集群)两种架构
进程内的procedure call是非常快的,但是进程间的rpc就差了几个数量级,如果是主机间的rpc就又比进程间差了几个数量级。这种rpc的代价是非常高的,所以在利用多主机的能力时,一定要尽可能减少这种rpc。而distributed模式的天性就是行为的分布,而各行为之间的耦合很高(需求决定的),所以很难降低主机间rpc数量。假如一个用户做了一串动作,需要连续访问几个主机才能得到,这种效率恐怕难以接受。
而clustered模式,又称分区模式可以更好的解决这个问题。每一个主机对应一个地区,在本地区内它的服务是完备的,不需与其他主机的交互。只有用户切换地域时,才会有主机间通信的需求,这种情况(gamer切换地域)相对较少。这种模式可以做到在地区内高内聚,地区间低耦合,一台主机出问题只会影响部分人,各主机间地位比较平等。
从一组服务器的角度来看,一般来说,我们的服务器组(Cluster)内都会有登陆验证服务器(Login Server)、持久性数据服务器(DB及DB Proxy)、连接代理服务器(Gate Server、FEP Server、Client Proxy等)以及Auto Patch Server、还有用于集中管理及控制组的服务器等等,由于这些服务器基本上什么样的架构设计都会用到。

http://git.oschina.net/liyonghelpme/GameServerCsharp
Skynet游戏服务器设计核心思路:
游戏服务器有很多Actor对象
每个Actor对象是相互独立的
Actor对象内部执行代码
Actor对象可以通过邮箱的形式互相通信

分布式系统笔记

原文:https://www.cnblogs.com/Ivanhan2019/p/11845957.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!