/** * Build Producer Configs. * @param props Properties * @param producer DefaultMQProducer */ public static void buildProducerConfigs(Properties props, DefaultMQProducer producer) { buildCommonConfigs(props, producer); String group = props.getProperty(PRODUCER_GROUP); if (StringUtils.isEmpty(group)) { group = UUID.randomUUID().toString(); } producer.setProducerGroup(props.getProperty(PRODUCER_GROUP, group)); producer.setRetryTimesWhenSendFailed(getInteger(props, PRODUCER_RETRY_TIMES, DEFAULT_PRODUCER_RETRY_TIMES)); producer.setRetryTimesWhenSendAsyncFailed(getInteger(props, PRODUCER_RETRY_TIMES, DEFAULT_PRODUCER_RETRY_TIMES)); producer.setSendMsgTimeout(getInteger(props, PRODUCER_TIMEOUT, DEFAULT_PRODUCER_TIMEOUT)); }
private DefaultMQProducer getAndCreateTraceProducer(RPCHook rpcHook) { DefaultMQProducer traceProducerInstance = this.traceProducer; if (traceProducerInstance == null) { traceProducerInstance = new DefaultMQProducer(rpcHook); traceProducerInstance.setProducerGroup(TraceConstants.GROUP_NAME); traceProducerInstance.setSendMsgTimeout(5000); traceProducerInstance.setVipChannelEnabled(false); // The max size of message is 128K traceProducerInstance.setMaxMessageSize(maxMsgSize - 10 * 1000); } return traceProducerInstance; }
AbstractOMSProducer(final KeyValue properties) { this.properties = properties; this.rocketmqProducer = new DefaultMQProducer(); this.clientConfig = BeanUtils.populate(properties, ClientConfig.class); if ("true".equalsIgnoreCase(System.getenv("OMS_RMQ_DIRECT_NAME_SRV"))) { String accessPoints = clientConfig.getAccessPoints(); if (accessPoints == null || accessPoints.isEmpty()) { throw new OMSRuntimeException("-1", "OMS AccessPoints is null or empty."); } this.rocketmqProducer.setNamesrvAddr(accessPoints.replace(',', ';')); } this.rocketmqProducer.setProducerGroup(clientConfig.getRmqProducerGroup()); String producerId = buildInstanceName(); this.rocketmqProducer.setSendMsgTimeout(clientConfig.getOperationTimeout()); this.rocketmqProducer.setInstanceName(producerId); this.rocketmqProducer.setMaxMessageSize(1024 * 1024 * 4); this.rocketmqProducer.setLanguage(LanguageCode.OMS); properties.put(OMSBuiltinKeys.PRODUCER_ID, producerId); }
public JmsBaseMessageProducer(Destination destination, CommonContext context) throws JMSException { synchronized (LOCK_OBJECT) { checkArgs(destination, context); if (null == producerMap.get(this.context.getProducerId())) { DefaultMQProducer producer = new DefaultMQProducer(context.getProducerId()); if (!Strings.isNullOrEmpty(context.getNameServer())) { producer.setNamesrvAddr(context.getNameServer()); } if (!Strings.isNullOrEmpty(context.getInstanceName())) { producer.setInstanceName(context.getInstanceName()); } if (context.getSendMsgTimeoutMillis() > 0) { producer.setSendMsgTimeout(context.getSendMsgTimeoutMillis()); } try { producer.start(); } catch (MQClientException mqe) { throw ExceptionUtil.convertToJmsException(mqe, String.format("Start producer failed:%s", context.getProducerId())); } producerMap.putIfAbsent(this.context.getProducerId(), producer); } } }
public static DefaultMQProducer getProducer(int queueNum, String producerGroup, int sendMsgTimeout) throws Exception { if (queueNum < 1) throw new IllegalArgumentException("queueNum must >= 1"); if (StringUtils.isBlank(producerGroup)) throw new IllegalArgumentException("producerGroup cannot be null"); String producerKey = producerGroup + queueNum; if (producerMap.get(producerKey) == null) { synchronized (producerMap) { if (producerMap.get(producerKey) == null) { DefaultMQProducer producer = new DefaultMQProducer(DEFAULT_PRODUCER_GROUP); producer.setDefaultTopicQueueNums(queueNum); producer.setSendMsgTimeout(sendMsgTimeout); producer.start(); producerMap.put(producerKey, producer); } } } return producerMap.get(producerKey); }
@Override public void afterPropertiesSet() throws Exception { producer = new DefaultMQProducer(producerGroup); producer.setInstanceName(instanceName); producer.setNamesrvAddr(namesrvAddr); producer.setDefaultTopicQueueNums(defaultTopicQueueNums); producer.setSendMsgTimeout(sendMsgTimeout); producer.setRetryTimesWhenSendFailed(retryTimesWhenSendFailed); producer.start(); log.info("Producer Group {} started!", producerGroup); }
@Bean @ConditionalOnClass(DefaultMQProducer.class) @ConditionalOnMissingBean(DefaultMQProducer.class) @ConditionalOnProperty(prefix = "spring.rocketmq", value = {"nameServer", "producer.group"}) @Order(1) public DefaultMQProducer mqProducer(RocketMQProperties rocketMQProperties) { RocketMQProperties.Producer producerConfig = rocketMQProperties.getProducer(); String groupName = producerConfig.getGroup(); Assert.hasText(groupName, "[spring.rocketmq.producer.group] must not be null"); DefaultMQProducer producer = new DefaultMQProducer(producerConfig.getGroup()); producer.setNamesrvAddr(rocketMQProperties.getNameServer()); producer.setSendMsgTimeout(producerConfig.getSendMsgTimeout()); producer.setRetryTimesWhenSendFailed(producerConfig.getRetryTimesWhenSendFailed()); producer.setRetryTimesWhenSendAsyncFailed(producerConfig.getRetryTimesWhenSendAsyncFailed()); producer.setMaxMessageSize(producerConfig.getMaxMessageSize()); producer.setCompressMsgBodyOverHowmuch(producerConfig.getCompressMsgBodyOverHowmuch()); producer.setRetryAnotherBrokerWhenNotStoreOK(producerConfig.isRetryAnotherBrokerWhenNotStoreOk()); return producer; }
AbstractOMSProducer(final KeyValue properties) { this.properties = properties; this.rocketmqProducer = new DefaultMQProducer(); this.clientConfig = BeanUtils.populate(properties, ClientConfig.class); String accessPoints = clientConfig.getOmsAccessPoints(); if (accessPoints == null || accessPoints.isEmpty()) { throw new OMSRuntimeException("-1", "OMS AccessPoints is null or empty."); } this.rocketmqProducer.setNamesrvAddr(accessPoints.replace(',', ';')); this.rocketmqProducer.setProducerGroup(clientConfig.getRmqProducerGroup()); String producerId = buildInstanceName(); this.rocketmqProducer.setSendMsgTimeout(clientConfig.getOmsOperationTimeout()); this.rocketmqProducer.setInstanceName(producerId); this.rocketmqProducer.setMaxMessageSize(1024 * 1024 * 4); properties.put(PropertyKeys.PRODUCER_ID, producerId); }
/** * 构造消息类型的轨迹数据发送器 * * @param properties 参数属性 * @throws MQClientException 消息异常 */ public AsyncTraceAppender(Properties properties) throws MQClientException { transDataList = new ArrayList<OnsTraceTransferBean>(); traceProducer = new DefaultMQProducer(); this.traceProducer.setProducerGroup(OnsTraceConstants.groupName); traceProducer.setSendMsgTimeout(5000); traceProducer.setInstanceName(properties.getProperty(OnsTraceConstants.InstanceName, String.valueOf(System.currentTimeMillis()))); String nameSrv = properties.getProperty(OnsTraceConstants.NAMESRV_ADDR); if (nameSrv == null) { TopAddressing topAddressing = new TopAddressing(properties.getProperty(OnsTraceConstants.ADDRSRV_URL)); nameSrv = topAddressing.fetchNSAddr(); } traceProducer.setNamesrvAddr(nameSrv); traceProducer.setVipChannelEnabled(false); // 消息最大大小128K int maxSize = Integer.parseInt(properties.getProperty(OnsTraceConstants.MaxMsgSize, "128000")); batchSize = Integer.parseInt(properties.getProperty(OnsTraceConstants.MaxBatchNum, "1")); traceProducer.setMaxMessageSize(maxSize - 10 * 1000); traceProducer.start(); }
private DefaultMQProducer getAndCreateTraceProducer(RPCHook rpcHook) { DefaultMQProducer traceProducerInstance = this.traceProducer; if (traceProducerInstance == null) { traceProducerInstance = new DefaultMQProducer(rpcHook); traceProducerInstance.setProducerGroup(TraceConstants.GROUP_NAME); traceProducerInstance.setSendMsgTimeout(5000); traceProducerInstance.setVipChannelEnabled(false); // The max size of message is 128K traceProducerInstance.setMaxMessageSize(maxMsgSize - 10 * 1000); } return traceProducerInstance; }
@Bean public DefaultMQProducer exposeProducer() throws Exception { Map<String, Object> beans = applicationContext.getBeansWithAnnotation(MQProducer.class); //对于仅仅只存在消息消费者的项目,无需构建生产者 if(CollectionUtils.isEmpty(beans)){ return null; } if(producer == null) { Assert.notNull(mqProperties.getProducerGroup(), "producer group must be defined"); Assert.notNull(mqProperties.getNameServerAddress(), "name server address must be defined"); producer = new DefaultMQProducer(mqProperties.getProducerGroup()); producer.setNamesrvAddr(mqProperties.getNameServerAddress()); producer.setSendMsgTimeout(mqProperties.getSendMsgTimeout()); producer.setSendMessageWithVIPChannel(mqProperties.getVipChannelEnabled()); producer.start(); } return producer; }
AbstractOMSProducer(final KeyValue properties) { this.properties = properties; this.rocketmqProducer = new DefaultMQProducer(); this.clientConfig = BeanUtils.populate(properties, ClientConfig.class); if ("true".equalsIgnoreCase(System.getenv("OMS_RMQ_DIRECT_NAME_SRV"))) { String accessPoints = clientConfig.getAccessPoints(); if (accessPoints == null || accessPoints.isEmpty()) { throw new OMSRuntimeException("-1", "OMS AccessPoints is null or empty."); } this.rocketmqProducer.setNamesrvAddr(accessPoints.replace(',', ';')); } this.rocketmqProducer.setProducerGroup(clientConfig.getRmqProducerGroup()); String producerId = buildInstanceName(); this.rocketmqProducer.setSendMsgTimeout(clientConfig.getOperationTimeout()); this.rocketmqProducer.setInstanceName(producerId); this.rocketmqProducer.setMaxMessageSize(1024 * 1024 * 4); this.rocketmqProducer.setLanguage(LanguageCode.OMS); properties.put(OMSBuiltinKeys.PRODUCER_ID, producerId); }
@Bean @ConditionalOnMissingBean(DefaultMQProducer.class) @ConditionalOnProperty(prefix = "rocketmq", value = {"name-server", "producer.group"}) public DefaultMQProducer defaultMQProducer(RocketMQProperties rocketMQProperties) { RocketMQProperties.Producer producerConfig = rocketMQProperties.getProducer(); String nameServer = rocketMQProperties.getNameServer(); String groupName = producerConfig.getGroup(); Assert.hasText(nameServer, "[rocketmq.name-server] must not be null"); Assert.hasText(groupName, "[rocketmq.producer.group] must not be null"); DefaultMQProducer producer = new DefaultMQProducer(groupName); producer.setNamesrvAddr(nameServer); producer.setSendMsgTimeout(producerConfig.getSendMessageTimeout()); producer.setRetryTimesWhenSendFailed(producerConfig.getRetryTimesWhenSendFailed()); producer.setRetryTimesWhenSendAsyncFailed(producerConfig.getRetryTimesWhenSendAsyncFailed()); producer.setMaxMessageSize(producerConfig.getMaxMessageSize()); producer.setCompressMsgBodyOverHowmuch(producerConfig.getCompressMessageBodyThreshold()); producer.setRetryAnotherBrokerWhenNotStoreOK(producerConfig.isRetryNextServer()); return producer; }
@Bean @ConditionalOnClass(DefaultMQProducer.class) @ConditionalOnMissingBean(DefaultMQProducer.class) @ConditionalOnProperty(prefix = "spring.rocketmq", value = {"name-server", "producer.group"}) public DefaultMQProducer mqProducer(RocketMQProperties rocketMQProperties) { RocketMQProperties.Producer producerConfig = rocketMQProperties.getProducer(); String groupName = producerConfig.getGroup(); Assert.hasText(groupName, "[spring.rocketmq.producer.group] must not be null"); DefaultMQProducer producer = new DefaultMQProducer(producerConfig.getGroup()); producer.setNamesrvAddr(rocketMQProperties.getNameServer()); producer.setSendMsgTimeout(producerConfig.getSendMsgTimeout()); producer.setRetryTimesWhenSendFailed(producerConfig.getRetryTimesWhenSendFailed()); producer.setRetryTimesWhenSendAsyncFailed(producerConfig.getRetryTimesWhenSendAsyncFailed()); producer.setMaxMessageSize(producerConfig.getMaxMessageSize()); producer.setCompressMsgBodyOverHowmuch(producerConfig.getCompressMsgBodyOverHowmuch()); producer.setRetryAnotherBrokerWhenNotStoreOK(producerConfig.isRetryAnotherBrokerWhenNotStoreOk()); return producer; }