Fork me on GitHub

随笔分类 -  java

1 2 3 4 5 ··· 16 下一页
java相关教程
摘要:简介 我们知道proxy protocol是haproxy提出的一个代理协议,通过这个协议,所有实现这个协议的proxy或者LBS,都可以附带真实客户端的IP地址和端口号,这使得proxy protocol在实际应用中非常有用。 这么优秀的协议,没有理由netty不支持。本文将会谈一下netty中对 阅读全文
posted @ 2022-11-21 18:36 flydean 阅读(806) 评论(0) 推荐(0) 编辑
摘要:简介 在前面的文章中,我们提到了使用netty构建tcp和udp的客户端向已经公布的DNS服务器进行域名请求服务。基本的流程是借助于netty本身的NIO通道,将要查询的信息封装成为DNSMessage,通过netty搭建的channel发送到服务器端,然后从服务器端接受返回数据,将其编码为DNSR 阅读全文
posted @ 2022-11-14 17:18 flydean 阅读(626) 评论(0) 推荐(2) 编辑
摘要:简介 redis是一个非常优秀的软件,它可以用作内存数据库或者缓存。因为他的优秀性能,redis被应用在很多场合中。 redis是一个客户端和服务器端的模式,客户端和服务器端是通过TCP协议进行连接的,客户端将请求数据发送到服务器端,服务器端将请求返回给客户端。这样一个请求流程就完成了。 当然在最开 阅读全文
posted @ 2022-11-07 21:54 flydean 阅读(1005) 评论(0) 推荐(0) 编辑
摘要:简介 在前面的文章中我们讲过了如何在netty中构造客户端分别使用tcp和udp协议向DNS服务器请求消息。在请求的过程中并没有进行消息的加密,所以这种请求是不安全的。 那么有同学会问了,就是请求解析一个域名的IP地址而已,还需要安全通讯吗? 事实上,不加密的DNS查询消息是很危险的,如果你在访问一 阅读全文
posted @ 2022-11-04 14:48 flydean 阅读(379) 评论(0) 推荐(0) 编辑
摘要:简介 在前面的章节中,我们介绍了在netty中可以使用kequeue或者epoll来实现更为高效的native传输方式。那么kequeue和epoll和NIO传输协议有什么不同呢? 本章将会以kequeue为例进行深入探讨。 在上面我们介绍的native的例子中,关于kqueue的类有这样几个,分别 阅读全文
posted @ 2022-07-04 15:24 flydean 阅读(644) 评论(0) 推荐(0) 编辑
摘要:简介 对于IO来说,除了传统的block IO,使用最多的就是NIO了,通常我们在netty程序中最常用到的就是NIO,比如NioEventLoopGroup,NioServerSocketChannel等。 我们也知道在IO中有比NIO更快的IO方式,比如kqueue和epoll,但是这两种方式需 阅读全文
posted @ 2022-06-29 20:16 flydean 阅读(501) 评论(0) 推荐(2) 编辑
摘要:简介 之前我们介绍了一个非常优秀的细粒度控制JAVA线程的库:java thread affinity。使用这个库你可以将线程绑定到特定的CPU或者CPU核上,通过减少线程在CPU之间的切换,从而提升线程执行的效率。 虽然netty已经够优秀了,但是谁不想更加优秀一点呢?于是一个想法产生了,那就是能 阅读全文
posted @ 2022-06-27 21:13 flydean 阅读(291) 评论(0) 推荐(0) 编辑
摘要:简介 定时器是一种在实际的应用中非常常见和有效的一种工具,其原理就是把要执行的任务按照执行时间的顺序进行排序,然后在特定的时间进行执行。JAVA提供了java.util.Timer和java.util.concurrent.ScheduledThreadPoolExecutor等多种Timer工具, 阅读全文
posted @ 2022-06-20 18:33 flydean 阅读(1656) 评论(1) 推荐(0) 编辑
摘要:简介 SpringBoot提供了HATEOAS的便捷使用方式,前面一篇文章我们也讲了如何在SpringBoot中使用HATEOAS。本文将会对这些内容进行扩展深入,详细讲解SpringBoot提供的这些基本方法。 链接Links HATEOAS的一个非常重要的特征就是在resources资源中包含超 阅读全文
posted @ 2022-06-17 17:37 flydean 阅读(518) 评论(0) 推荐(0) 编辑
摘要:简介 HATEOAS是实现REST规范的一种原则,通过遵循HATEOAS规范,可以解决我们实际代码实现的各种个问题。作为java最流行的框架Spring 当然也会不缺席HATEOAS的集成。 本文将会通过一个具体的例子来讲解如何在SpringBoot中使用HATEOAS。 我们的目标 HATEOAS 阅读全文
posted @ 2022-06-15 15:54 flydean 阅读(674) 评论(1) 推荐(2) 编辑
摘要:简介 前面讲到了memcached的文本协议,虽然文本协议看起来非常简单,但是对于客户端来说一般还是会选择效率更高的二进制协议。 二进制协议的本质和文本协议是一样的,只是他们的表现方式不同而已。本文将会详细介绍memcached中二进制协议的实现细节。 memcached的协议包 对于memcach 阅读全文
posted @ 2022-06-13 21:03 flydean 阅读(459) 评论(0) 推荐(0) 编辑
摘要:简介 很多人都用过java中的枚举,枚举是JAVA 1.5中引用的一个新的类型,用来表示可以列举的范围,但是可能很少有人知道java中的enum到底是怎么工作的,enum和Enum有什么关系?Enum可不可以扩展? 一起来看看吧。 enum和Enum JAVA1.5中引入了枚举类,我们通常使用enu 阅读全文
posted @ 2022-06-06 15:54 flydean 阅读(469) 评论(0) 推荐(1) 编辑
摘要:简介 JDK中的ThreadLocal可以通过get方法来获得跟当前线程绑定的值。而这些值是存储在ThreadLocal.ThreadLocalMap中的。而在ThreadLocalMap中底层的数据存储是一个Entry数组中的。 那么从ThreadLocalMap中获取数据的速度如何呢?速度有没有 阅读全文
posted @ 2022-06-01 13:52 flydean 阅读(172) 评论(1) 推荐(0) 编辑
摘要:简介 JDK中的Thread大家肯定用过,只要是用过异步编程的同学肯定都熟悉。为了保存Thread中特有的变量,JDK引入了ThreadLocal类来专门对Thread的本地变量进行管理。 ThreadLocal 很多新人可能不明白ThreadLocal到底是什么,它和Thread到底有什么关系。 阅读全文
posted @ 2022-05-25 17:54 flydean 阅读(74) 评论(0) 推荐(0) 编辑
摘要:简介 netty中提供的protobuf编码解码器可以让我们直接在netty中传递protobuf对象。同时netty也提供了支持UDP协议的channel叫做NioDatagramChannel。如果直接使用NioDatagramChannel,那么我们可以直接从channel中读写UDP对象:D 阅读全文
posted @ 2022-05-23 15:04 flydean 阅读(413) 评论(0) 推荐(0) 编辑
摘要:简介 在之前的文章中我们讲过了,jboss marshalling是一种非常优秀的java对象序列化的方式,它可以兼容JDK自带的序列化,同时也提供了性能和使用上的优化。 那么这么优秀的序列化工具可不可以用在netty中作为消息传递的方式呢? 答案当然是肯定的,在netty中一切皆有可能。 nett 阅读全文
posted @ 2022-05-20 15:51 flydean 阅读(254) 评论(1) 推荐(0) 编辑
摘要:简介 在JAVA程序中经常会用到序列化的场景,除了JDK自身提供的Serializable之外,还有一些第三方的产品可以实现对JAVA对象的序列化。其中比较有名的就是Google protobuf。当然,也有其他的比较出名的序列化工具,比如Kryo和JBoss Marshalling。 今天想给大家 阅读全文
posted @ 2022-05-18 16:16 flydean 阅读(366) 评论(0) 推荐(0) 编辑
摘要:简介 我们在程序中除了使用常用的字符串进行数据传递之外,使用最多的还是JAVA对象。在JDK中,对象如果需要在网络中传输,必须实现Serializable接口,表示这个对象是可以被序列化的。这样就可以调用JDK自身的对象对象方法,进行对象的读写。 那么在netty中进行对象的传递可不可以直接使用JD 阅读全文
posted @ 2022-05-17 13:56 flydean 阅读(470) 评论(0) 推荐(0) 编辑
摘要:简介 要讲网络协议,肯定离不开OSI(Open System Interconnection)的七层模型。 我们一般关注的是网络层之上的几层,比如IPV4 IPV6所在的网络层,TCP UDP所在的传输层,HTTP FTP所在的应用层等。 今天要讲的sctp协议,全称是Stream Control 阅读全文
posted @ 2022-05-16 15:07 flydean 阅读(775) 评论(0) 推荐(1) 编辑
摘要:简介 在json之前,xml是最常用的数据传输格式,虽然xml的冗余数据有点多,但是xml的结构简单清晰,至今仍然运用在程序中的不同地方,对于netty来说自然也提供了对于xml数据的支持。 netty对xml的支持表现在两个方面,第一个方面是将编码过后的多个xml数据进行frame拆分,每个fra 阅读全文
posted @ 2022-05-13 14:08 flydean 阅读(391) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 16 下一页