摘要:
一、创建原始直连项目 这个没什么可说的,直接创建两个项目(服务提供者和服务消费者),用来模拟原始的使用http的调用。 对于项目内部的实现不再赘述,都是简单的增删改查,这里主要演示一下服务提供者提供的服务以及服务消费者对服务的调用。 1、服务提供者提供的服务 @RequestMapping("/pr 阅读全文
摘要:
一、Netty实现Dubbo RPC (一)RPC 基本介绍 RPC(Remote Procedure Call)—远程过程调⽤,是⼀个计算机通信协议。该协议允许运⾏于⼀台计算机的程序调⽤另⼀台计算机的⼦程序,⽽程序员⽆需额外地为这个交互作⽤编程两个或多个应⽤程序都分布在不同的服务器上,它们之间的调 阅读全文
摘要:
一、异步任务调度 (一)为什么要使用异步任务调度 先写一个简单的Netty程序: 1、NettyServer public class NettyServer { public static void main(String[] args) { //1. 创建两个线程组 bossGroup 和 wo 阅读全文
摘要:
一、Netty编解码器 (一)Netty编解码器概述 1、Java的编解码 在Java中编码(Encode)称为序列化, 它将对象序列化为字节数组,⽤于⽹络传输、数据持久化或者其它⽤途。解码(Decode)称为反序列化,它把从⽹络、磁盘等读取的字节数组还原成原始对象(通常是原始对象的拷⻉),以⽅便后 阅读全文
摘要:
一、代码示例 下面是简单的Netty代码示例代码示例,核心模块在其中均有体现,后续的模块组件都以该代码作为示例。 1、Server public class NettyServer { public static void main(String[] args) { //创建BossGroup 和 阅读全文
摘要:
一、群聊系统 实例要求: 1、编写⼀个 Netty 群聊系统,实现服务器端和客户端之间的数据简单通讯(⾮阻塞) 2、实现多⼈群聊 3、服务器端:可以监测⽤户上线,离线,并实现消息转发功能 4、客户端:通过 channel 可以⽆阻塞发送消息给其它所有⽤户,同时可以接受其它⽤户发送的消息(有服务器转发 阅读全文
摘要:
一、Netty概述 (一)Netty是什么 Netty 是由 JBOSS 提供的⼀个 Java 开源框架,现为 Github 上的独⽴项⽬。 Netty 是⼀个异步的、基于事件驱动的⽹络应⽤框架,⽤以快速开发⾼性能、⾼可靠性的⽹络 IO程序。 Netty 主要针对在 TCP 协议下,⾯向 Clien 阅读全文
摘要:
一、IO模型 IO在计算机中指Input/Output,也就是输⼊和输出。 (一)内核空间与用户空间 在计算机中,将空间分为内核空间(Kernel-space)和⽤户空间(User-space)。 在 Linux 系统中,内核模块运⾏在内核空间,对应的进程处于内核态;⽽⽤户程序运⾏在⽤户空间,对应的 阅读全文
摘要:
一、零拷贝和NIO (一)零拷贝综述 零拷⻉是⽹络编程的关键,很多性能优化都离不开。 零拷⻉(Zero-copy)技术指在计算机执⾏操作时,CPU 不需要先将数据从⼀个内存区域复制到另⼀个内存区域,从⽽可以减少上下⽂切换以及 CPU 的拷⻉时间。它的作⽤是在数据从⽹络设备到⽤户程序空间传递的过程中, 阅读全文
摘要:
一、Broker启动 当每个 broker 启动时,会在 ZooKeeper 中的 /brokers/ids 路径下创建⼀个节点来注册⾃⼰,节点 ID 为配置⽂件中的 broker.id 参数,后注册的 broker 会报 NodeExists 的错。如果不指定 broker.id 或者指定成 -1 阅读全文