The CSE (Cloud Service Engine) Java SDK is a product-level microservice development framework launched by Huawei, which has been used and verified in many large-scale products within Huawei. Using the CSE Java SDK to develop microservices can greatly simplify the development threshold and improve the speed of product launch. At the same time, a series of out-of-the-box capabilities such as microservice runtime high reliability assurance and runtime dynamic governance can be obtained.
Framework overview
main design intent
1. The programming model and the communication model are separated, and different programming models can flexibly combine different communication models. Application developers only pay attention to interface development in the development phase, and flexibly switch communication methods in the deployment phase; to support the switching of legacy systems, legacy systems only need to modify the configuration file (or annotation) published by the service, without modifying the code.
At this stage, three development methods are supported: SpringMVC, JAX-RS and transparent RPC.
2. Built-in API-first support. The development of microservices can be standardized through contracts, realize cross-language communication, and support the development of supporting software tool chains (contract generation code, code generation contract, etc.) to build a complete development ecosystem.
3. Defines the common microservice operation model, and encapsulates various fault tolerance methods in the process from discovery to interaction of microservices. The runtime model supports customization and extension.
Module description
Types of | artifact id | Is it optional | Function Description |
---|---|---|---|
programming model | provider-pojo | Yes | Provide RPC development mode |
programming model | provider-jaxrs | Yes | Provide JAX RS development mode |
programming model | provider-springmvc | Yes | Provide Spring MVC development mode |
Communication model | transport-rest-vertx | Yes | A development framework that runs on HTTP, does not depend on WEB containers, and packages applications as executable jars |
Communication model | transport-rest-servlet | Yes | A development framework running on a WEB container, and the application is packaged as a war package |
Communication model | transport-highway | Yes | Provides a high-performance private communication protocol, which is only used for interoperability between java. |
run the model | handler-loadbalance | Yes | load balancing module. Provides various routing strategies and configuration methods. General client use. |
run the model | handler-bizkeeper | Yes | Functions related to service governance, such as isolation, circuit breaker, and fault tolerance. |
run the model | handler-tracing | Yes | Call the chain tracking module, connect to the monitoring system, and spit out the management data. |
run the model | handler-tcc | Yes | Provide TCC transaction development and management capabilities. |