Fork me on GitHub

随笔分类 -  响应式系统

摘要:简介 我们知道由两种数据的传输方式,分别是字符流和字节流,字符流的意思是传输的对象就是字符串,格式已经被设置好了,发送方和接收方按照特定的格式去读取就行了,而字节流是指将数据作为最原始的二进制字节来进行传输。 今天给大家介绍一下在netty中的基于流的数据传输。 package和byte 熟悉TCP 阅读全文
posted @ 2021-08-10 09:36 flydean 阅读(1175) 评论(1) 推荐(0) 编辑
摘要:简介 之前的系列文章中我们学到了netty的基本结构和工作原理,各位小伙伴一定按捺不住心中的喜悦,想要开始手写代码来体验这神奇的netty框架了,刚好最近东京奥运会,我们写一个netty的客户端和服务器为中国加油可好? 场景规划 那么我们今天要搭建什么样的系统呢? 首先要搭建一个server服务器, 阅读全文
posted @ 2021-08-09 08:24 flydean 阅读(347) 评论(1) 推荐(0) 编辑
摘要:简介 上一节我们讲解了netty中的Channel,知道了channel是事件处理器和外部联通的桥梁。今天本文将会详细讲解netty的剩下几个非常总要的部分Event、Handler和PipeLine。 ChannelPipeline pipeLine是连接Channel和handler的桥梁,它实 阅读全文
posted @ 2021-08-07 09:20 flydean 阅读(562) 评论(1) 推荐(0) 编辑
摘要:简介 Channel是连接ByteBuf和Event的桥梁,netty中的Channel提供了统一的API,通过这种统一的API,netty可以轻松的对接多种传输类型,如OIO,NIO等。今天本文将会介绍Channel的使用和Channel相关的一些概念。 Channel详解 Channel是什么? 阅读全文
posted @ 2021-08-06 08:54 flydean 阅读(1626) 评论(1) 推荐(0) 编辑
摘要:简介 Netty为什么这么优秀,它在JDK本身的NIO基础上又做了什么改进呢?它的架构和工作流程如何呢?请走进今天的netty系列文章之:netty架构概述。 netty架构图 netty的主要作用就是提供一个简单的NIO框架可以和上层的各种协议相结合,最终实现高性能的服务器。下面是netty官网提 阅读全文
posted @ 2021-08-05 09:04 flydean 阅读(887) 评论(0) 推荐(0) 编辑
摘要:简介 netty中用于进行信息承载和交流的类叫做ByteBuf,从名字可以看出这是Byte的缓存区,那么ByteBuf都有哪些特性呢?一起来看看。 ByteBuf详解 netty提供了一个io.netty.buffer的包,该包里面定义了各种类型的ByteBuf和其衍生的类型。 netty Buff 阅读全文
posted @ 2021-08-04 08:58 flydean 阅读(6127) 评论(1) 推荐(0) 编辑
摘要:简介 我们常用浏览器来访问web页面得到相关的信息,通常来说使用的都是HTTP或者HTTPS协议,这些协议的本质上都是IO,客户端的请求就是In,服务器的返回就是Out。但是在目前的协议框架中,并不能完全满足我们所有的需求。比如使用HTTP下载大文件,可能需要长连接等待等。 我们也知道IO方式有多种 阅读全文
posted @ 2021-08-03 09:23 flydean 阅读(551) 评论(1) 推荐(1) 编辑
摘要:简介 上篇文章我们讲到了怎么在Spring webFlux中使用r2dbc,今天我们看一下怎么使用spring-data-r2dbc这个Spring data对r2dbc的封装来进行r2dbc操作。 依赖关系 要使用Spring-datea-r2dbc需要配置下面的依赖关系: <dependenci 阅读全文
posted @ 2020-11-28 21:48 flydean 阅读(3566) 评论(1) 推荐(0) 编辑
摘要:简介 mysql应该是我们在日常工作中使用到的一个非常普遍的数据库,虽然mysql现在是oracle公司的,但是它是开源的,市场占有率还是非常高的。 今天我们将会介绍r2dbc在mysql中的使用。 r2dbc-mysql的maven依赖 要想使用r2dbc-mysql,我们需要添加如下的maven 阅读全文
posted @ 2020-11-22 08:00 flydean 阅读(2827) 评论(2) 推荐(0) 编辑
摘要:简介 本文将会介绍R2DBC的H2实现r2dbc-h2的使用方法和要注意的事项。一起来看看吧。 H2数据库简介 什么是H2数据库呢? H2是一个Java SQL database,它是一个开源的数据库,运行起来非常快。 H2流行的原因是它既可以当做一个独立的服务器,也可以以一个嵌套的服务运行,并且支 阅读全文
posted @ 2020-11-20 09:49 flydean 阅读(1041) 评论(1) 推荐(1) 编辑
摘要:简介 之前我们提到过,对于底层的数据源来说,MongoDB, Redis, 和 Cassandra 可以直接以reactive的方式支持Spring Data。而其他很多关系型数据库比如Postgres, Microsoft SQL Server, MySQL, H2 和 Google Spanne 阅读全文
posted @ 2020-11-18 09:51 flydean 阅读(3526) 评论(1) 推荐(1) 编辑
摘要:简介 在Spring 5中,Spring MVC引入了webFlux的概念,webFlux的底层是基于reactor-netty来的,而reactor-netty又使用了Reactor库。 本文将会介绍在Spring Boot中reactive在WebFlux中的使用。 Reactive in Sp 阅读全文
posted @ 2020-11-16 10:13 flydean 阅读(1177) 评论(1) 推荐(0) 编辑
摘要:简介 不管是在响应式编程还是普通的程序设计中,异常处理都是一个非常重要的方面。今天将会给大家介绍Reactor中异常的处理流程。 Reactor的异常一般处理方法 先举一个例子,我们创建一个Flux,在这个Flux中,我们产生一个异常,看看是什么情况: Flux flux2= Flux.just(1 阅读全文
posted @ 2020-11-13 09:58 flydean 阅读(4815) 评论(0) 推荐(1) 编辑
摘要:简介 今天我们要介绍的是Reactor中的多线程模型和定时器模型,Reactor之前我们已经介绍过了,它实际上是观察者模式的延伸。 所以从本质上来说,Reactor是和多线程无关的。你可以把它用在多线程或者不用在多线程。 今天将会给大家介绍一下如何在Reactor中使用多线程和定时器模型。 Thre 阅读全文
posted @ 2020-11-11 09:36 flydean 阅读(4857) 评论(1) 推荐(0) 编辑
摘要:简介 上篇文章我们简单的介绍了Reactor的发展史和基本的Flux和Mono的使用,本文将会进一步挖掘Reactor的高级用法,一起来看看吧。 自定义Subscriber 之前的文章我们提到了4个Flux的subscribe的方法: Disposable subscribe(); Disposab 阅读全文
posted @ 2020-11-09 09:24 flydean 阅读(8537) 评论(1) 推荐(0) 编辑
摘要:简介 Reactor是reactivex家族的一个非常重要的成员,Reactor是第四代的reactive library,它是基于Reactive Streams标准基础上开发的,主要用来构建JVM环境下的非阻塞应用程序。 今天给大家介绍一下Reactor。 Reactor简介 Reactor是基 阅读全文
posted @ 2020-11-06 09:10 flydean 阅读(8759) 评论(1) 推荐(1) 编辑
摘要:[toc] JDK11的新特性:HTTP API和reactive streams 简介 在 "JDK11的新特性:新的HTTP API" 中,我们介绍了通过新的HTTP API,我们可以发送同步或者异步的请求,并获得的返回的结果。 今天我们想探讨一下这些同步或者异步请求和响应和reactive s 阅读全文
posted @ 2020-05-17 07:23 flydean 阅读(725) 评论(0) 推荐(0) 编辑
摘要:[toc] 背景 Stream大家应该都很熟悉了,java8中为所有的集合类都引入了Stream的概念。优雅的链式操作,流式处理逻辑,相信用过的人都会爱不释手。 每个数据流都有一个生产者一个消费者。生产者负责产生数据,而消费者负责消费数据。如果是同步系统,生产一个消费一个没什么问题。但是如果在异步系 阅读全文
posted @ 2020-05-16 07:49 flydean 阅读(2760) 评论(0) 推荐(0) 编辑