title: “Java Chassis Architecture” lang: en ref: servicecomb-introduction permalink: /docs/users/ excerpt: “Java Chassis Architecture” last_modified_at: 2017-06-14T10:01:43-04:00 redirect_from:

  • /theme-setup/

{% include toc %}

Basic Framework

ServiceComb Model{: .align-center}

Purpose

1.To decouple the programming and communication models, so that a programming model can be combined with any communication models as needed. Application developers only need to focus on APIs during development and can flexibly switch communication models during deployment. Services can also be switched over to a legacy system. The developers simply need to modify the configuration file(or annotation) released by the service.

Currently, applications can be developed in Spring MVC, JAX-RS, or transparent RPC mode.

2.To introduce the code-first approach. This allows cross-language communication through API definition-based microservice development and supports the development of software tool chains(such as code generated based on API definitions and API definitions generated based on code) to build a complete development ecosystem.

3.To define common microservice running model, encapsulating fault tolerance methods of microservices used from discovery to interaction, The running model can be customized or extended.

Modules

Typeartifact idAvailable or NOTFunction
Programming modelprovider-pojoYesProvides the RPC development mode.
Programming modelprovider-jaxrsYesProvides the JAX-RS development mode.
Programming modelprovider-springmvcYesProvides the Spring MVC development mode.
Communication on modeltransport-rest-vertxYesA development framework running over HTTP, it does not depend on Web containers. Applications are packaged as executable .jar files.
Communication on modeltransport-rest-servletYesA development framework running on Web container. Applications are packaged as WAR files.
Communication on modeltransport-highwayYesProvides high-performance private communication protocols for Java communication.
Running modelhandler-loadbalanceYesA load balancing module that provides various routing policies and configurations. It is usually used for clients.
Running modelhandler-bizkeeperYesProvides service governance functions, such as isolation, fallbreak, and fault tolerance.
Running modelhandler-tracingYesProvides the capability of developing and managing TCC transactions.