netty系列
netty系列
tangtong1
这个作者很懒,什么都没留下…
展开
-
当Tomcat遇上Netty
故事背景嘀嘀嘀~,生产事故,内存泄漏!昨天下午,突然收到运维的消息,分部某系统生产环境内存泄漏了,帮忙排查一下。排查过程第一步,要日志分部给到的异常日志大概是这样(鉴于公司规定禁止截图禁止拍照禁止外传任何信息,下面是我网上找到一张类似的报错):LEAK: ByteBuf.release() was not called before it's garbage-collected. See http://netty.io/wiki/reference-counted-objects.html fo原创 2020-05-19 11:45:13 · 2580 阅读 · 3 评论 -
分布式系统中如何优雅地追踪日志(原理篇)
本文只讲原理,不讲框架。分布式系统中日志追踪需要考虑的几个点?需要一个全服务唯一的id,即traceId,如何保证?traceId如何在服务间传递?traceId如何在服务内部传递?traceId如何在多线程中传递?我们一一来解答:全服务唯一的traceId,可以使用uuid生成,正常来说不会出现重复的;关于服务间传递,对于调用者,在协议头加上traceId,...原创 2020-01-01 14:10:52 · 1508 阅读 · 0 评论 -
哈希情史知多少
——日拱一卒,不期而至!简介hash是我们工作中经常听到的词,比如哈希表、哈希函数、hashCode、HashTable、HashMap等等,那么它们之间到底有怎样的爱恨情仇呢?来一起看一看吧~~数组讲哈希表之前,我们先来看看数据结构的鼻祖——数组。数组比较简单,我就不多说了,大家都会都懂,见下图。数组的下标一般从0开始,依次往后存储元素,查找元素也是一样,只能从头(或从尾)依次查...原创 2019-12-13 21:11:47 · 999 阅读 · 0 评论 -
7. 彤哥说netty系列之Java NIO核心组件之Selector
——日拱一卒,不期而至!你好,我是彤哥,本篇是netty系列的第七篇。简介上一章我们一起学习了Java NIO的核心组件Buffer,它通常跟Channel一起使用,但是它们在网络IO中又该如何使用呢,今天我们将一起学习另一个NIO核心组件——Selector,没有它可以说就干不起来网络IO。概念我们先来看两段Selector的注释,见类java.nio.channels.Select...原创 2019-12-05 23:49:09 · 709 阅读 · 0 评论 -
每日一题:面向对象的特征有哪些?
问题:面向对象的特征有哪些?答:封装,继承,多态和抽象。1. 封装 封装给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法来改变它内部的数据。在 Java 当中,有 3 种修饰符:public,private 和 protected。每一 种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。下面列出了使用封装的一些好处:通过隐藏对象的属性来保护对象内...原创 2019-12-04 23:34:50 · 976 阅读 · 0 评论 -
6. 彤哥说netty系列之Java NIO核心组件之Buffer
——日拱一卒,不期而至!你好,我是彤哥,本篇是netty系列的第六篇。简介上一章我们一起学习了Java NIO的核心组件Channel,它可以看作是实体与实体之间的连接,而且需要与Buffer交互,这一章我们就来学习一下Buffer的特性。概念Buffer用于与Channel交互时使用,通过上一章的学习我们知道,数据从Channel读取到Buffer,或者从Buffer写入Channe...原创 2019-12-03 22:39:02 · 941 阅读 · 0 评论 -
5. 彤哥说netty系列之Java NIO核心组件之Channel
你好,我是彤哥,本篇是netty系列的第五篇。简介上一章我们一起学习了如何使用Java原生NIO实现群聊系统,这章我们一起来看看Java NIO的核心组件之一——Channel。思维转变首先,我想说的最重要的一个点是,学习NIO思维一定要从BIO那种一个连接一个线程的模式转变成多个连接(Channel)共用一个线程来处理的这种思维。1个Connection = 1个Socket ...原创 2019-12-01 23:44:04 · 1124 阅读 · 0 评论 -
关于JDK源码:我想聊聊如何更高效地阅读
简介大家好,我是彤哥,今天我想和大家再聊聊JDK源码的几个问题:为什么要看JDK源码JDK源码的阅读顺序JDK源码的阅读方法为什么要看JDK源码一,JDK源码是其它所有源码的基础,看懂了JDK源码再看其它的源码会达到事半功倍的效果。二,JDK源码中包含大量的数据结构知识,是学习数据结构很好的资料,比如,链表、队列、散列表、红黑树、跳表、桶、堆、双端队列等。三、JDK源码中包...原创 2019-11-29 00:22:56 · 567 阅读 · 3 评论 -
4. 彤哥说netty系列之Java NIO实现群聊(自己跟自己聊上瘾了)
你好,我是彤哥,本篇是netty系列的第四篇。欢迎来我的公从号彤哥读源码系统地学习源码&架构的知识。简介上一章我们一起学习了Java中的BIO/NIO/AIO的故事,本章将带着大家一起使用纯纯的NIO实现一个越聊越上瘾的“群聊系统”。业务逻辑分析首先,我们先来分析一下群聊的功能点:(1)加入群聊,并通知其他人;(2)发言,并通知其他人;(3)退出群聊,并通知其他人;一个简单的群...原创 2019-11-20 00:03:20 · 1167 阅读 · 0 评论