当前位置: 首页 > 网络应用技术

Spring-DATA-REDIS动态切换数据源

时间:2023-03-05 23:37:44 网络应用技术

  最近,我们遇到了一个麻烦的需求,我们需要一个微服务来同时访问两个不同的redis群集。从总体而言,我们不使用REDIS,但是这两个Redis最初是不同的业务集群,现在我们需要一个Microservices同时访问。

  实际上,当我们在实际业务中发展时,我们可能会遇到类似的场景。基础连接池(例如生菜或Jedis)提供仅读取连接的API,但有两个缺陷:

  因此,我们需要根据Spring-Data-redis实现动态切换的REDIS连接机制。

  弹簧data-redis的配置类是:

  弹簧data-redis核心界面和连接背后的连接相关抽象为::

  通过这张图片,我们可以知道我们可以意识到我们可以动态返回不同的redis连接,并且根据Spring-Data-redis的自动加载源代码,我们可以知道。

  项目地址:https://github.com/jojotec/spring-boot-starter-redis与与之相关

  我们可以为外层打包更多的重新连接配置,也就是说:

  此配置基于原始配置,即用户可以使用原始配置,也可以使用此多式配置,该配置需要配置。放置在多映射中的键是数据源名称。用户可以在使用REDISTEMPLATE或ReactIverDisteSemplate之前通过此数据源名称指定REDIS。

  接下来,让我们实现它,也就是说,您可以动态切换redis连接。我们项目使用的Redis客户端是生菜:

  逻辑非常简单,即设置redis数据源并将其放在线程列表中的接口,仅适用于当前的界面,并在阅读后将其清除。

  然后,将MultiredisletTuceConnectionFactory注册到我们的应用程序context ::

  让我们对其进行测试并使用嵌入式redis启动本地redis以实现单元测试。我们启动两个redis,将不同的键放入两个redis中,验证它是否存在,并测试同步接口,多线程呼叫同步接口和多个呼叫同步接口和多个异步接口无需等待订阅测试有效性。

  运行测试,通过。

  微信搜索“我的编程Meow”会注意公共帐户。每天刷一刷刷子,以轻松改善技术并获得各种优惠