Historic breakthrough: use. Net core to process more than 17000 messages per day!


In my spare time, I wrote an online customer service system with. Net core. And wrote a series of articles to introduce the development process

. net core and WPF develop Sunway online customer service system: Contents

At the beginning, it was just written for fun to verify whether. Net core is OK or not. When making this choice, I was worried about whether I could bear the pressure of data processing in a background system.

In the process of coding, we consulted a lot of information about how. Net core and C # can achieve high-performance background services.

Fortunately, the efforts of those who are willing to do so have been successful. A few days ago, I checked the usage of customers, and the amount of messages received and sent that day exceeded 17000! An e-commerce company, online consulting volume far exceeds my expectation.

Although the system is completely free, free for customers to use, but technically speaking, to achieve such a result, very gratified.

It also proves that using. Net core as the background of large-scale system is completely OK!

Historic breakthrough: use. Net core to process more than 17000 messages per day!


In this article, I will briefly introduce the system background architecture, and please make more corrections.

Server program and database

In addition to providing the ability to add, delete, modify and query general data, the server program needs to realize the stable management of context data such as message middleware, stable site status, customer service status and visitor status in memory, and stable TCP / IP long connection maintenance mechanism.
Considering the technical indicators and development efficiency, I use. Net core as the server program and SQL server as the database.
At present. Net core has perfect technical index, and can provide development efficiency that other development platforms can’t match. Thanks to the whole. Net technology system, it is possible for me to complete the whole system by myself.

I use SQL server as the database, which can seamlessly integrate Entity Framework core and. Net core to provide unparalleled development efficiency. At the same time, in terms of data processing performance, it can fully meet the requirements of various technical indicators. In terms of daily use and operation and maintenance, it also provides the incomparable convenience and work efficiency of Oracle and mysql.

Customer service program

I use the WPF framework in the customer service program. Compared with WinForms program, WPF provides higher development efficiency and more complete basic framework, which makes it easier for picture presentation, data processing and module decoupling. Similarly, WPF based on. Net architecture provides high development efficiency that other development platforms cannot provide. For a program that needs more than ten hours a day to run stably and does not exit, the stability of native client program can not be compared with that of web page based program.

In the above, we mentioned that the system can be expanded horizontally and has the ability of elastic expansion. In the initial stage, it can run in a low configuration environment. When the number of users increases, it can expand horizontally without affecting the original structure. Or it may shrink due to the decrease of service scale.

Next, I will explain this problem from the overall structure of the system

Historic breakthrough: use. Net core to process more than 17000 messages per day!

As can be seen from the figure above, this is a typical distributed deployment system. The JavaScript file embedded in the client’s website is running properly. First, connect to the routing server. The routing server saves a table and the address of the application server that each site should use. Just like the DNS server, it tells the client where you should make the real connection request. Then, the JavaScript program embedded in the client website initiates a connection to the corresponding application server, reports the visitor status, and receives the server instructions.
So it’s easy to understand that we only need to expand the number of our application servers to easily increase the bearing capacity of the system. On the contrary, it can also be reduced.

When dealing with the customer’s privatization deployment requirements, we can also cancel the routing server, file server and CDN content distribution network according to the actual needs. A simple solution to meet the needs of small and medium-sized enterprises with low visits. On this basis, we can also use the current cloud server to achieve flexible configuration. We can start running with a server with a lower configuration, or even deploy the database and cache services completely on one server. When we find that there is a real need in the use process, we first add the configuration of a single server. If we can’t meet the requirements, we can separate the database and cache services, If it can not meet the requirements, add routing server and application server.