随笔分类 - 分布式
分布式相关知识
摘要:Reactor模型 通过一个或者多个输入传递给服务器的模式,服务端程序处理传入的多个请求,并将他们同步分派到处理线程,Reactor模式也叫Dispatch模式。 Reactor模式使用IO复用监听事件,分发给某个线程(进程),这是网络服务器高并发处理的关键。 1. 单Reactor单线程 Sele
阅读全文
摘要:线程模型 线程模型基本介绍 不同的线程模型对性能影响很大,目前存在的线程模型有: 传统阻塞I/O服务模型 Reactor模型 根据Reactor的数量和处理资源池线程的数量不同,可以分为3种 单Reactor单线程 单Reactor多线程 多Reactor多线程 传统阻塞I/O服务模型 采用阻塞I/
阅读全文
摘要:Netty提供异步的、基于事件驱动的网络应用程序框架,用于快速开发高性能、高可靠性的网络IO程序。 <! more netty核心原理 netty介绍 官网: "https://netty.io/" 原生NIO存在的问题 1. NIO类库和API繁杂,使用麻烦。需要熟练掌握Selector、Serv
阅读全文
摘要:选择器(Selector) 基本介绍 用一个线程,处理多个客户端连接,就会用到NIO的Selector(选择器)。 Selector能够检测多个注册的服务端通道上是否有事件发生。如果有事件发生,便获取事件,然后针对每个事件进行响应的处理。 这样可以用单线程去管理多个通道,也就是管理多个连接和请求。
阅读全文
摘要:通道(Channel) 基本介绍 NIO中所有的IO都是从通道(Channel)开始的。NIO的通道类似于流,但是有区别: 1. 通道可读可写,流一般是单向的(只能读或者写,所以之前socket的demo里面分别创建一个输入流和输出流)。 2. 通道可以异步读写。 3. 通道总是基于缓冲区Buffe
阅读全文
摘要:缓冲区(Buffer) 基本介绍 缓冲区(Buffer):缓冲区本质上是一个可读可写的内存块。 可以理解成一个数组,该对象提供了一组方法,可以轻松的操作内存块。 缓冲区内置了一些机制,能够跟踪和记录缓冲区的状态变化情况。 Channel提供从网络读取数据的通道,但是读取或者写入数据都必须经过Buff
阅读全文
摘要:nio编程 NIO介绍 Java NIO,全称为 ,是指JDK提供得到新API。从JDK1.4开始,Java提供了一系列改进的输入/输出的新特性,被统称为NIO(New IO),是同步非阻塞的。 1. NIO有三大核心部分,Channel(通道),Buffer(缓冲区),Selector(选择器)。
阅读全文
摘要:本文阐述了socket编程、IO网络模型,以及各种IO模型的适用场景。 RPC架构设计 文章更新历史 2022/03/01 初稿。 2022/05/04 修改相关描述。 socket socket网络编程 socket概述 socket套接字是两台主机之间逻辑连接的端点。 TCP/IP协议是传输层协
阅读全文

浙公网安备 33010602011771号