本文共 3063 字,大约阅读时间需要 10 分钟。
Redisson Node指的是Redisson在分布式运算环境中作为独立节点运行的一种模式。Redisson Node的功能可以用来执行通过或发送的远程任务,也可以用来为提供远端服务。 所有这些功能全部包含在一个JAR包里,您可以从下载
Redisson Node采用的是与Redisson框架同样的,并同时还增加了以下几个专用参数。值得注意的是ExecutorService
使用的线程数量可以通过threads
参数来设定。
默认值:0
用来指定执行MapReduce任务的工作者的数量0 代表当前CPU核的数量
默认值:null
用一个Map结构来指定某个服务的工作者数量,Map的Key是服务名称,用value指定数量。默认值:null
Redisson Node启动完成后调用的初始化监听器。
以下是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: 1000threads: 0executorServiceThreads: 0executorServiceWorkers: myService1: 123 myService2: 421redissonNodeInitializer: !{}
Redisson Node提供了在启动完成后,执行RedissonNodeInitializer
指定的初始化监听器的机制。这个机制可以用在启动完成时执行注册在类路径(classpath)中分布式远程服务的实现,或其他必要业务逻辑。比如,通知其他订阅者关于一个新节点上线的通知:
public class MyRedissonNodeInitializer implements RedissonNodeInitializer { @Override public void onStartup(RedissonNode redissonNode) { RMapmap = 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()); }}
Redisson Node也可以以嵌入式方式运行在其他应用当中。
// Redisson程序化配置代码Config config = ...// Redisson Node 程序化配置方法RedissonNodeConfig nodeConfig = new RedissonNodeConfig(config);Mapworkers = new HashMap ();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();
java -jar redisson-all.jar config.json
或
java -jar redisson-all.jar config.yaml
另外不要忘记添加-Xmx
或-Xms
之类的参数。
docker run -d --name redis-node redis
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配置文件路径
转载地址:http://rwudm.baihongyu.com/