2.1.?设计特点

所有UXFS服务端组件(DIR,MRC和OSD)都是用Java编写的,基于有穷状态机进行设计。除了通用架构之外,它们还共享基本库,如RPC服务端、客户端或内存管理。

Stage

在澳门游戏平台注册网站的设计中,一个Stage有一个或多个线程来完成工作。通常,每一个Stage都是用于处理阻塞(例如I / O操作)或消耗大量CPU运行时间(例如检查签名)的进程。每个Stage先接收请求,异步的处理它们并将结果返回。操作(Operation)是每个Stage之间的“粘合剂”。对于每个客户端请求或内部事件,都有一个Operation类来实现调用的逻辑。

Buffer

所有的服务端也使用自定义的内存管理方法。为了避免过多的数据与Java VM进行交互,澳门游戏平台注册网站直接使用的ByteBuffers来表示堆上的原始内存。这些ByteBuffers不受Java垃圾收集器管理,过度分配和释放它们会导致严重的性能问题。为了克服这个问题并减少总体内存消耗,澳门游戏平台注册网站使用BufferPool来分配ByteBuffers。另外,澳门游戏平台注册网站使用一个引用计数的包装类(称为ReusableBuffer),它确保不再使用已返回BufferPool中的ReusableBuffers。

在使用这些之后,必须释放ReusableBuffers(即返回到BufferPool)。如果不这样做将导致在最终阶段打印错误的消息,这有助于检测内存泄漏。当BufferPool.recordStackTraces设置为true时,将为错误消息进行完整堆栈跟踪,这对于查找内存泄漏很有用。此选项仅用于调试,不应用于生产,因为在每次分配时,记录堆栈信息时会降低性能。

通信

所有三个Server端的服务都使用RPC服务端和客户端。它们都由Java的非阻塞网络IO——NIO实现,并且可以自由的配置使用或不使用SSL。

XML 地图 | Sitemap 地图