In college we stu开发者_开发问答died IBM's MQ Series which was middleware that you could send messages to that would be persisted in a Queue. MQ Series had what was called Guaranteed Message delivery, meaning that if you got the message sent to the Queue, the Queue would be persisted even if the server containing the queue message was turned off and turned back on again.
Does Microsoft have a similar technology that works with C# and Sharepoint?
Yes, it is called MSMQ (Microsoft Message Queuing).
Here is the official Microsoft FAQ for MSMQ.
If you'd like to go open-source, have a look at ActiveMQ from Apache Foundation.
ActiveMQ is cross platform. Libs are available for C# and other languages: http://activemq.apache.org/cross-language-clients.html
Since you're talking about Sharepoint, it implies your back end is SQL Server. SQL Server has it's own reliable messaging technology, namely Service Broker. The main advantage over MSMQ is that is completely integrated into the database engine, which means one single product to deploy and maintain, consistent backup/restore, integration into the SQL Server based high-availability/disaster recoverability (mirroring, SQL clustering), language/API integration with the database (you can run SELECT over your queues!) etc. Because it eliminates the need to engage in two-phase-commit DTC between MSMQ and your database to precess each message, it offers Significantly higher throughput. Also the scalability and capabilities are significantly higher (MSMQ has a 4GB queue limit, SSB has 2GB message limit and queue limit is the (total) disks capacity, basically database limits). The main drawback is lack of a client side programming API like WCF MSMQ channel. With SSB you have to program T-SQL using verbs like SEND
and RECEIVE
.
精彩评论