netty系列之:在netty中使用proxy protocol_flydean-编程思维

目录简介netty对proxy protocol协议的支持HAProxyMessage的编码解码器netty中proxy protocol的代码示例总结 简介 我们知道proxy protocol是haproxy提出的一个代理协议,通过这个协议,所有实现这个协议的proxy或者LBS,都可以附带真实客户端的IP地址和端口号,这使得proxy protocol在实际应用中非常有用。 这么优秀的协议

netty系列之:来,手把手教你使用netty搭建一个dns tcp服务器_flydean-编程思维

目录简介搭建netty服务器DNS服务器的消息处理DNS客户端消息请求总结 简介 在前面的文章中,我们提到了使用netty构建tcp和udp的客户端向已经公布的DNS服务器进行域名请求服务。基本的流程是借助于netty本身的NIO通道,将要查询的信息封装成为DNSMessage,通过netty搭建的channel发送到服务器端,然后从服务器端接受返回数据,将其编码为DNSResponse,进行消

netty系列之: 在netty中使用 tls 协议请求 dns 服务器_flydean-编程思维

目录简介支持DoT的DNS服务器搭建支持DoT的netty客户端TLS的客户端请求总结 简介 在前面的文章中我们讲过了如何在netty中构造客户端分别使用tcp和udp协议向DNS服务器请求消息。在请求的过程中并没有进行消息的加密,所以这种请求是不安全的。 那么有同学会问了,就是请求解析一个域名的IP地址而已,还需要安全通讯吗? 事实上,不加密的DNS查询消息是很危险的,如果你在访问一个重要的网

reactor:深入理解reactor core_flydean-编程思维

目录简介自定义SubscriberBackpressure处理创建Flux使用generate使用create使用push使用Handle 简介 上篇文章我们简单的介绍了Reactor的发展史和基本的Flux和Mono的使用,本文将会进一步挖掘Reactor的高级用法,一起来看看吧。 自定义Subscriber 之前的文章我们提到了4个Flux的subscribe的方法: Disposable

reactor中的thread和scheduler_flydean-编程思维

目录简介Thread多线程Schedule定时器Schedulers工具类publishOn 和 subscribeOnpublishOnsubscribeOn 简介 今天我们要介绍的是Reactor中的多线程模型和定时器模型,Reactor之前我们已经介绍过了,它实际上是观察者模式的延伸。 所以从本质上来说,Reactor是和多线程无关的。你可以把它用在多线程或者不用在多线程。 今天将会给大家

reactor详解之:异常处理_flydean-编程思维

目录简介Reactor的异常一般处理方法各种异常处理方式详解Static Fallback ValueFallback MethodDynamic Fallback ValueCatch and RethrowLog or React on the SideFinally BlockRetrying 简介 不管是在响应式编程还是普通的程序设计中,异常处理都是一个非常重要的方面。今天将会给大家介绍

响应式关系数据库处理r2dbc_flydean-编程思维

目录简介R2DBC介绍项目依赖创建ConnectionFactory创建Entity Bean初始化数据库获取所有的用户Prepare Statement事务处理WebFlux使用执行效果 简介 之前我们提到过,对于底层的数据源来说,MongoDB, Redis, 和 Cassandra 可以直接以reactive的方式支持Spring Data。而其他很多关系型数据库比如Postgres, M

深入理解r2dbc-mysql_flydean-编程思维

目录简介r2dbc-mysql的maven依赖创建connectionFactory使用MySqlConnectionFactory创建connection执行statement执行事务使用线程池 简介 mysql应该是我们在日常工作中使用到的一个非常普遍的数据库,虽然mysql现在是oracle公司的,但是它是开源的,市场占有率还是非常高的。 今天我们将会介绍r2dbc在mysql中的使用。

在spring data中使用r2dbc_flydean-编程思维

目录简介依赖关系数据库连接配置数据库初始化DAO操作Service操作和Transactioncontroller测试 简介 上篇文章我们讲到了怎么在Spring webFlux中使用r2dbc,今天我们看一下怎么使用spring-data-r2dbc这个Spring data对r2dbc的封装来进行r2dbc操作。 依赖关系 要使用Spring-datea-r2dbc需要配置下面的依赖关系:

没错,请求dns服务器还可以使用udp协议_flydean-编程思维

目录简介搭建netty客户端在netty中发送DNS查询请求DNS消息的处理总结 简介 之前我们讲到了如何在netty中构建client向DNS服务器进行域名解析请求。使用的是最常见的TCP协议,也叫做Do53/TCP。 事实上除了TCP协议之外,DNS服务器还接收UDP协议。这个协议叫做DNS-over-UDP/53,简称("Do53")。 本文将会一步一步带领大家在netty中搭建使用UDP

手把手教你在netty中使用tcp协议请求dns服务器_flydean-编程思维

目录简介DNS传输协议简介DNS的IP地址Do53/TCP在netty中的使用搭建DNS netty client发送DNS查询消息DNS查询的消息处理总结 简介 DNS的全称domain name system,既然是一个系统就有客户端和服务器之分。一般情况来说我们并不需要感知这个DNS客户端的存在,因为我们在浏览器访问某个域名的时候,浏览器作为客户端已经实现了这个工作。 但是有时候我们没有使

快来体验快速通道,netty中epoll传输协议详解_flydean-编程思维

目录简介epoll的详细使用EpollEventLoopGroupEpollEventLoopEpollServerSocketChannelEpollSocketChannel总结 简介 在前面的章节中,我们讲解了kqueue的使用和原理,接下来我们再看一下epoll的使用。两者都是更加高级的IO方式,都需要借助native的方法实现,不同的是Kqueue用在mac系统中,而epoll用在li

netty系列之:kequeue传输协议详解_flydean-编程思维

目录简介KQueueEventLoopGroupKQueueEventLoopKQueueServerSocketChannel和KQueueSocketChannel总结 简介 在前面的章节中,我们介绍了在netty中可以使用kequeue或者epoll来实现更为高效的native传输方式。那么kequeue和epoll和NIO传输协议有什么不同呢? 本章将会以kequeue为例进行深入探讨。

netty系列之:在netty中使用native传输协议_flydean-编程思维

目录简介native传输协议的依赖netty本地传输协议的使用总结 简介 对于IO来说,除了传统的block IO,使用最多的就是NIO了,通常我们在netty程序中最常用到的就是NIO,比如NioEventLoopGroup,NioServerSocketChannel等。 我们也知道在IO中有比NIO更快的IO方式,比如kqueue和epoll,但是这两种方式需要native方法的支持,也就

netty系列之:在netty中实现线程和cpu绑定_flydean-编程思维

目录简介引入affinityAffinityThreadFactory在netty中使用AffinityThreadFactory总结 简介 之前我们介绍了一个非常优秀的细粒度控制JAVA线程的库:java thread affinity。使用这个库你可以将线程绑定到特定的CPU或者CPU核上,通过减少线程在CPU之间的切换,从而提升线程执行的效率。 虽然netty已经够优秀了,但是谁不想更加优

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

目录简介enum和Enumnetty中可扩展的Enum:ConstantPool使用ConstantPool总结 简介 很多人都用过java中的枚举,枚举是JAVA 1.5中引用的一个新的类型,用来表示可以列举的范围,但是可能很少有人知道java中的enum到底是怎么工作的,enum和Enum有什么关系?Enum可不可以扩展? 一起来看看吧。 enum和Enum JAVA1.5中引入了枚举类,我

netty系列之:给ThreadLocal插上梦想的翅膀,详解FastThreadLocal-编程思维

目录简介从ThreadLocalMap中获取数据FastThreadLocal总结 简介 JDK中的ThreadLocal可以通过get方法来获得跟当前线程绑定的值。而这些值是存储在ThreadLocal.ThreadLocalMap中的。而在ThreadLocalMap中底层的数据存储是一个Entry数组中的。 那么从ThreadLocalMap中获取数据的速度如何呢?速度有没有可以优化的空间

可能有人听过ThreadLocal,但一定没人听过ThreadLocal对象池-编程思维

目录简介ThreadLocalThreadLocalMapRecycler总结 简介 JDK中的Thread大家肯定用过,只要是用过异步编程的同学肯定都熟悉。为了保存Thread中特有的变量,JDK引入了ThreadLocal类来专门对Thread的本地变量进行管理。 ThreadLocal 很多新人可能不明白ThreadLocal到底是什么,它和Thread到底有什么关系。 其实很简单,Thr