Book Image

Hands-On Microservices with C#

By : Matt Cole
Book Image

Hands-On Microservices with C#

By: Matt Cole

Overview of this book

C# is a powerful language when it comes to building applications and software architecture using rich libraries and tools such as .NET. This book will harness the strength of C# in developing microservices architectures and applications. This book shows developers how to develop an enterprise-grade, event-driven, asynchronous, message-based microservice framework using C#, .NET, and various open source tools. We will discuss how to send and receive messages, how to design many types of microservice that are truly usable in a corporate environment. We will also dissect each case and explain the code, best practices, pros and cons, and more. Through our journey, we will use many open source tools, and create file monitors, a machine learning microservice, a quantitative financial microservice that can handle bonds and credit default swaps, a deployment microservice to show you how to better manage your deployments, and memory, health status, and other microservices. By the end of this book, you will have a complete microservice ecosystem you can place into production or customize in no time.
Table of Contents (16 chapters)
11
Trello Microservice – Board Status Updating
12
Microservice Manager – The Nexus

Messaging

  • Keep your message queues as short as possible. Many messages in a queue can put a heavy load on RAM usage. When this happens, RabbitMQ will start flushing messages to disk to free up RAM, and when that happens, queuing speeds will deteriorate. This paging process can take some time and will block the queue from processing messages. When there are a lot of messages to page out, it can take considerable time and will affect the performance of the broker negatively.
  • Limit the number of messaging queues that you have. Queues are single-threaded in RabbitMQ, and one queue can handle up to about 50,000 messages. You will achieve better throughput on a multi-core system if you have multiple queues and consumers. You will achieve optimal throughput if you have as many queues as cores on the underlying node(s).
  • Split your messaging queues over multiple cores. Queue performance...