标签: azure-servicebus-topics

Azure程序集引用ServiceBusTriggerAttribute的内容是什么?

"如何使用Azure的服务总线与WebJobs SDK"天青文档本文介绍的使用[ServiceBusTrigger]属性,用于集成WebJob和Azure的服务总线主题的消息.但是,在Visual Studio 2015中使用默认的Azure WebJobs项目模板,对ServiceBusTrigger的引用会导致以下编译时异常:

找不到类型或命名空间名称'ServiceBusTriggger'(您是否缺少using指令或程序集引用?)

手头的问题是Nuget的Microsoft.Azure.WebJobs包不包含ServiceBusTriggerAttribute类.

是否有可以添加的Nuget包,其中包含这个非常需要的类?

我尝试过包含Nuget的WindowsAzure.ServiceBus包,但它也不包含它.

如果没有ServiceBusTriggerAttribute,我将无法连接此WebJob以使用来自Azure Service Bus主题的消息.任何帮助将不胜感激!谢谢!

c# azure azure-webjobs azure-servicebus-topics

4
推荐指数
2
解决办法
4346
查看次数

SQLFilter基于Azure Service Bus订阅中的系统属性

我正在设置主题/订阅服务,需要帮助我的SQLFilter语法,以便我可以访问BrokeredMessage属性,特别是To属性.SQL筛选器访问邮件系统属性的正确语法是什么?

我有一个使用本教程的工作示例,我可以根据需要发送和接收我的主题/订阅:https://azure.microsoft.com/en-us/documentation/articles/service-bus-queues-topics-subscriptions/

但是,现在我想根据BrokeredMessage的To属性为每个订阅设置SQL过滤器.我所遵循的教程提到可以"创建订阅时,您可以提供对消息属性进行操作的过滤器表达式,包括系统属性(例如,Label)和自定义应用程序属性(例如,StoreName) .)"

如果我设置自定义属性,例如StoreName,如下所示:

message.Properties.Add("StoreName", "TestMe");
Run Code Online (Sandbox Code Playgroud)

并使用SQL过滤器设置订阅,如下所示:

namespaceManager.CreateSubscription("MyNSTestTopic", "TestSubscription", new SqlFilter("StoreName = 'TestMe'"));
Run Code Online (Sandbox Code Playgroud)

订阅按预期过滤.但是,如果我尝试使用文章中描述的BrokeredMessage对象To属性(或标签),我一直无法使其工作.我尝试了以下SQL过滤器没有运气.访问消息的系统属性的正确语法是什么?

BrokeredMessage message = new BrokeredMessage();
message.To = "TestMe";

namespaceManager.CreateSubscription("MyNSTestTopic", "TestSubscription", new SqlFilter("To = 'TestMe'"));
namespaceManager.CreateSubscription("MyNSTestTopic", "TestSubscription", new SqlFilter("Message.To= 'TestMe'"));
namespaceManager.CreateSubscription("MyNSTestTopic", "TestSubscription", new SqlFilter("MessageTo= 'TestMe'"));
namespaceManager.CreateSubscription("MyNSTestTopic", "TestSubscription", new SqlFilter("messageto= 'TestMe'"));
Run Code Online (Sandbox Code Playgroud)

c# azure azureservicebus azure-servicebus-topics

4
推荐指数
1
解决办法
4592
查看次数

Azure Service TopicClient线程是否安全且可重用?

我们使用Azure SDK将消息发布到Service Bus.在Web API调用中,我们为每个传入请求重复执行这些任务

MessagingFactory factory = MessagingFactory.CreateFromConnectionString(conStr);
factory.RetryPolicy = new RetryExponential(TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(2), 3);
var namespaceManager = NamespaceManager.CreateFromConnectionString(conStr);

TopicClient topicClient = factory.CreateTopicClient(topicName);
Run Code Online (Sandbox Code Playgroud)

topicClient可以转换为Singleton并在多个线程中重用吗?

multithreading azure azureservicebus azure-servicebus-topics

4
推荐指数
1
解决办法
944
查看次数

如何指定要与 MassTransit 一起使用的 Azure 服务总线主题

我尝试使用 MassTransit 将消息发布到eventsAzure 服务总线中命名的主题。我在配置 MassTransit 以使用我预定义的主题时遇到问题events,而是为消息类型创建了一个由命名空间/类名命名的新主题。所以我想知道如何指定使用哪个主题而不是创建一个新主题。

这是我测试过的代码:

using System;
using System.Threading.Tasks;
using MassTransit;
using MassTransit.AzureServiceBusTransport;
using Microsoft.ServiceBus;

namespace PublisherNameSpace
{
    public class Publisher
    {
        public static async Task PublishMessage()
        {
            var topic = "events";
            var bus = Bus.Factory.CreateUsingAzureServiceBus(
                cfg =>
                {
                    var azureServiceBusHost = cfg.Host(new Uri("sb://<busname>.servicebus.windows.net"), host =>
                    {
                        host.OperationTimeout = TimeSpan.FromSeconds(5);
                        host.TokenProvider =
                            TokenProvider.CreateSharedAccessSignatureTokenProvider(
                                "RootManageSharedAccessKey",
                                "<key>"
                            );
                    });

                    cfg.ReceiveEndpoint(azureServiceBusHost, topic, e =>
                    {
                        e.Consumer<TestConsumer>();
                    });
                });

            await bus.Publish<TestConsumer>(new TestMessage { TestString = "testing" });
        } …
Run Code Online (Sandbox Code Playgroud)

c# masstransit azureservicebus azure-servicebus-topics

4
推荐指数
2
解决办法
2442
查看次数

与队列相比,只有一个订阅的 Azure 服务总线主题有哪些缺点

我目前正在研究Azure 服务总线,但我不明白队列与具有单个订阅的主题相比的真正好处。我发现在这两种情况下都可以创建不同的应用程序来侦听单个队列(或订阅)以更快地处理消息。
那么,如果使用主题可以以同样的方式工作,那么使用天蓝色服务总线队列的真正便利是什么?更好的性能?这个更便宜?

azureservicebus azure-servicebus-queues azure-servicebus-topics

4
推荐指数
1
解决办法
3546
查看次数

注册多个具有相同接口但构造函数参数值不同的单例

我陷入困境,需要一些建议或解决方案。

使用 ASP.NET Core 3.1 的 Web API

启动.cs

services.AddSingleton<ITopicClient>(s => new TopicClient({connectionstring},{topic}));
Run Code Online (Sandbox Code Playgroud)

TopicRepository.cs

 public class TopicRepository : ITopicRepository
 {
        private readonly ITopicClient _topicClient1;
       private readonly ITopicClient _topicClient2;

        public TopicRepository (ITopicClient topicClient1, ITopicClient topicClient2)
        {         
            _topicClient1 = topicClient1;
            _topicClient2 = topicClient2;
        }
        public async Task<Response> SendToTopicAsync(string message, string topic)
        {
           if( topic == "topic1")
           await _topicClient1.send(message);
           else if (topic == "topic2")
           await _topicClient2.send(message);
        }
}
Run Code Online (Sandbox Code Playgroud)

共享库中的 TopicClient.cs

        public TopicClient(string serviceBusConnectionString, string topicName)
        {
           _topicClient = new TopicClient(_serviceBusConnectionString,topicName);
        }
Run Code Online (Sandbox Code Playgroud)

我需要向不同的主题发送消息。我想在startup.cs中注册具有不同主题名称的服务。我想重用 …

c# dependency-injection azure-servicebus-topics .net-core-3.1

4
推荐指数
1
解决办法
4527
查看次数

为什么在 azure 门户上禁用了“创建主题”选项?

有人可以帮助我理解为什么 Azure 门户上禁用了“创建主题”选项吗?我正在免费试用,可以正确创建/使用队列。现在我需要使用主题/订阅但无法创建主题。请参阅下面的屏幕截图。

在此处输入图片说明

azure azure-servicebus-topics

3
推荐指数
2
解决办法
754
查看次数

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

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

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

azureservicebus apache-kafka azure-servicebus-topics

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

服务总线转发到另一个服务总线

我需要创建一个接收来自不同 Azure 服务总线主题的消息的体系结构。这些主题位于同一服务总线命名空间中。为此,我可以为每个主题创建一个订阅。如果需要,该架构应该能够开始接收来自更多主题的消息。该架构需要有自己的服务总线命名空间来使用队列或主题接收消息。

我不想为每个主题/订阅创建一个 Azure 函数,而是希望能够仅实现一个 Azure 函数来接收来自不同主题的所有消息。

举个例子:

我有一个服务总线命名空间“ ServiceBusNamespace1

ServiceBusNamespace1包含以下主题和订阅:

  1. 主题 1 -> 子主题 1
  2. 主题2 -> 子2
  3. 主题3 -> 子3

我有另一个服务总线命名空间“ ServiceBusNamespace2

ServiceBusNamespace2包含以下主题和订阅:

  1. 主题 4 -> 子主题 4

我需要 topic4 接收来自 topic1 和 topic2 的消息。

如果 topic4 在 ServiceBusNamespace1 中,我可以使用“自动转发”选项来执行此操作。但我需要 topic4 位于另一个服务总线命名空间中。

有什么方法可以实现这一点吗?

我尝试使用服务总线事件订阅,但无法使用事件网格的自定义架构。

servicebus azure azure-servicebus-topics

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

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