Redisson官方文档 - 12. 独立节点模式

简介: Redisson Node指的是Redisson在分布式运算环境中作为独立节点运行的一种模式。Redisson Node的功能可以用来执行通过分布式执行服务或分布式调度执行服务发送的远程任务,也可以用来为分布式远程服务提供远端服务。 所有这些功能全部包含在一个JAR包里。

12.1. 概述

Redisson Node指的是Redisson在分布式运算环境中作为独立节点运行的一种模式。Redisson Node的功能可以用来执行通过分布式执行服务或分布式调度执行服务发送的远程任务,也可以用来为分布式远程服务提供远端服务。 所有这些功能全部包含在一个JAR包里,您可以从这里下载

12.2. 配置方法

12.2.1. 配置参数

Redisson Node采用的是与Redisson框架同样的配置方法,并同时还增加了以下几个专用参数。值得注意的是ExecutorService使用的线程数量可以通过threads参数来设定。

mapReduceWorkers (MapReduce的工作者数量)

默认值:0
用来指定执行MapReduce任务的工作者的数量
0 代表当前CPU核的数量

executorServiceWorkers(执行服务的工作者数量)

默认值:null
用一个Map结构来指定某个服务的工作者数量,Map的Key是服务名称,用value指定数量。

redissonNodeInitializer(初始化监听器)

默认值:null

Redisson Node启动完成后调用的初始化监听器。

12.2.2. 通过JSON和YAML配置文件配置独立节点

以下是JSON格式的配置文件范例,该范例是在集群模式配置方法基础上,增加了Redisson Node的配置参数。

{
   
   "clusterServersConfig":{
   
      "nodeAddresses":[
         "//127.0.0.1:7004",
         "//127.0.0.1:7001",
         "//127.0.0.1:7000"
      ],
   },
   "threads":0,

   "executorServiceThreads": 0,
   "executorServiceWorkers": {
   "myExecutor1":3, "myExecutor2":5},
   "redissonNodeInitializer": {
   "class":"org.mycompany.MyRedissonNodeInitializer"}
}

以下是YAML格式的配置文件范例,该范例是在集群模式配置方法基础上,增加了Redisson Node的配置参数。

---
clusterServersConfig:
  nodeAddresses:
  - "//127.0.0.1:7004"
  - "//127.0.0.1:7001"
  - "//127.0.0.1:7000"
  scanInterval: 1000
threads: 0

executorServiceThreads: 0
executorServiceWorkers:
  myService1: 123
  myService2: 421
redissonNodeInitializer: !<org.mycompany.MyRedissonNodeInitializer> {
   }

12.3. 初始化监听器

Redisson Node提供了在启动完成后,执行RedissonNodeInitializer指定的初始化监听器的机制。这个机制可以用在启动完成时执行注册在类路径(classpath)中分布式远程服务的实现,或其他必要业务逻辑。比如,通知其他订阅者关于一个新节点上线的通知:

public class MyRedissonNodeInitializer implements RedissonNodeInitializer {
   

    @Override
    public void onStartup(RedissonNode redissonNode) {
   
        RMap<String, Integer> map = redissonNode.getRedisson().getMap("myMap");
        // ...
        // 或
        redisson.getRemoteService("myRemoteService").register(MyRemoteService.class, new MyRemoteServiceImpl(...));
        // 或
        reidsson.getTopic("myNotificationTopic").publish("New node has joined. id:" + redissonNode.getId() + " remote-server:" + redissonNode.getRemoteAddress());
    }

}

12.4. 嵌入式运行方法

Redisson Node也可以以嵌入式方式运行在其他应用当中。

// Redisson程序化配置代码
Config config = ...
// Redisson Node 程序化配置方法
RedissonNodeConfig nodeConfig = new RedissonNodeConfig(config);
Map<String, Integer> workers = new HashMap<String, Integer>();
workers.put("test", 1);
nodeConfig.setExecutorServiceWorkers(workers);

// 创建一个Redisson Node实例
RedissonNode node = RedissonNode.create(nodeConfig);
// 或者通过指定的Redisson实例创建Redisson Node实例
RedissonNode node = RedissonNode.create(nodeConfig, redisson);

node.start();

//...

node.shutdown();

12.5. 命令行运行方法

  1. 下载Redisson Node的JAR包。
  2. 编写一个JSON或YAML格式的配置文件。
  3. 通过以下方式之一运行Redisson Node:
    java -jar redisson-all.jar config.json
    或
    java -jar redisson-all.jar config.yaml

另外不要忘记添加-Xmx或-Xms之类的参数。

12.6. Docker方式运行方法

  1. 首先运行Redis(没有现有Redis环境的情况):
    docker run -d --name redis-node redis
  2. 再运行Redisson Node:
    docker run -d --network container:redis-node -v <path-to-config>:/opt/redisson-node/redisson.conf redisson/redisson-node

    可以通过JAVA_OPTS来指定JAVA虚拟主机的运行参数:
    docker run -d --network container:redis-node -e JAVA_OPTS="-Xmx1g" -v <path-to-config>:/opt/redisson-node/redisson.conf redisson/redisson-node

    <path-to-config> - Redisson Node的JSON或YAML配置文件路径

目录
相关文章
|
JSON 数据格式
Redisson官方文档 - 4. 数据序列化
Redisson的对象编码类是用于将对象进行序列化和反序列化,以实现对该对象在Redis里的读取和存储。Redisson提供了多种的对象编码供大家选择。
11345 0
|
NoSQL Java 网络安全
Redisson官方文档 - 2. 配置方法
Redisson客户端配置方法
35094 0
|
5月前
|
存储 人工智能 弹性计算
阿里云99元1年和199元1年云服务器怎么选?购买资格、实例性能、适用场景对比与选购指南
阿里云99元/年和199元/年云服务器区别与选择参考:99元经济型e实例(2核2G/3M带宽/40G云盘)面向个人与企业新老用户,新购续费同价,活动截止2027年3月31日,适合个人博客、开发测试等轻量场景。199元u1实例(2核4G/5M带宽/80G云盘)仅限企业用户,独享性能更稳定,支持海外节点,适用于中小企业正式业务。此外,轻量应用服务器低至38元/年,预装WordPress、OpenClaw等镜像,开箱即用。用户可通过组合套餐叠加域名、SSL、数据库等产品进一步降本,是降低上云门槛的高性价比之选。
|
12月前
|
人工智能 自然语言处理 测试技术
研发、测试提效攻略:利用Apipost AI 6 大核心功能实现接口测试全流程
Apipost 通过 AI 实现接口从设计到测试的全流程自动化,支持智能提取文档、一键补全参数、自动生成用例与断言,大幅提升研发与测试效率,推动接口测试向智能化、规范化升级。
|
存储 缓存 NoSQL
Redis 服务器全方位介绍:从入门到核心原理
Redis是一款高性能内存键值数据库,支持字符串、哈希、列表等多种数据结构,广泛用于缓存、会话存储、排行榜及消息队列。其单线程事件循环架构保障高并发与低延迟,结合RDB和AOF持久化机制兼顾性能与数据安全。通过主从复制、哨兵及集群模式实现高可用与横向扩展,适用于现代应用的多样化场景。合理配置与优化可显著提升系统性能与稳定性。
1065 0
|
11月前
|
人工智能 测试技术
测试工程师必备:利用Apipost AI编写脚本,快速实现多接口串联流程
Apipost支持快速导入接口并利用AI自动生成前后置脚本,解决无文档、不会写脚本及多接口串联难题,提升测试效率。
|
运维 NoSQL 测试技术
从一个事故中理解Redis(几乎)所有知识点
作者从一个事故中总结了Redis(几乎)所有的知识点,供大家学习。
749 12
|
tengine 应用服务中间件 Linux
【Linux环境】如何在Nginx(或Tengine)服务器上安装ssl证书----介绍nginx服务器类型证书的下载与安装操作
【Linux环境】如何在Nginx(或Tengine)服务器上安装ssl证书----介绍nginx服务器类型证书的下载与安装操作
1366 0
|
缓存 NoSQL Java
谷粒商城笔记+踩坑(12)——缓存与分布式锁,Redisson+缓存数据一致性
缓存与分布式锁、Redisson分布式锁、缓存数据一致性【必须满足最终一致性】
1298 16
谷粒商城笔记+踩坑(12)——缓存与分布式锁,Redisson+缓存数据一致性