Introduction to MSE Registration Configuration Center is fully compatible with the Eureka protocol, and its read and write performance and instance capacity have been greatly optimized.
Author:
Review & proofreading: Yanlin,
Editing & Typesetting: Wine Circle
Eureka is an excellent registration and discovery product. As an important open source project of Netflix, Eureka has become the default registration center of the Spring-cloud-netflix ecosystem. In the past few years, Eureka has provided out-of-the-box registration center service solutions for a large number of Chinese Internet companies.
However, because the Eureka open source community stopped maintenance and there were performance problems when the business scale increased, it was necessary to find an alternative high-performance registry for smooth migration and evolution.
Eureka's performance issues
With the development of the business, Eureka gradually exposed some performance problems. The frequent changes of tens of thousands of instances and the flood of traffic requests, even through the deployment of high-configuration servers, cannot solve Eureka's performance bottlenecks:
1. Service status update lag: Due to Eureka's caching mechanism, the microservice system built on it usually has a service status update lag, and it takes 30-60s to get an accurate list of service instances;
2. The synchronization speed is slow: When the business traffic is large, in order to ensure high availability and high performance, usually Eureka needs to run in cluster mode. However, the read and write synchronization speed between Eureka clusters is relatively slow, that is, when you register an instance on one Eureka, you need to wait a long delay before you can query related information on another machine, which leads to frequent online bugs in the business. .
Eureka's community issues
In addition to the above performance issues, the Eureka community has currently announced that it will stop maintenance (as shown in the figure below). Locking on a non-developing community has high technical risks and uncertainties.
Advantages of MSE Registered Configuration Center Professional Edition
In order to reduce the uncertainty of the maintenance of the Eureka technical system, and to enhance the stability and high concurrency of the Eureka registry, for the first time, we are fully compatible with the Eureka protocol on the professional version of the MSE registration configuration center (hereinafter referred to as the professional version). Read and write performance and instance capacity have been greatly optimized.
According to feedback from users of a large educational institution, the performance of the professional version has been greatly improved compared to the open source Eureka, and it has been implemented in its business scenarios. The core capabilities and performance of the professional version are as follows:
1. Multi-protocol support: users using the instance of the Eureka registry can use the Nacos protocol for discovery, ensuring the multi-level compatibility of the user's technology stack;
2. High-performance support: The read and write synchronization speed is greatly optimized, so that the microservice system built on this has higher performance and ease of use; according to the pressure test data of the laboratory, the Eureka registration center under MSE-Nacos Both read and write performance and instance capacity have increased by more than 50%.
3. Integration into the service grid ecosystem: By supporting the MCP protocol and the XDS protocol, the service grid ecosystem is fully compatible with the professional version of the Eureka protocol, providing zero-intrusion, high-performance microservices and gateway solutions for Istio's access to Eureka.
1. Compare the pressure test report
We conducted stress tests on the open source Eureka and professional editions in terms of read and write performance and capacity evaluation, mainly including the following two scenarios.
- Scenario 1: Capacity evaluation test
Register as many App and Instance as possible, and maintain the heartbeat, and observe the capacity of the registration center. Test indicators include Instance capacity, whether Full GC occurs, and CPU overhead. The experimental machines include 3*8C16G or 10*8C16G, and we have conducted multiple stress testing experiments with different registration scales.
In terms of capacity, Eureka has a small capacity. If the capacity of 3 machines exceeds 1.5w, a large number of synchronization timeout errors will occur, and Full GC will occur frequently (at least once every minute).
After problem location, Eureka's batch replication between clusters is more frequent in the capacity test scenario; in addition, the open source Eureka will retry the replication request soon after the initial timeout, leading to flooding, which is the main cause of the CPU soaring close to 100% reason. This problem also caused Eureka's horizontal scaling performance bottleneck.
The capacity of the professional version exceeds Eureka, and only 9 machines can support an instance size of about 6w; in addition, the frequency of its Full GC is greatly reduced, and the CPU usage is maintained at a low level.
- Scenario 2: Read and write performance TPS test
After testing, it is found that in a large number of frequent write operation scenarios, Eureka's batch replication operations between clusters are more frequent, resulting in a large number of Timewait threads; in addition, Eureka will retry the replication request soon after the initial timeout, resulting in flooding. It is the main reason for the CPU soaring close to 100%. Its manifestation is that after Eureka's CPU is full, the following error will appear on the Eureka side, and the response speed of each node will reach a bottleneck.
com.sun.jersey.api.client.ClientHandlerException: java.net.SocketTimeoutException: Read timed out
The professional version uses Alibaba Cloud's self-developed Distro protocol to fragment data, and the data synchronization granularity between clusters is smaller than that of the open source Eureka. Therefore, the amount of data synchronization between the professional version compatible Eureka clusters is relatively low, and the CPU overhead is small. The TPS increased, the RT decreased, and the overall performance increased by about 50%. Below, we will compare the professional version and Eureka from the reading scene and the writing scene respectively:
Read the scene
Write scene
How to migrate the open source Eureka to the professional version
I believe that seeing this, you must want to get in the car early, but then you will ask whether seamless migration is supported? We provide corresponding solutions for different scenarios.
1. How to migrate self-built Eureka users on the cloud?
Users of self-built Eureka on the cloud can directly follow the "Migrating Spring Cloud Application from Open Source Nacos to MSE Nacos" to smoothly migrate (see the link at the end of the article).
2. How to migrate users who have purchased MSE?
For users who have purchased the basic version of the MSE Registration Configuration Center, we also provide the ability to smoothly upgrade to the professional version. You can directly click "instance specification change" and select "professional version" to operate.
The entire migration process is completely smooth, and the business is basically unaware. After the upgrade is complete, users can perform high-performance Eureka protocol service discovery and registration on the professional version.
reference link
"Migrating Spring Cloud applications from open source Nacos to MSE Nacos":
https://help.aliyun.com/document\_detail/263565.html
double eleven promotion, engine 16195c1ba9f25e MSE (registered configuration center and cloud native gateway) first purchase 20% discount!
Click the link below to learn more!
https://cn.aliyun.com/product/aliware/mse
Copyright Notice: content of this article is contributed spontaneously by Alibaba Cloud real-name registered users, and the copyright belongs to the original author. The Alibaba Cloud Developer Community does not own its copyright and does not assume corresponding legal responsibilities. For specific rules, please refer to the "Alibaba Cloud Developer Community User Service Agreement" and the "Alibaba Cloud Developer Community Intellectual Property Protection Guidelines". If you find suspected plagiarism in this community, fill in the infringement complaint form to report it. Once verified, the community will immediately delete the suspected infringing content.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。