SpringBoot WebFlux整合MongoDB实现CRUD及分页功能

SpringBoot WebFlux整合MongoDB实现CRUD及分页功能,第1张

环境:Springboot258

请先阅读:

Reactor响应式编程(Flux、Mono)基本用法

Spring WebFlux入门实例并整合数据库实现基本的增删改查

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。

在高负载的情况下,添加更多的节点,可以保证服务器性能。

MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

特点:

Spring框架中包含的原始web框架Spring Web MVC是专门为ServletAPI和Servlet容器构建的。反应式堆栈web框架Spring Web Flux后来在50版中添加。它是完全非阻塞的,支持反应流背压(由消费者控制生产者的速度),并在Netty、Undertow和Servlet 31+容器等服务器上运行。

这两个web框架都反映了它们的源模块(Spring Web MVC和Spring Web Flux)的名称,并在Spring框架中共存。每个模块都是可选的。应用程序可以使用一个或另一个模块,在某些情况下,可以同时使用这两个模块 — 例如,带有反应式WebClient的Spring MVC控制器。

配置文件

完毕!!!

Spring Cloud 中断路器 Circuit Breaker的应用

Spring Cloud Gateway应用详解1之谓词

SpringCloud Feign实现原理源分析

SpringCloud Nacos 服务动态配置

SpringCloud Hystrix实现资源隔离应用

SpringCloud zuul 动态网关配置

Spring Cloud全链路追踪SkyWalking及整合Elasticsearch

主从复制作用:数据备份、读写分离
双机热备份:部署两个节点的MongoDB服务,配置一主一从,主节点添加数据,将自动备份到从节点上面,保证主机宕机后数据不丢失,同时可以继续提供数据读取服务(主服务挂掉,从服务将无法在进行写入数据,只能提供数据读取服务)
一主多从:部署多个节点的MongoDB服务,配置一主多从,数据也会自动备份到所有从节点上面,保证主机宕机后数据不丢失,同时可以根据从节点的优先级进行选取新的主节点,继续提供读写服务(主从关系跟服务设置的优先级有直接关系 优先级参数:priority 数字越大优先级越高)

使用上面的方式,在不同服务器上安装并启动MongoDB服务

将启动时使用的配置文件mongodbconf中添加下面的副文本集名称配置,将权限控制参数改为false(auth=false),然后将服务进行重新启动即可(testrs是自定义的副本集名称)
#使用此设置来配置复制副本集。指定一个副本集名称作为参数,所有主机都必须有相同的名称作为同一个副本集
replSet=testrs

然后启动每个服务的客户端查看当前节点为主节点还是从节点;
1) 如果服务部署在不同服务器上,直接启动/bin目录下的mongo即可 命令:/ mongo
2) 如果服务部署在同一台服务器上,使用不同端口及配置文件进行启动的,启动客户端使用该命令 命令:/mongo 127001:27018/

经过上面的一系列 *** 作后,主从配置就完成了,接下来可以进行数据同步测试

第一步:在主库上面切换到admin,然后进行添加数据(命令:dbtestdb1insert([{"name":"zs"}]))

在从库上查询该数据(命令:dbtestdb1find({name:"zs"})),会出现下面如图的错误,因为从库没有查询数据权限,所以需要设置查询权限

设置从库查询权限,使用命令:rssecondaryOk()
然后在使用查询命令进行查询(命令:dbtestdb1find({name:"zs"}))就会看到如下图的查询结果:

如上图所示,数据已经同步到从库上面了,这样双机热备份就已经实现了,上面的情况不包含权限控制

上面的情况已经完成了MongoDB的主从复制功能,但是我们把权限没有开放,启动时使用的配置中auth配置的值为false,说明没有添加权限,接下来就开放一下权限配置;
首先需要主从之间通信的一个keyFile文件,根据官网提供的说明,这个keyfile是可以任意内容的,只要保证所有集群中的机器都拥有同样的文件即可。

我这里将keyFile文件放到了MongoDB的bin目录下了,使用openssl rand -base64 1024 > /usr/local/mongodb-master/bin/mongodbkey 命令生成;

然后将mongodbkey文件复制到每台从服务上面,在每台服务的启动文件上添加 keyFile=/usr/local/mongodb-master/keyfile/mongodbkey 配置项 ,然后将auth属性值改为true,这样就完成了权限配置

重启主从两个节点,这样主机添加的数据,就会同步到从机上面了!!!

添加或删除从节点参考文章:
>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10887300.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存