Skip to content

edgarsanchez/FsRabbitMQ-Tutorials

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

FsRabbitMQ-Tutorials

F# implementation of RabbitMQ tutorials, specifically based on the C# samples available in github. Now we have all the Getting Started tutorials from the RabbitMQ site implemented:

  • The "Hello World!" tutorial
    • The src/Send folder contains the Sender console app
    • The src/Receive folder contains the Receive console app
  • The Work queues tutorial
    • The src/NewTask folder contains a console app that publishes a message to the task_queue
    • The src/Worker folder contains a console app that subscribes to the task_queue
  • The Publish/Subscribe tutorial
    • The src/EmitLog folder contains a console app that publishes a message to the logs exchange
    • The src/ReceiveLogs folder contains a console app that subscribes to the exchange with a temporary queue (many ReceiveLogs apps can be run simultaneously, each one will have its own temporary queue)
  • The Routing tutorial
    • The src/EmitLogDirect folder contains a console app that publishes a message to the direct_logs exchange using a severity level as routing key, e.g. dotnet run warning "This is a warning!"
    • The src/ReceiveLogsDirect folder contains a console app that subscribes to the exchange with a temporary queue and one or more routing keys, e.g. dotnet run warning (several ReceiveLogsDirect apps can be run simultaneously, each waiting for specific routing keys in a temporary queue)
  • The Topics tutorial
    • The src/EmitLogTopic folder contains a console app that publishes a message to the topic_logs exchange using a topic as routing key, e.g. dotnet run kern.critical "A critical kernel error."
    • The src/ReceiveLogsTopic folder contains a console app that subscribes to the exchange with a temporary queue and one or more topics as routing keys, e.g. dotnet run kern.* (several ReceiveLogsTopic apps can be run simultaneously, each waiting for specific topics in a temporary queue)
  • The RPC tutorial
    • The src/RPCServer folder contains a console app that waits for requests in the rpc_queue, when a request appears, the server does the job and send the result back using the queue from the ReplyTo property. The server must be started before any client, multiple servers can be started.
    • The src/RPCClient folder contains a console app that starts by creating a specific callback queue, each client has got its own callback queue. When the client sends a request, it sets the ReplyTo property to its own callback queue and the CorrelationId which is unique for every request. You invoke the client with dotnet run 30 or any positive integer
  • The Publish Confirms tutorial in the src/PublishConfirms folder. A single console app showing three ways for confirming that a published message was processed by the broker. To run the example all you have to do is type dotnet run inside the folder.

All the examples assume a RabbitMQ server installation on the local computer. By default, to run any of the console apps you just have to get into the corresponding folder and type dotnet run, some tutorials have more specific instructions.

Comments and feedback welcomed!

About

F# implementation of RabbitMQ tutorials

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages