最新 最热

netty系列之:HashedWheelTimer一种定时器的高效实现

定时器是一种在实际的应用中非常常见和有效的一种工具,其原理就是把要执行的任务按照执行时间的顺序进行排序,然后在特定的时间进行执行。JAVA提供了java.util.Timer和java.util.concurrent.ScheduledThreadPoolExecuto...

2022-06-20
2

在nginx中使用proxy protocol协议

我们已经介绍了haproxy提出的proxy protocol协议,通过proxy protocol协议,服务器端可以获得客户端的真实IP地址和端口,从而可以进行一些非常有意义的操作。...

2022-06-08
2

netty系列之:我有一个可扩展的Enum你要不要看一下?

很多人都用过java中的枚举,枚举是JAVA 1.5中引用的一个新的类型,用来表示可以列举的范围,但是可能很少有人知道java中的enum到底是怎么工作的,enum和Enum有什么关系?Enum可不可以扩展?...

2022-06-06
2

netty系列之:给ThreadLocal插上梦想的翅膀,详解FastThreadLocal

JDK中的ThreadLocal可以通过get方法来获得跟当前线程绑定的值。而这些值是存储在ThreadLocal.ThreadLocalMap中的。而在ThreadLocalMap中底层的数据存储是一个Entry数组中的。...

2022-06-01
2

网络协议之:haproxy的Proxy Protocol代理协议

代理大家应该都很熟悉了,比较出名的像是nginx,apache HTTPD,stunnel等。

2022-05-27
2

可能有人听过ThreadLocal,但一定没人听过ThreadLocal对象池

JDK中的Thread大家肯定用过,只要是用过异步编程的同学肯定都熟悉。为了保存Thread中特有的变量,JDK引入了ThreadLocal类来专门对Thread的本地变量进行管理。...

2022-05-25
2

netty系列之:protobuf在UDP协议中的使用

netty中提供的protobuf编码解码器可以让我们直接在netty中传递protobuf对象。同时netty也提供了支持UDP协议的channel叫做NioDatagramChannel。如果直接使用NioDatagramChannel,那么我们可以直接从channel中读写UDP对...

2022-05-23
2

netty系列之:netty对marshalling的支持

在之前的文章中我们讲过了,jboss marshalling是一种非常优秀的java对象序列化的方式,它可以兼容JDK自带的序列化,同时也提供了性能和使用上的优化。

2022-05-20
2

netty系列之:使用Jboss Marshalling来序列化java对象

在JAVA程序中经常会用到序列化的场景,除了JDK自身提供的Serializable之外,还有一些第三方的产品可以实现对JAVA对象的序列化。其中比较有名的就是Google protobuf。当然,也有其他的比较出名的序列化工具,比如Kryo和JBoss ...

2022-05-18
2

netty系列之:netty中常用的对象编码解码器

我们在程序中除了使用常用的字符串进行数据传递之外,使用最多的还是JAVA对象。在JDK中,对象如果需要在网络中传输,必须实现Serializable接口,表示这个对象是可以被序列化的。这样就可以调用JDK自身的对象对象方法,进行对象...

2022-05-17
1