Bu sayfa henüz yerel dilinizde mevcut değildir. Daha fazla dil seçeneği eklemek için yoğun bir şekilde çalışıyoruz. Desteğiniz için teşekkür ederiz.
- What's New
- Function Overview
- Service Overview
- Billing
- Getting Started
-
User Guide
- Before You Start
- Permissions Management
-
Exclusive ServiceComb Engine
- Creating a ServiceComb Engine
-
Managing ServiceComb Engines
- Viewing ServiceComb Engine Information
- Obtaining the Service Center Address of a ServiceComb Engine
- Obtaining the Configuration Center Address of a ServiceComb Engine
- Viewing the Instance Quota of a ServiceComb Engine
- Viewing the Configuration Item Quota of a ServiceComb Engine
- Configuring Backup and Restoration of a ServiceComb Engine
- Managing Public Network Access for a ServiceComb Engine
- Viewing ServiceComb Engine Operation Logs
- Upgrading a ServiceComb Engine Version
- Deleting a ServiceComb Engine
- Changing ServiceComb Engine Specifications
- Managing Security Authentication for a ServiceComb Engine
- Managing Tags
- Using ServiceComb Engines
- Registry/Configuration Center
- Key Operations Recorded by CTS
-
Best Practices
- CSE Best Practices
-
ServiceComb Engines
-
ServiceComb Engine Application Hosting
- Hosting Spring Cloud Applications Using Spring Cloud Huawei SDK
- Hosting a Java Chassis Application
-
ServiceComb Engine Application Hosting
- Registry/Configuration Centers
-
Developer Guide
- Overview
- Developing Microservice Applications
- Preparing the Environment
- Connecting Microservice Applications
- Deploying Microservice Applications
- Using ServiceComb Engine Functions
- Appendix
-
API Reference
- Before You Start
- API Overview
- Calling APIs
- Examples
-
CSE API
- API Calling
- Dynamic Configuration
-
Engine Management
- Querying Flavors Supported by a Microservice Engine
- Querying the Microservice Engine List
- Creating an Exclusive Microservice Engine
- Querying Details About a Microservice Engine
- Deleting a Microservice Engine
- Querying Details About a Microservice Engine Job
- Retrying an Exclusive ServiceComb Engine
- Upgrading an Exclusive ServiceComb Engine
- Changing Microservice Engine Specifications
- Updating the Configuration of an Exclusive Microservice Engine
-
Microservice Governance
- Querying the Governance Policy List
- Creating a Dark Launch Policy
- Querying a Dark Launch Rule of a Microservice
- Deleting a Dark Launch Policy
- Changing a Governance Policy
- Deleting a Governance Policy
- Querying Governance Policy Details
- Creating a Governance Policy
- Querying the Governance Policy List of a Specified Kind
- Nacos API
-
ServiceComb API
- API Calling
- Authentication
-
Microservice
- Querying Information About a Microservice
- Deleting Definition Information About a Microservice
- Querying Information About All Microservices
- Creating Static Information for a Microservice
- Deleting Static Information About Microservices in Batches
- Modifying Extended Attributes of a Microservice
- Querying the Unique Service or Schema ID of a Microservice
- Schema
-
Microservice Instance
- Registering a Microservice Instance
- Querying a Microservice Instance Based on service_id
- Deregistering a Microservice Instance
- Querying Details About a Microservice Instance
- Modifying the Extended Information About a Microservice Instance
- Modifying Status of a Microservice Instance
- Sending Heartbeat Information
- Querying a Microservice Instance by Filter Criteria
- Querying Microservice Instances in Batches
- Dependency
- Configuration Management
- Appendixes
- Change History
- SDK Reference
-
FAQs
- Precautions When Using Huawei Cloud CSE
- Nacos Engines
-
ServiceComb Engines
- How Do I Perform Local Development and Testing?
- How Can I Handle a Certificate Loading Error?
- What If the Header Name Is Invalid?
- What Is the Performance Loss of Mesher?
- Why Is "Version validate failed" Displayed When I Attempt to Connect to the Service Center?
- Why Is "Not enough quota" Displayed When I Attempt to Connect to the Service Center?
- What Should I Do If the Service Registration Fails After IPv6 Is Enabled for the Exclusive ServiceComb Engine with Security Authentication Enabled?
- What Is Service Name Duplication Check?
- Why Do I Have to Define Service Contracts?
- Why Are Microservice Development Framework and Netty Versions Unmatched?
- What Do I Need to Know Before Upgrading an Exclusive ServiceComb Engine?
- What Must I Check Before Migrating Services from the Professional to the Exclusive Microservice Engine?
- Why Is "Duplicate cluster name" Displayed?
- Error Message "the subnet could not be found" Is Displayed When the Access Address Fails to Be Processed During Engine Creation
- Why Is Error "does not match rule: {Max: 100, Regexp: ^[a-zA-Z0-9]{1,160}$|^[a-zA-Z0-9][a-zA-Z0-9_\-.]{0,158}[a-zA-Z0-9]$}"}" Reported?
- What Should I Do If SpringCloud Applications Fail to Connect to the Configuration Center of ServiceComb Engine 2.x?
- Why Could My the Global Configuration Not Be Modified?
- Obtain Configurations Failed
- Videos
- General Reference
Show all
Copied.
Thread Pool Parameters Configuration
Thread pools are the main service processing units of microservices. Proper thread pools planning can maximize system performance and prevent the system from failing to provide services for normal users due to exceptions. The optimization of the thread pool is closely related to the service performance. The parameter settings vary according to scenarios. The following describes two scenarios. Before setting, you need to check the service performance, test common APIs, and check the latency.
- The service performance is good.
That is, in non-concurrent scenarios, the average API latency is less than 10 ms.
When the service performance is good, to make the service system more predictable and prevent the JVM garbage collection, network fluctuation, and burst traffic from affecting the system stability, the system needs to quickly discard requests and take measures such as retry to ensure that the system performance is predictable in the case of fluctuation and normal service running.
- Number of connections and timeout settings
# Number of verticle instances on the server. Retain the default value. It is recommended that this parameter be set to a value in the range of 8 to 10. servicecomb.rest.server.verticle-count: 10 # Maximum number of connections. The default value is Integer.MAX_VALUE. The maximum value can be estimated based on the actual situation so that the system has better resilience. servicecomb.rest.server.connection-limit: 20000 # Connection idle time. The default value is 60s. Generally, you do not need to change the value. servicecomb.rest.server.connection.idleTimeoutInSeconds: 60 # Number of verticle instances on the client. Retain the default value. It is recommended that this parameter be set to a value in the range of 8 to 10. servicecomb.rest.client.verticle-count: 0 # Maximum number of connections between a client and the server is verticle – count * maxPoolSize, which cannot exceed the number of threads. #In this example, the number of connections is 500 (10 x 50). If there are a large number of instances, reduce the number of connections of a single instance. servicecomb.rest.client.connection.maxPoolSize: 50 # Connection idle time. The default value is 30s. Generally, you do not need to change the value. The value must be shorter than the connection idle time of the server. servicecomb.rest.client.connection.idleTimeoutInSeconds
- Service thread pool configuration
# Number of thread pool groups. The recommended value is 2 to 4. servicecomb.executor.default.group: 2 # Recommended value range: 50–200 servicecomb.executor.default.thread-per-group: 100 # Size of a queue in the thread pool. The default value is Integer.MAX_VALUE. Do not use the default value in high-performance scenarios to quickly discard requests. servicecomb.executor.default.maxQueueSize-per-group: 10000 # Maximum waiting time of a queue. If the waiting time exceeds the maximum value, the request is discarded and a response is returned. The default value is 0. # In high-performance scenarios, set the queuing timeout interval to a small value to quickly discard requests. servicecomb.rest.server.requestWaitInPoolTimeout: 100 # Set a short timeout period to quickly discard requests. However, you are advised to set the timeout period to a value greater than or equal to 1s. Otherwise, many problems may occur. servicecomb.request.timeout=5000
- Number of connections and timeout settings
- The service performance is not good.
That is, in non-concurrent scenarios, the average API latency is longer than 100 ms. High latency is usually caused by low CPU usage due to I/O and resource waiting in service code. If the high latency is caused by complex calculation, the optimization becomes complex.
When the service performance is not good, you need to increase the values of the following parameters. Otherwise, a large number of services will be blocked. Increasing these parameters ensures the system throughput and avoids service failures caused by burst traffic. However, user experience will be affected.
# Server connection idle time. servicecomb.rest.server.connection.idleTimeoutInSeconds: 120000 # Client connection idle time. servicecomb.rest.client.connection.idleTimeoutInSeconds: 90000 # Number of thread pool groups. servicecomb.executor.default.group: 4 # Size of the thread pool. servicecomb.executor.default.thread-per-group: 200 # Size of the queue in the thread pool. Threads will be queued when the performance is not good. servicecomb.executor.default.maxQueueSize-per-group: 100000 # Set the timeout period to a large value. servicecomb.rest.server.requestWaitInPoolTimeout: 10000 servicecomb.request.timeout=30000
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot