当前位置: 首页 > 知识库问答 >
问题:

Spring Cloud Stream Rabbit Binder,单消息源,具有分布在数据中心的云代工实例

郎聪
2023-03-14

我正在使用Spring Cloud stream发布者将分区的Rabbit MQ队列设置为30个分区。消费者部署在Cloud-oundry中。

这需要30个云铸造中的消费者应用程序实例,我想将这些实例分布到2个数据中心。所以我在一个数据中心启动了15个实例,在第二个数据中心启动了其他15个实例

我期望每个实例连接到0-29分区(一个分区得到一个实例),但2个实例(每个数据中心各一个)连接到0到14个分区(0-14连接了2个实例)。15到29没有任何消费者。

有什么方法可以实现我的期望吗?

在cloud foundry的两个数据中心部署中,实例索引似乎都自动设置为0到14。是否有任何方法可以控制实例索引分配!?

共有1个答案

刘元青
2023-03-14

设置Spring。云流动instanceIndex到不同的值在这里会有所帮助,例如spring。云流动instanceIndex=第二个数据中心中的$CF\u INSTANCE\u索引15。我使用这里提到的EnvironmentPostProcessor尝试了下面的解决方案,它成功了

public class EnvironmentPostProcessor1 implements EnvironmentPostProcessor {

    @Override
    public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {

            String cfInstanceIndex=environment.getProperty("CF_INSTANCE_INDEX");        
            if(cfInstanceIndex != null ){       
                ExpressionParser expressionParser = new SpelExpressionParser();
                Expression expression = expressionParser.parseExpression("15"+ " + " +cfInstanceIndex);
                Integer result =  (Integer) expression.getValue();
                System.setProperty("spring.cloud.stream.bindings.input.consumer.instanceIndex",result.toString()); 

            }


    }   
 类似资料:
  • 它提供的Swagger UI和rest API规范给了我灵感。 最近,我开始使用消息代理(特别是RabbitMQ),我希望有一些工具来开始开发具有消息和队列规范的面向微服务的系统。 是否有任何工具允许制作这些规范?从代码生成文档还是从模型生成代码? 提前感谢! 更新: 如本文所述。队列,交换,填充,用户和权限可以用RabbitMQ配置文件来描述。 AsyncAPI 看起来是一个很好的解决方案

  • 云联壹云平台支持对接多种通知渠道接收系统消息等。 站内信 站内信用于查看通过控制台发送给用户的信息。 通知渠道设置 通知渠道用于配置接收云联壹云消息通知的途径。 接收人管理 接收人用于接收告警等系统通知信息。 机器人管理 机器人用来接收监控和预算告警消息。

  • 消息分类 通知消息 告警消息 公告消息

  • 一个简易的消息管理模块,你可以进行存储消息,记录消息的已读状态。也可自行扩展,当作消息队列的基础。或者也可以用做记录,管理员之间的留言。 Service说明 1、创建单一消息 /** * @param $title 消息标题 * @param $content 消息内容 * @param $receiver 接收者(例如管理员id) * @re

  • 11.4.1 消息里面会收到哪些类型的消息呢? 11.4.2 任务中心会收到哪些类型的任务呢? ​

  • 通知处理程序 邮递https://fcm.googleapis.com/fcm/send 当我发送通知与有效载荷上面,通知交付到系统托盘,当我点击它,我有以下三种情况: 应用程序处于后台(关闭/终止),显示“数据”并调用onLaunch方法。 问题是,如何接收或处理带有通知的“数据”也发送到系统托盘?任何帮助都将不胜感激。