webflux 文件服务器,WebFlux_RSocket_server
Spring WebFlux (6): RSocket 服务实现
RSocket是一种二进制协议,可用于字节流传输,例如TCP,WebSockets和Aeron。
提供了四中交互模式:
request/response (stream of 1) 请求/响应(单响应)大多数请求就是这种模式,仅1个响应的流,是在单个连接上多路复用的异步消息
request/stream (finite stream of many) 可以将其视为“集合”或“列表”响应,但不是将所有数据作为单个响应返回,而是按顺序流回每个元素。
fire-and-forget (no response) 无返回,在不需要响应时非常有用。它不仅可以通过跳过响应来节省网络使用量,而且可以在客户端和服务器处理时间内进行重大的性能优化,因为不需要簿记来等待和关联响应或取消请求。适用于可以有丢失的场景(非关键日子记录)
channel (bi-directional streams) 双向消息流,用于源数据更新,断开连接等,可以获取订阅更新后的差额而不是重新获取一遍
它支持会话恢复,以允许跨不同的传输连接恢复长寿命的流。当网络连接频繁断开,切换和重新连接时,这对于移动服务器通信特别有用。
Springboot对RSocket进行了封装MessagingRSocket,通过Message进行传递,依赖如下:
implementation 'org.springframework.boot:spring-boot-starter-rsocket'
应用示例
简单实现rsocket连接示例,设置一个服务端一个客户端,服务端实现server接口提供服务,客户端接收服务端信息,并通过RESTful访问数据在浏览器中显示
1. 创建服务端
简单实现一个记录温度的类
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
class Temperature {
Long id;
Double temperature;
LocalDateTime time;
public Temperature (long id) {
this.id = id;
this.temperature = ThreadLocalRandom.current().nextDouble(20.0,35.0);
this.time = LocalDateTime.now();
}
}
实现一个服务接口
注意标红处跟RESTful类controller写法的不同
设置rsocket服务端口:
spring.rsocket.server.port=8081
2. 客户端配置
温度容器类:
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
class Temperature {
Long id;
Double temperature;
LocalDateTime time;
}
连接接口:
interface Client {
Flux temperature ();
}
通过连接接口实现服务
@Service
@RequiredArgsConstructor
class RSocketClient implements Client {
private final RSocketRequester rSocketRequester;
public Flux temperature () {
return rSocketRequester.route("server")
.retrieveFlux(Temperature.class);
}
}
通过RESTful controller调用服务
@RestController
@RequiredArgsConstructor
@RequestMapping("client")
class RSocketClientController {
private final RSocketClient rSocketClient;
@GetMapping(produces = MediaType.APPLICATION_STREAM_JSON_VALUE)
public Flux temperature() {
return rSocketClient.temperature();
}
}
配置访问路径:
@Configuration
class ClientConfiguration {
@Bean
public Client client (RSocketRequester rSocketRequester) {
return new RSocketClient(rSocketRequester);
}
@Bean
public RSocketRequester rSocketRequester (RSocketRequester.Builder builder) {
return builder.connectTcp("localhost", 8081).block();
}
}
3. 运行测试
访问http://localhost:8090/client
rSocketClient连接connectTcp("localhost", 8081), 接收数据
返回到浏览器
![Peek 2020-08-13 16-26](README.assets/Peek 2020-08-13 16-26.gif)
代码
server
client
webflux 文件服务器,WebFlux_RSocket_server相关推荐
- 文件服务器共享目录设置(二)
三. 设置磁盘配额及文件屏蔽 为了防止用户无限制的上传文件,或上传病毒木马等文件,还需要进一步加强安全设置.用磁盘配额来管理用户的文件夹空间,用文件屏蔽来阻止用户上传有风险的文 ...
- c 找文件服务器文件,Linux C/C++项目:虚拟文件服务器(功能匹配百度网盘)
github地址:https://github.com/Worthy-Wang/NetDisk FTP文件服务器设计思路: 1.整体架构采用线程池结合epoll监听 客户端通过sockfd与服务器通信 ...
- Spring Boot 2 快速教程:WebFlux 快速入门(二)
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘 ...
- Windows 文件服务器升级跨林迁移(二)
迁移文件服务器 登陆到ADMT迁移服务器上,打开ADMT管理控制台,邮件点击AD迁移工具,选择"计算机迁移向导" 点击下一步 选择源域为旧的控,目标域为新域控,点击下一步 从域中选 ...
- Windows Server 2012 文件服务器群集
概述:之前已经测试了Windows Server 2012系统群集.Hyper-V群集,接下来将测试Windows Server 2012 文件服务器群集功能. 实验环境: 4台服务器都为Window ...
- 文件服务器的内存要多少,文件服务器内存要多大
文件服务器内存要多大 内容精选 换一换 Windows场景中,当把源端服务器迁移到华为云后,目的端服务器C盘的已用空间比对应源端服务器C盘的已用空间大至少1GB,而不是与源端服务器C盘的已用空间一致, ...
- 文件服务器搭建 xp,xp文件服务器搭建
xp文件服务器搭建 内容精选 换一换 登录Windows操作系统的弹性云服务器时,需使用密码方式登录.因此,用户需先根据创建弹性云服务器时使用的密钥文件,获取该弹性云服务器初始安装时系统生成的管理员密 ...
- 使用Nginx搭建前端静态服务器+文件服务器
大家可能被虚拟主机不太了解,那我们的解释一下,虚拟主机指在一台物理主机服务器上划分出多个磁盘空间,每个磁盘空间都是一个虚拟主机,每台虚拟主机都可以对外提供Web服务,并且互不干扰. 一.Nginx的虚 ...
- 文件服务器raid1设置,文件服务器raid1设置
文件服务器raid1设置 内容精选 换一换 外部镜像文件在从原平台导出前,没有按照"Windows操作系统的镜像文件限制"的要求完成初始化操作,推荐您使用弹性云服务器完成相关配置. ...
最新文章
- 2022-2028年中国PGA树脂行业全景调研及投资前景展望报
- 整理《Mastering OpenCV with Practical Computer Vision Projects》中第8章用Eigenfaces或Fisherfaces进行人脸识别操作流程
- python _、__和__xx__的区别
- 基于深度学习的OCR-from 美團技術團隊
- php如何生成html,php生成html文件方法总结
- 语音识别真的比肩人类了?听听阿里iDST初敏怎么说
- linux tasklet函数,14.9.5 实例:Tasklet演示
- OS / CPU是如何访问内存的?
- JavaScript中闭包实现的私有属性的getter()和setter()方法
- 合格的Java程序员需要提升的能力有哪些
- python电子英汉词典显示_python网页抓取之英汉字典
- css碎步测量,CORS系统控制点点位可靠性研究.doc
- 算法题存档20200627(树)
- Typora + PicGo + Aliyun OSS + CSDN
- 如何使用组策略提升Windows系统性能
- 「镁客·请讲」云迹科技张名举:酒店是移动机器人最标准化的服务场景,将有更多服务岗位被机器人替代...
- html初始化调用js函数
- RationalDMIS7.1定制报告(Excel模板制作)
- java整理快捷鍵_常用Eclipse快捷键整理,提高效率
- 非香农类信息不等式_信息论
热门文章
- CorelDRAW教程分享:绘制流程图简单方法分享
- # Logistics Regression
- 服务器ip显示未识别,Win7桌面右下角提示“未识别的网络”如何解决?
- Spring Boot (Filter)过滤器的实现以及使用场景
- Alice In Wonderland notes
- remote: Repository not found. fatal: repository ‘xxxxxxx‘ not found
- SpringBoot:概述,注解,搭建,部署
- R语言绘制柱状图(bar plot)
- 基于Android平台的监控端和被监控端系统
- Deeplearning for NLP (简介)