标签: azureservicebus

查看 Azure 服务总线死信的应用程序

我一直在网上和 GitHub 上寻找 Azure 服务总线的现成死信查看器。这是为了让我们的 DevOps 团队能够监控、查看和报告我们总线上每个主题的每个订阅的任何死信。

我认为这将是分发给 DevOps 的常见应用程序,因此相信已经有一个应用程序。因此,在我开始使用我自己的 Windows 窗体应用程序之前,是否有我可能错过的现有查看器?

azure dead-letter azureservicebus

3
推荐指数
1
解决办法
1756
查看次数

超出了 Azure 服务总线 SDK 的 SendBatch() 方法上的链接异常当前允许的限制(262144 字节)

我们使用 Azure 服务总线 SDK 3.1.7 的 SendBatch() 方法将数据发送到 Azure 事件中心。以下是代码片段:

foreach (var packet in transformedPackets)
        {
            EventData eventData = new EventData(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(packet, settings)));;
            try
            {
                eventData.Properties.Add(AppConstants.TenantDeploymentUniqueIdKey, tenantDeploymentUniqueId);
                eventData.Properties.Add(AppConstants.DataTypeKey, DataTypeKey);
                byteCount += eventData.SerializedSizeInBytes;                   
                if (byteCount > MaxBatchSize)
                {
                    sender.SendBatch(transformedMessages);
                    transformedMessages.Clear();
                    byteCount = eventData.SerializedSizeInBytes;
                }
                transformedMessages.Add(eventData);
            }
            catch (System.Exception)
            {
                eventData.Dispose();
                throw;
            }

        }
Run Code Online (Sandbox Code Playgroud)

在将事件数据添加到批处理之前检查 SerializedSizeInBytes 属性后的事件(最大允许限制:256 KB),我们收到以下异常:

接收到的消息(delivery-id:0,大小:262279 字节)超过了当前链路上允许的限制(262144 字节)。在 Microsoft.ServiceBus.Common.ExceptionDispatcher.Throw(Exception exception) 在 Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result) 在 Microsoft.ServiceBus.Common.AsyncResult 1.End(IAsyncResult asyncResult) at Microsoft.ServiceBus.Messaging.MessageSender.RetrySenderEventDataAsyncResult.End(IAsyncResult r) at Microsoft.ServiceBus.Messaging.MessageSender.EndSendEventData(IAsyncResult result) at Microsoft.ServiceBus.Messaging.EventHubSender.SendBatch(IEnumerable1 eventDataList)

azureservicebus azure-eventhub

3
推荐指数
1
解决办法
4580
查看次数

在处理消息时正确处理 Azure 服务总线客户端

使用时,async/await我关心的是在处理消息的过程中处理客户端。考虑以下:

  1. 初始化队列客户端queueClient并将对它的引用存储在类的全局范围内

  2. 队列客户端处理一条消息并调用一些应用程序代码来处理它,这可能最终会做一些异步数据库工作或调用远程 api。

  3. 考虑应用程序是一个 Windows 服务,它的CloseAsync方法是在服务应该关闭时发出信号。在这个方法中,我调用queueClient.CloseAsync()

  4. 步骤 2 中正在完成的工作完成并转到调用message.Complete(). 在这一点上,我假设 queueClient 已关闭,消息将被视为失败。

确保队列客户端不再处理消息并等待关闭直到任何当前处理的消息完成的最佳实践是什么?

c# azure azureservicebus

3
推荐指数
1
解决办法
4772
查看次数

标准定价层的 Azure 服务总线命名空间中缺少主题部分

我有 2 个服务总线命名空间,都位于标准层。

两者中较旧的仅显示“队列”选项,并且创建主题的选项被禁用,但是命名空间中存在现有主题,并且这些选项都可以正常工作。 在此输入图像描述

今天创建的新版本启用了主题。

它们都在门户中显示为标准层:

命名空间缺失主题:

在此输入图像描述

具有主题的命名空间:

在此输入图像描述

如果我尝试将较旧的主题更改为基本主题,则会由于现有主题而失败。我的理论是,这是门户中的一个错误,虽然底层的 Azure 基础设施和门户的扩展部分知道这是一个标准层,但它的某些部分无法识别这一点,因此缺少主题。

还应该注意的是,如果我生成自动化脚本,它希望将此命名空间创建为基本 SKU,而将另一个命名空间创建为标准。可能在过去的某个时候(很多年前),这是一个基本层。

所以我的问题是,是否还有其他我可以检查的旧名称空间可能不正确,我可以解决,或者这是门户中的错误?

azure azureservicebus azureportal

3
推荐指数
1
解决办法
2398
查看次数

消息正文上的 Azure 服务总线订阅筛选器

我想根据消息的内容创建订阅。这可能吗?我试图摆脱必须添加自定义属性。

谢谢

filter azure subscription azureservicebus

3
推荐指数
1
解决办法
545
查看次数

使用 BodyType - String 由旧库 (Microsoft.ServiceBus.Messaging) 读取的新库 (Microsoft.Azure.ServiceBus) 发送消息

我有一个前段时间写的客户端,它使用旧库并GetBody<string>()在接收消息时调用读取正文。

现在我有了新客户端Microsoft.Azure.ServiceBus(发送消息),据我所知它总是使用Stream.

所以旧客户端只是因为它期望字符串主体类型而崩溃。我发现了很多关于相反场景(新读者,旧作者)的信息,但无法弄清楚如何让新客户端以所需格式发送数据。

相关链接:

  1. 一个stackoverflow答案
  2. 互操作扩展做相反的事情(在新客户端阅读旧消息)

.net servicebus azure azureservicebus

3
推荐指数
1
解决办法
693
查看次数

从 Azure 服务上的服务总线处理程序接收事件网格

我在事件网格上发送事件。我可以看到他们到达了蔚蓝的仪表板

            NomeEmailChange yay = new NomeEmailChange
            {
                Nome = "cesco",
                Email = "cesco"
            };

            var primaryTopicKey = _config["EventGridConfig:AcessKey"];
            var primaryTopic = _config["EventGridConfig:Endpoint"];

            var primaryTopicHostname = new Uri(primaryTopic).Host;

            var topicCredentials = new TopicCredentials(primaryTopicKey);
            var client = new EventGridClient(topicCredentials);

            var id = Guid.NewGuid().ToString();
            var hey = new List<EventGridEvent>
            {
                new EventGridEvent()
                {
                    Id = id,
                    EventType = "cesco-cesco",
                    Data = (yay),
                    EventTime = DateTime.Now,
                    Subject = "MS_Clientes",
                    DataVersion = "1.0",
                }
            };
            ;
            client.PublishEventsAsync(primaryTopicHostname, hey);
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个事件网格订阅。我可以确认到达事件网格订阅的事件网格消息。

在另一个项目中,我订阅了如下所示的服务总线。它适用于使用直接发送到总线的消息。

        public static IServiceCollection AddBus(this IServiceCollection …
Run Code Online (Sandbox Code Playgroud)

.net azure azureservicebus azure-eventgrid

3
推荐指数
1
解决办法
592
查看次数

何时不在 Azure Functions ServiceBus 绑定中对 IAsyncCollector 调用 FlushAsync

我有一系列 Azure Function 应用程序,所有应用程序都使用以下命令将消息输出到 Azure 服务总线IAsyncCollector<Message>

public async Task Run([ServiceBus(...)] IAsyncCollector<Message> messages)
{
    ...
    await messages.AddAsync(msg);
}
Run Code Online (Sandbox Code Playgroud)

我不时记录错误,如下所示:

Microsoft.Azure.WebJobs.Host.FunctionInvocationException: Exception while executing function: Function
 ---> Microsoft.Azure.ServiceBus.ServiceBusTimeoutException: The operation did not complete within the allocated time 00:00:59.9999536 for object message.Reference: ..., 7/13/2020 2:46:24 PM
 ---> System.TimeoutException: The operation did not complete within the allocated time 00:00:59.9999536 for object message.
   at Microsoft.Azure.Amqp.AsyncResult.End[TAsyncResult](IAsyncResult result)
   at Microsoft.Azure.Amqp.SendingAmqpLink.EndSendMessage(IAsyncResult result)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- End of …
Run Code Online (Sandbox Code Playgroud)

azure azureservicebus azure-functions

3
推荐指数
1
解决办法
839
查看次数

Azure 事件网格与服务总线

可以说事件网格只是服务总线的一个子集吗?我发现服务总线可以做事件网格可以做的一切,甚至更多。

azureservicebus azure-eventgrid

3
推荐指数
1
解决办法
3625
查看次数

Azure 服务总线上的 Kafka 表相当于什么?

Kafka 有流和表的概念。流代表事件的发生,而表代表状态。

Azure 资源上是否有对应的实体?查看事件中心、事件网格、Servicebus 队列和主题。似乎无法找到等价物?

azureservicebus apache-kafka azure-servicebus-topics

3
推荐指数
1
解决办法
2174
查看次数