Apache ServiceComb Java Chassis is a Software Development Kit (SDK) for rapid development of microservices in Java, providing service registration, service discovery, dynamic routing, and service management features
-
High performance
The transport capability of Java Chassis is based on Vert.x, which enables Java Chassis to process massive requests with relatively less hardware resources, and support reactive develop style.
-
Native support for OpenAPI
Java Chassis describes the APIs of the microservices via Swagger natively, to help developers to design microservices that comply to OpenAPI standard.
-
Flexible develop style
Currently Java Chassis allow developers to develop their microservice APIs in
SpringMVC
/JAX-RS
/transparent RPC
styles, and to send the request inRPC
/RestTemplate
styles. And there are three kind of build-in transport mode:Rest over Vertx
/Rest over Servlet
/Highway
. All of these features can be combined and replaced easily, because they are decoupled and all based on the Swagger schema, which can provide high flexibility. -
Out-of-box microservice governance features
Java Chassis provides a lot of features for microservice governance and monitor.
-
Multi languages support
Via ServiceComb Mesher, the microservices built by other languages are also able to work with ServiceComb components. And Java Chassis can communicate with such microservices and make use of the built-in capabilities.
Provider service:
import org.apache.servicecomb.*;
@RpcSchema(schemaId = "helloworld")
public class HelloWorldProvider implements HelloWorld {
public String sayHello(String name) {
return "Hello " + name;
}
}
Consumer service:
import org.apache.servicecomb.*;
@Component
public class HelloWorldConsumer {
@RpcReference(microserviceName = "pojo", schemaId = "helloworld")
private static HelloWorld helloWorld;
public static void main(String[] args) {
helloWorld.sayHello("Tank");
}
}
Project documentation is available on the ServiceComb website.
You don’t need to build from source to use Java Chassis (binaries in apache nexus ), but if you want to try out the latest and greatest, Java Chassis can be easily built with the maven. You also need JDK 1.8.
mvn clean install
If you want to build the release kits from the source
mvn clean install -Prelease,distribution
The first build may take a longer than expected as Maven downloads all the dependencies.
To build the docker image and run the integration tests with docker, you can use maven docker profile
mvn clean install -Pdocker -Pit
If you are using docker machine, please use the following command
mvn clean install -Pdocker -Pit -Pdocker-machine
We publish the snapshot version to Apache nexus repo, please add below repositories into your pom.xml.
<repositories>
<repository>
<releases />
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>repo.apache.snapshot</id>
<url>https://repository.apache.org/content/repositories/snapshots/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<releases />
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>repo.apache.snapshot</id>
<url>https://repository.apache.org/content/repositories/snapshots/</url>
</pluginRepository>
</pluginRepositories>
Bugs: issues
See CONTRIBUTING for details on submitting patches and the contribution workflow.
Licensed under an Apache 2.0 license.
This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.
The Apache Software Foundation has classified this software as Export Commodity Control Number (ECCN) 5D002, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation distribution makes it eligible for export under the "publicly available" Section 742.15(b) exemption (see the BIS Export Administration Regulations, Section 742.15(b)) for both object code and source code.
The following provides more details on the included cryptographic software:
- Vertx transport can be configured for secure communications