Skip to main content
Version: 2021.0.4.0

Quick Start

This section demonstrates how to use Spring Cloud Alibaba Sidecar to access heterogeneous micro-services written in a non-Java language.

Use requirements

  • [Must] Your heterogeneous microservice needs to communicate using HTTP. This is not strictly a requirement because the Spring Cloud itself is based on HTTP;

  • [Optional] If sidecar.health-check-url is configured for the micro service, the health check is enabled. In this case, your heterogeneous micro service needs to implement the health check.

Preparation work

Download and start Nacos Server

Before adding Sidecar, start the Nacos Server.

  1. Download and decompress the Nacos binary file;

  2. Start the Nacos Server;

    After downloading and decompressing, we need to enter the bin directory to start nacos service. Do not double-click to start NACos service. By default, double-click to start NACos service will be started in cluster mode.

    $ startup.cmd -m standalone
  3. Log in to Nacos.

    If we go to the browser and type localhost:8848/nacos, we can see that Nacos provides the console interface username and password are both nacos/nacos.

Introduce dependencies

Introduce the following dependencies into the Spring Boot project that has been created:

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sidecar</artifactId>
</dependency>

<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

Prepare heterogeneous services

Note:

This example provides a NodeJS service. Node.js needs to be installed in the local environment to start the Node service and experience the Sidecar function!

var http = require("http");
var url = require("url");
var path = require("path");

// create server
var server = http.createServer(function (req, res) {
// Get the path to the request
var pathname = url.parse(req.url).pathname;
res.writeHead(200, { "Content-Type": "application/json; charset=utf-8" });
// Visit http://localhost:8060/ and {"index":" Welcome to Home page "}
if (pathname === "/") {
res.end(JSON.stringify({ index: "Welcome to the home page" }));
}
// Visit http://localhost:8060/health, will return to {" status ":" UP "}
else if (pathname === "/health.json") {
res.end(JSON.stringify({ status: "UP" }));
}
// In other cases, 404 is returned
else {
res.end("404");
}
});
// Create a listener and print a log
server.listen(8060, function () {
console.log("listening on localhost:8060");
});

Write the relevant configuration

server:
port: 8070
spring:
cloud:
nacos:
discovery:
server-addr: localhost:8848
gateway:
discovery:
locator:
enabled: true
application:
name: node-service
sidecar:
# IP address of the heterogeneous microservice
ip: 127.0.0.1
# Port of the heterogeneous microservice
port: 8060
# Health check URL for heterogeneous microservices
health-check-url: http://localhost:8060/health.json
management:
endpoint:
health:
show-details: always

Start service and test

View heterogeneous services on the Nacos console:

nacos-sidecar-service

Access heterogeneous services:

Browser to access http://127.0.0.1:8070/node-service/health.json to transfer general principles of the integration of success.

Spring Cloud Alibaba Sidecar Example reference: Spring Cloud Alibaba Sidecar Example

For more advanced Sidecar features and how to use them, see the Sidecar Advanced Guide section!