C# Queue or ServiceBus with no dependencies?

后端 未结 10 482
暗喜
暗喜 2021-01-31 10:54

Is there a product (ideally open source, but not necessary), that would enable a zero dependency deployment? every service bus or queue library I\'ve been able to find has a de

相关标签:
10条回答
  • 2021-01-31 11:11

    If you're happy to be:

    1. Windows specific
    2. Limited to the local domain
    3. Seriously limited in the message size supported
    4. Wrap the underlying win32 calls in P/Invoke
    5. Deal with the polling yourself
    6. Deal with the hacks needed to allow back and forth communication
    7. Deal with the shared config needed to keep the names in sync

    Then a quick wrapper around the windows MailSlot API might be sufficient.

    This simple example is a reasonable basis to start.

    This article has some further information but assumes the use case is via a control (rather than a Component as it should be) as well as some poor WinForms integration so should be considered for incidental reading rather than a basis for any library.

    This article is C++ but is of a higher standard (and a commenter has extended it to support the batching of larger messages into several smaller ones).

    You get 424 bytes (so with .Net 212 chars) you may want to drop to ASCII to double your useful message length if you are talking text.

    Note that despite its simplicity, limitations and lack of features it does provide multicast delivery, something often complex to layer on a point to point protocol yourself.

    0 讨论(0)
  • 2021-01-31 11:14

    Try https://github.com/mcintyre321/PieQ - this is my attempt to write a threadsafe, persistent, zero-config, embedded work queue. It probably needs a little love, but I think it might be the kind of tool you are looking for.

    0 讨论(0)
  • 2021-01-31 11:17

    In a similar vein to ShuggyCoUk's suggestion, you could rig up a queue (or queues) using the Windows built-in ESENT database (comes already installed with Windows). There is a managed code access library (open source): http://www.codeplex.com/ManagedEsent. If you stick with writing / reading CLOBs or BLOBs, it should work just fine. If you want to be really clever, you can use NServiceBus and write (contribute?) ESENT-flavored subscription storage and transports. There are some forays into using ESENT on Ayende's blog as well (you'll have to poke around his SVN repository for the juicy bits).

    0 讨论(0)
  • 2021-01-31 11:18

    I have developed an InMemory JMS library which can be used to in testing JMS applications without really connecting to JMS providers/server (Think of hsqldb). You don't have to deal with connection or protocol or anything, all you need to do is to send and receive messages.

    https://github.com/Dhana-Krishnasamy/InMemoryJMS

    0 讨论(0)
  • 2021-01-31 11:20

    We moved our projects from MSMQ to ActiveMQ. its really better :)
    ActiveMQ is open source queue ,based on Apache web server.
    We used him in production on high frequently data workflow, where msmq have a lot of problem (we work with msmq a year)
    The csharp implementation is nms

    0 讨论(0)
  • 2021-01-31 11:22

    This ayende post provides and interesting comparison of three service buses. We use NServiceBus and think if it's not clear that Udi Dahan would respond to how you'd plug in non-dependent queue.

    We work using MSMQ happily but there are other options and in theory it should be open to practically anything, given that you may lose some reliability and durability depending on your choice.

    0 讨论(0)
提交回复
热议问题