• 关于 c# 消息队列 的搜索结果

问题

消息服务的Queue是什么?

轩墨 2019-12-01 22:09:42 1032 浏览量 回答数 0

问题

消息服务的Queue什么用处?

轩墨 2019-12-01 22:10:39 1207 浏览量 回答数 0

回答

消息队列发生消息后,可能消费者宕机而无法消费。绝大多数消息中间件对于这种情况,例如 RabbitMQ、RocketMQ 等引入了 ACK 机制。注意的是,默认的情况下,采用自动应答,这种方式中消息队列会发送消息后立即从消息队列中删除该消息。所以,为了确保消息的可靠投递,我们通过手动 ACK 方式,如果消费者因宕机等原因没有发送 ACK,消息队列会将消息重新发送,保证消息的可靠性。从业务服务处理完相关业务后通过手动 ACK 通知消息队列,消息队列才从消息队列中删除该持久化消息。那么,消息队列如果一直重试失败而无法投递,就会出现消息主动丢弃的情况,我们需要如何解决呢?主业务服务将要发送的消息持久化到本地数据库。从业务服务消费成功后,它也会向消息队列发送一个通知消息,此时它是一个消息的生产者。消费者接收到消息后,最终把本地的持久化消息标志状态为“完成”状态。说到这里,我们应该可以理解到使用“正反向消息机制”确保了消息队列可靠事件投递。当然,补偿机制也是必不可少的。定时任务会从数据库扫描在一定时间内未完成的消息并重新投递。 来源:云原生后端社区

Atom 2020-04-25 14:39:03 0 浏览量 回答数 0

消息队列 RocketMQ 9.9元包月起

消息队列 RocketMQ 9.9元包月起,另含2000万次API 免费调用额度

回答

消息队列发生消息后,可能消费者宕机而无法消费。绝大多数消息中间件对于这种情况,例如 RabbitMQ、RocketMQ 等引入了 ACK 机制。注意的是,默认的情况下,采用自动应答,这种方式中消息队列会发送消息后立即从消息队列中删除该消息。所以,为了确保消息的可靠投递,我们通过手动 ACK 方式,如果消费者因宕机等原因没有发送 ACK,消息队列会将消息重新发送,保证消息的可靠性。从业务服务处理完相关业务后通过手动 ACK 通知消息队列,消息队列才从消息队列中删除该持久化消息。那么,消息队列如果一直重试失败而无法投递,就会出现消息主动丢弃的情况,我们需要如何解决呢?主业务服务将要发送的消息持久化到本地数据库。从业务服务消费成功后,它也会向消息队列发送一个通知消息,此时它是一个消息的生产者。消费者接收到消息后,最终把本地的持久化消息标志状态为“完成”状态。说到这里,我们应该可以理解到使用“正反向消息机制”确保了消息队列可靠事件投递。当然,补偿机制也是必不可少的。定时任务会从数据库扫描在一定时间内未完成的消息并重新投递。 来源:云原生后端社区

Atom 2020-04-25 15:27:52 0 浏览量 回答数 0

问题

使用消息队列的 10 个理由

小柒2012 2019-12-01 21:20:11 6703 浏览量 回答数 1

回答

MNS配置消息队列 首先用户需要在消息服务配置队列以接收工作流发出的消息。具体操作流程如下:消息服务->队列->选择数据中心->创建队列,界面如下图。 1 新建队列必填的参数包括队列名称和当前地域,其他参数均为可选值,这些参数的意义如下: 消息接收长轮询等待时间:表示轮询等待的时间,也就是针对该队列的所有ReceiveMessage请求在Queue无消息时,都将默认进入到Polling等待状态,在等待期间一直保持无消息,则会返回MessageNotExist;如果在此期间有新的消息进入到Queue中,则会唤醒相应的ReceiveMessage请求进行返回。这里默认值为0秒,即关闭长轮询。 取出消息隐藏时长:表示消息从队列中取出后保持隐藏状态的时间。消息从队列中取出后会被从可取状态(Active)变成隐藏状态(Inactive)后,这个时间一到,消息会从隐藏恢复成Active可取状态。这里默认值为30秒。 消息最大长度:限定允许发送到该队列的消息体的最大长度,默认值为64KB,建议这里不要设置太小,因为工作流发送消息体内容较多,如果设置较小可能会导致无法接收到消息。 消息存活时间: 表示消息在本队列中最长的存活时间,从发送到该队列开始经过此参数指定的时间后,不论消息是否被取出过都将被删除,目前默认值为4天。 消息延时:表示消息可供消费的延迟时间,发送消息到本队列的所有消息默认将以本参数指定的秒数延后可被消费,默认值为0秒。 开启logging:表示将该队列中的日志推送到OSS或者SLS中。这里需要在日志管理中配置,配置方法请参考【推送日志到OSS】和【推送日志到LogService】,默认为不开启状态。 2.2 工作流配置消息模式 用户接下来需要将工作流与消息服务中的该队列相关联,在编辑工作流的输入节点时即可设置消息队列,如下图。用户设置消息类别为队列,队列名称选择之前我们设置的名称即关联完成。 2 2.3 MNS队列接收示例代码 上述流程配置完成后即执行工作流并通过MNS队列获取其中的消息。获取MNS队列中的消息可以通过MNS的API/SDK方式获取。这里以Java SDK的使用作为示例进行演示。 首先需要获取MNS相关信息,主要包括:AccessKeyId、AccessKeySecret、MNSEndpoint和队列名称。AccessKeyId和AccessKeySecret获取方法请登陆阿里云管理控制台,在下图中的按钮中获取。 3 MNS队列的名称即是我们前述创建的队列的名称,可以在MNS控制台中的队列列表中查看。而MNSEndpoint表示连接该队列的地址,可以通过MNS控制台中的“获取Endpoint”按钮获取得到,如下图中可以查看到每个账号在每个数据中心对应三个MNSEndpoint,分别是公网地址、私网地址和VPC地址。公网地址即是在有公网IP的服务器上均可使用,私网地址是指同一数据中心的阿里云经典网络的云服务器ECS上连接MNS可以使用的地址,而VPC地址即是同一数据中心的阿里云VPC网络的云服务器ECS的内网连接地址。 4 接下来即是构建Java测试环境,这里我们采用maven方式构建project。下面即是我们添加的依赖项和示例代码。 <dependency> <groupId>com.aliyun.mns</groupId> <artifactId>aliyun-sdk-mns</artifactId> <version>1.1.5</version> </dependency> public class ConsumerDemo { public static void main(String[] args) { CloudAccount account = new CloudAccount("YourAccessId", "YourAccessKey", "MNSEndpoint"); MNSClient client = account.getMNSClient(); // 在程序中,CloudAccount以及MNSClient单例实现即可,多线程安全 try{ CloudQueue queue = client.getQueueRef("TestQueue"); Message popMsg = queue.popMessage(); if (popMsg != null){ System.out.println("message handle: " + popMsg.getReceiptHandle()); System.out.println("message body: " + popMsg.getMessageBodyAsString()); System.out.println("message id: " + popMsg.getMessageId()); System.out.println("message dequeue count:" + popMsg.getDequeueCount()); //删除已经取出消费的消息 queue.deleteMessage(popMsg.getReceiptHandle()); System.out.println("delete message successfully.\n"); } else{ System.out.println("message not exist in TestQueue.\n"); } } catch (ClientException ce) { System.out.println("Something wrong with the network connection between client and MNS service." + "Please check your network and DNS availablity."); ce.printStackTrace(); } catch (ServiceException se) { se.printStackTrace(); logger.error("MNS exception requestId:" + se.getRequestId(), se); if (se.getErrorCode() != null) { if (se.getErrorCode().equals("QueueNotExist")) { System.out.println("Queue is not exist.Please create before use"); } else if (se.getErrorCode().equals("TimeExpired")) { System.out.println("The request is time expired. Please check your local machine timeclock"); } /* you can get more MNS service error code from following link: https://help.aliyun.com/document_detail/mns/api_reference/error_code/error_code.html */ } } catch (Exception e) { System.out.println("Unknown exception happened!"); e.printStackTrace(); } client.close(); } } 3. 注意事项 工作流需要配置同一数据中心的消息队列,不支持配置跨地域的消息队列。 在队列中消费消息后需要调用deleteMessage方法删除该消息,否则会导致应用端重复消费消息。

保持可爱mmm 2020-03-30 11:56:56 0 浏览量 回答数 0

问题

【精品问答】消息队列 RocketMQ 版

montos 2020-04-08 12:31:53 4 浏览量 回答数 1

回答

在线等###### 个人浅见,仅供参考 数据的过程:web网页->网页后台 ->mina客户端->mina服务端-发送消息到c++客户端 ->返回消息到mina服务端->mina客户端->网页后台->网页 如果C++那边数据处理得很快,数据是同步的还好,如果是异步的(不知道他们什么时候才返回消息数据),或许只能用websocket或者一些轮询机制来处理了 ######警察在监控中心(C++开发的监控平台软件)收到javaWeb发送过来的消息。而这个消息是由javaWeb的手机客户端触发的######数据的过程应该是:手机APP->javaWeb ->mina服务端->发送消息到c++客户端(mina的客户端) ->返回消息到mina服务端->JavaWeb-->手机端 其中我想把mina服务端写到javaWeb后台的项目里跟随Tomcat一起启动######继续等######等不到啊######苦等###### 为什么非要用mina呢,按您的需求,可以用一个消息中间件来处理,比如,activemq web网页->网页后台 ->activemq消息队列->c++客户端(监听消息队列,收到消息处理) c++客户端返回消息到队列->activemq队列->网页后台(监听消息队列收到处理)->web页面

爱吃鱼的程序员 2020-06-05 13:05:19 0 浏览量 回答数 0

问题

消息服务的队列如何使用?

轩墨 2019-12-01 22:08:37 1080 浏览量 回答数 0

回答

启动一个写文件的进程,其它进程向他发消息。。######多个进程写一个文件推荐代理模式,由代理进程负责数据的写入,其他进程只负责将数据发给代理进程######谢谢两位大哥的指导,明白要怎么做了。 ######上面两位的思路很正确。把写文件的功能独立出来,由专门的进程处理。还可以设定一个专门的队列进程,这个进程根据一定规则维护一个队列,其它进程只要把数据交给这个进程就可以了。队列文件进程自己判断应该把数据放到队列哪个位置。写进程只需要去队列头取数据就是。 启动一个写文件的进程,其它进程向他发消息。。######多个进程写一个文件推荐代理模式,由代理进程负责数据的写入,其他进程只负责将数据发给代理进程######谢谢两位大哥的指导,明白要怎么做了。 ######上面两位的思路很正确。把写文件的功能独立出来,由专门的进程处理。还可以设定一个专门的队列进程,这个进程根据一定规则维护一个队列,其它进程只要把数据交给这个进程就可以了。队列文件进程自己判断应该把数据放到队列哪个位置。写进程只需要去队列头取数据就是。

kun坤 2020-06-09 11:45:52 0 浏览量 回答数 0

回答

哈哈,哥哥,你就用消费者一直接受数据,判断是否你想要的数据,记者别session.commit();这样就满足你的需求了。这样队列中的数据还都存在 ######回复 @bugeasy : 也就是说有多个线程都会询问服务器某条消息是否存在######回复 @张浩春 : “有多个线程都需要判断,”这句话不明白######回复 @bugeasy : 比如我现在有个队列存放已经被消费的消息(是另外一个队列中被消费的消息),那么这里面越来越多,有多个线程都需要判断,这样不行吧?######回复 @张浩春 : 订阅模式,订阅你感兴趣的信息啊######我去,,,,这样太可怕了啊,,我一样接收消息太多了啊,消息慢慢积累起来,几千万都有可能额######消息是可以订阅的######额,,订阅不满足要求啊,比如,我想确定:A这条消息在队列中是否存在,我想把A发给服务器,让他确认下消息是否存在,返回一个标志,这样能满足么?######activeMQ没有这样的功能,而且就算要获取存进去的消息,也要按队列一个一个读取出来,棘手的功能。######回复 @张浩春 : 看你实际情况了,如果这个队列高并发读取,自己写肯定不靠谱,量小的话,随便搞个小数据库就行了,不过redis有这样的功能:http://redis.cn/commands/sismember.html,我只随便说说,不要太认真。######。。。蛋疼啊,难道得自己去写这样的组件么?

爱吃鱼的程序员 2020-06-04 16:23:13 0 浏览量 回答数 0

问题

如何使用python sdk中的sample代码?

轩墨 2019-12-01 22:08:52 1164 浏览量 回答数 0

回答

两种类型的队列: 1、同步队列,当一个队列的成员都聚齐时,这个队列才可用,否则一直等待所有成员到达。 2、队列按照 FIFO 方式进行入队和出队操作。 第一类,在约定目录下创建临时目录节点,监听节点数目是否是我们要求的数目。 第二类,和分布式锁服务中的控制时序场景基本原理一致,入列有编号,出列按编号。在特定的目录下创建PERSISTENT_SEQUENTIAL节点,创建成功时Watcher通知等待的队列,队列删除序列号最小的节点用以消费。此场景下Zookeeper的znode用于消息存储,znode存储的数据就是消息队列中的消息内容,SEQUENTIAL序列号就是消息的编号,按序取出即可。由于创建的节点是持久化的,所以不必担心队列消息的丢失问题。

montos 2020-05-24 11:27:51 0 浏览量 回答数 0

问题

消息服务的Queue如何操作?

轩墨 2019-12-01 22:10:37 1289 浏览量 回答数 0

问题

消息服务如何查看日志LogService?

轩墨 2019-12-01 22:08:22 1250 浏览量 回答数 0

问题

【精品问答】消息队列 AMQP 版

montos 2020-04-08 12:22:31 3 浏览量 回答数 1

回答

有个ack的###### 引用来自“hanzhankang”的答案 有个ack的 ack和noack是consume的确认,就是消费者取了队列中的信息后,确认后,消息才从队列中删除 我问的是publish的确认,发布端的确认 ###### RabbitMQ在发布端支持transaction和confirm两种模式来确认是否发布成功,具体见https://www.rabbitmq.com/confirms.html 但是,成功是指队列收到消息(或队列已持久化消息),而并不是consumer已经读取了消息。 如果需要consumer确认读取到消息,不妨看看rabbitmq tutorials的第六个例子——RPC ###### 事务确认是一种方式,但是还有一种方式,是Publist confirm 我知道在C的API里,知道调用amqp_confirm_select可以打开确认,但是没有找到怎样接收的方法 ###### 可能需要自己处理basic.ack消息###### 引用来自“hncscwc”的答案 可能需要自己处理basic.ack消息 就是不知道调用哪个API接口来处理,看JAVA的API,有ConfirmListen监听回调函数,但是C接口中没看到 ######参阅  http://my.oschina.net/moooofly/blog/142095?p=1#rpl_279025130 中的评论

kun坤 2020-06-06 23:44:14 0 浏览量 回答数 0

问题

消息服务的事务消息是什么?

轩墨 2019-12-01 22:08:29 1151 浏览量 回答数 0

问题

消息队列服务MQS使用分享

wiwi 2019-12-01 21:08:46 12995 浏览量 回答数 4

问题

【阿里云产品公测】MQS使用体会和建议

dongcc 2019-12-01 21:13:38 14959 浏览量 回答数 4

回答

事件通知是一种监控手段,可以自动发送消息至云监控或消息服务,帮助您及时掌握伸缩组的动态,进一步实现自动化管理。 事件通知方式 事件通知支持发送消息到云监控系统事件、MNS主题或MNS队列。 云监控提供了各类云产品系统事件的统计和查询入口,包括弹性伸缩,您可以通过云监控及时了解伸缩组的状态。如需详细了解云监控的事件监控功能,请参见云产品系统事件监控。 MNS主题和MNS队列是阿里云消息服务(Message Service)的两种服务模型。消息服务是一种分布式消息服务,能够帮助您在分布式组件之间自由的传递数据、通知消息,构建松耦合系统。如需详细了解MNS主题和MNS队列的特性,请参见消息服务概述。 说明 消息服务涉及计费,详情请参见消息服务定价。 队列模型支持一对一发送和接收消息,旨在提供高可靠高并发的一对一消费能力,队列中的每一条消息都只能够被某一个消费者进行消费。 主题模型支持一对多发布和订阅消息,旨在提供一对多的发布订阅以及消息通知功能,您可以通过多种推送方式发布消息。 下面给出三种事件通知方式的示例,具体参数信息,请参见创建事件通知。 云监控事件通知示例 您创建了一个事件通知,通知方式为云监控,事件通知类型为成功的弹性扩张活动、弹性伸缩组扩容伸缩活动开始。在伸缩组成功执行弹性扩张活动后,云监控会收到事件通知并显示事件。下图为成功执行弹性扩张活动的效果,显示了弹性伸缩扩容伸缩活动开始和弹性伸缩扩容活动成功的事件。 事件通知概述-云监控事件通知示例 除在云监控控制台查看伸缩组的动态外,您还可以创建报警规则,通过短信、邮箱等方式批量通知其它联系人,提高运维效率。 MNS主题事件通知示例 您创建了一个事件通知,通知方式为MNS主题,事件通知类型为成功的弹性收缩活动、弹性伸缩组缩容伸缩活动开始。在伸缩组成功执行弹性收缩活动后,MNS主题会收到事件通知并分发给订阅者。下图为成功执行弹性收缩活动的效果,MNS主题的消息数增加,您可以前往订阅者查看消息详情。 MNS主题不支持直接消费消息,您可以通过MNS队列、http、邮箱等方式订阅MNS主题,在MNS主题收到消息后,会自动推送到这些订阅者,达到统一分发、各自消费的效果,实现高效的自动化管理。 事件通知概述-MNS主题事件通知示例 MNS队列事件通知示例 您创建了一个事件通知,通知方式为MNS队列,事件通知类型为失败的弹性扩张活动、弹性伸缩组扩容伸缩活动开始。在伸缩组执行弹性扩张活动失败后,MNS队列会收到事件通知并根据配置维护消息以供您消费。下图为执行弹性扩张活动失败的效果,MNS队列内的活跃消息数增加。 您可以自由消费、延迟、激活或者删除消息,灵活地通过事件通知实现自动化管理。 事件通知概述-MNS队列事件通知示例

1934890530796658 2020-03-22 00:59:28 0 浏览量 回答数 0

回答

设备重复收到消息,如何去重? 由于QoS=1的机制是保证最少收到一次消息,所以可能会出现重复收到消息的情况,但重复消息的消息ID是相同的。设备端可以根据消息ID去重。物联网平台也会尽量减少QoS=1时的消息重复发送。 #物联网平台是否会保存消息? 消息一发送到Topic后,物联网平台就会立即将消息转发给订阅了该Topic的设备。 QoS=0时,物联网平台不保存消息。 QoS=1时,消息会保存7天。 服务器端如何获取设备消息? 服务器端可通过以下两种方式获取设备消息。 服务端订阅:使用物联网平台的服务端订阅功能,订阅一个或多个消息类型。物联网平台根据您设置的订阅,将产品下所有设备的该类型消息流转至您的服务器。支持以下两种方式的服务端订阅。 参见AMQP服务端订阅及相关文档,设置使用AMQP SDK接收物联网平台流转的设备消息。参见MNS服务端订阅,设置使用MNS SDK接收物联网平台流转到MNS队列的设备消息。 云产品流转:使用规则引擎的云产品流转功能,通过数据流转规则将指定设备数据流转到消息服务(MNS)的主题或消息队列(RocketMQ)的队列中。服务器通过MNS或RocketMQ SDK接收消息。具体设置操作,请参见云产品流转概述。 配置了MNS服务端订阅。但在控制台上发送消息,MNS的队列中并没有收到该消息,为什么? 在控制台发送的消息和调用云端API发送的消息均属于服务端发送的消息,不会流转到MNS队列,只有设备发出的消息(设备上报的消息、设备上下线的状态通知等)才会流转到MNS队列里。 如何判断MNS服务端收到的消息是来自哪个Topic? 发送到MNS队列中的消息格式:{ “messageid”:”12345”, “messagetype”:”status/upload”, “topic”:”null/topic”, “payload”: {data}, “timestamp”: 1469564576}中有Topic字段。您可根据Topic字段来判断。

剑曼红尘 2020-03-05 09:57:14 0 浏览量 回答数 0

问题

Kafka、RabbitMQ、RocketMQ 消息中间件的对比 | 消息发送性能篇

琴瑟 2019-12-01 21:36:29 3527 浏览量 回答数 0

问题

消息服务是什么?

轩墨 2019-12-01 22:06:25 1480 浏览量 回答数 0

问题

如果让你写一个消息队列,该如何进行架构设计?【Java问答学堂】25期

剑曼红尘 2020-05-25 22:52:15 19 浏览量 回答数 1

问题

消息队列有什么优点和缺点?【Java问答学堂】18期

剑曼红尘 2020-05-14 11:26:31 0 浏览量 回答数 1

问题

短信推送常见问题有哪些?

轩墨 2019-12-01 20:55:03 1003 浏览量 回答数 0

问题

【精品问答】微消息队列 MQTT 版

montos 2020-04-08 12:20:13 3 浏览量 回答数 1

问题

消息服务有什么优势?

轩墨 2019-12-01 22:06:29 1097 浏览量 回答数 0

问题

API如何创建队列?

轩墨 2019-12-01 22:10:02 1084 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播