学习参考的官网: https://developers.google.com/protocol-buffers/docs/javatutorial 简单指南详解:这个文档写的简直是太详细了。 本篇从下面三个步骤进行介绍: I. Define message formats in a .proto f ...
分类:
Web程序 时间:
2019-12-02 18:58:29
阅读次数:
127
你好,我是彤哥,本篇是netty系列的第五篇。欢迎来我的工从号彤哥读源码系统地学习源码&架构的知识。简介上一章我们一起学习了如何使用Java原生NIO实现群聊系统,这章我们一起来看看JavaNIO的核心组件之一——Channel。思维转变首先,我想说的最重要的一个点是,学习NIO思维一定要从BIO那种一个连接一个线程的模式转变成多个连接(Channel)共用一个线程来处理的这种思维。1个C
分类:
编程语言 时间:
2019-12-02 15:12:37
阅读次数:
104
Netty学习(一)基于长连接的双攻的通信,通过websocket编程实现 效果图,客户端和服务器端建立起长连接,客户端发送请求,服务器端响应 但是目前缺少心跳,如果两个建立起来的连接,一个断网之后,另外一个是感知不到对方已经断掉的。以后使用心跳技术来进行连接检测 须知: 状态码101,代表 协议转 ...
分类:
Web程序 时间:
2019-12-02 11:57:25
阅读次数:
125
Netty学习——基于netty实现简单的客户端聊天小程序 效果图,聊天程序展示 (TCP编程实现) 后端代码: package com.dawa.netty.chatexample; import io.netty.bootstrap.ServerBootstrap; import io.nett ...
分类:
微信 时间:
2019-12-02 11:42:01
阅读次数:
184
你好,我是彤哥,本篇是netty系列的第五篇。 简介 上一章我们一起学习了如何使用Java原生NIO实现群聊系统,这章我们一起来看看Java NIO的核心组件之一——Channel。 思维转变 首先,我想说的最重要的一个点是,学习NIO思维一定要从BIO那种一个连接一个线程的模式转变成多个连接(Ch ...
分类:
编程语言 时间:
2019-12-02 00:51:45
阅读次数:
84
Netty工作原理图 netty抽象出了两组线程池,BossGroup专门负责客户端 的连接,WorkerGroup专门负责网络读写。 BossGroup和WorkerGroup 类型都是NioEventLoopGroup NioEventLoopGroup相当于一个事件循环组,这个组中含有多个事件 ...
分类:
Web程序 时间:
2019-12-02 00:43:59
阅读次数:
92
疯狂创客圈 Java 高并发【 亿级流量聊天室实战】实战系列 【 "博客园总入口" 】 疯狂创客圈 正在 进行分布式和高并发基础原理 的研习,比如下面的一些基础性的内容: 一、 "Netty Redis 亿级流量 高并发 实战" 二、 "高并发 springcloud + zookeeper 秒杀" ...
分类:
Web程序 时间:
2019-12-02 00:30:26
阅读次数:
149
一.心跳介绍 网络中的接收和发送数据都是使用操作系统中的SOCKET进行实现。但是如果此套接字已经断开,那发送数据和接收数据的时候就一定会有问题。 1.心跳机制: 是服务端和客户端定时的发送一个心跳包(自定义的数据结构体),让对方知道自己还活着,处于在线状态,以确保连接真实有效的一种机制。 2.心跳 ...
分类:
Web程序 时间:
2019-12-01 22:55:30
阅读次数:
178
PooledByteBufAllocator buffer分配 buffer分配的入口: io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(int, int) netty实际应用时分配调用栈: CLASS_NAMEMETHOD_NAMELI ...
分类:
Web程序 时间:
2019-12-01 21:08:39
阅读次数:
128
引言 不同的线程模型对程序的性能有很大的影响,Netty是建立在Reactor模型的基础上,要搞清Netty的线程模型,需要了解一目前常见线程模型的一些概念。 具体是进程还是线程,是和平台或者编程语言相关,本文为了描述方便,以线程描述。 目前存在的线程模型有: 传统阻塞IO服务模型 Reactor模 ...
分类:
编程语言 时间:
2019-12-01 20:49:14
阅读次数:
94