2013-04-02 31 views
5

Tôi đã làm việc với một loạt các Timeout từ TopicClient và tôi nghĩ rằng nó có thể liên quan đến đời sống đối tượng và xử lý.Chủ đề Azure ThreadClient có an toàn không?

Tôi đang sử dụng lớp TopicClient từ Microsoft.ServiceBus.Messaging và đọc này Best Practices Guide bang

Bạn không nên nhà máy đóng tin nhắn hoặc hàng đợi, chủ đề, và các khách hàng đăng ký sau khi bạn gửi một tin nhắn, và sau đó tái tạo chúng khi bạn gửi tin nhắn tiếp theo. Đóng một nhà máy nhắn tin sẽ xóa kết nối với dịch vụ Dịch vụ xe buýt và kết nối mới được thiết lập khi tạo lại nhà máy.

Điều này gây nhầm lẫn cho tôi - tài liệu này không đề cập cụ thể đến TopicClient nhưng tôi giả sử nó được áp dụng. Có lẽ giả định này là không chính xác?

Tôi có thể lưu trữ TopicClient của mình trong thành viên tĩnh để tránh tạo lại kết nối không? Có cách nào tốt hơn để xử lý việc này không? Có một số loại cơ chế kết nối tổng hợp mà tôi nên sử dụng thay thế?

Trả lời

7

documentation indicates rằng tất cả các thành viên tĩnh và cá thể của TopicClient đều an toàn.

"Bất kỳ public static (chung trong Visual Basic) thành viên của loại này là chủ đề an toàn. Thành viên Instance cũng có bảo đảm là chủ đề an toàn."

Tôi đọc báo giá bạn đưa vào vì nó đặc biệt bao gồm TopicClient vì nó nói "hàng đợi, chủ đề và khách hàng đăng ký". Tôi đọc đó là QueueClient, TopicClient và SubscriptionClient.

Đối với các hệ thống con nhắn tin, tôi có xu hướng sử dụng Gateway Pattern có thể được sử dụng để xử lý toàn bộ thời gian của đối tượng cần thiết để làm việc với hệ thống con nhắn tin. Trong trường hợp của bạn, đối tượng Gateway sẽ xử lý toàn bộ thời gian của TopicClient hoặc MessageSender/Receivers.

Tôi sẽ hỏi bạn có thấy các lớp học MessageSenderMessageReceiver chung chung hơn không? Sử dụng các đối tượng chung chung hơn khi gửi có nghĩa là mã khách hàng thực hiện gửi không cần phải biết có gửi đến Chủ đề hay Hàng đợi hay không, nó chỉ có thể gửi đến địa chỉ và không quan tâm.

Các vấn đề liên quan