Spring Cloud Alibaba Sidecar Многоязычный микросервис Гетерогенность

Java

Введение в Spring Cloud Alibaba Sidecar

посколькуSpring Cloud Alibaba 2.1.1Добавлено после версииspring-cloud-alibaba-sidecarМодуль действует как прокси-сервис, чтобы косвенно позволитьДругие языкиможно использоватьspring cloud alibabaи другие сопутствующие компоненты. Через сопоставление маршрутизации со шлюзом можно получить услугу, а затем использовать ленту для косвенного вызова.

Как показано выше, запрос приложения Spring CloudsidercarТогда вперед к модулям на других языках, преимущество в том, что для разнородного сервисного кода零侵入, не обязательно основываться непосредственно наnacosили другая регистрация API реестра и т. д.

Начиная

Создание сервисов интерфейса на другом языке

  • Напишите простой сервисный интерфейс на основе go

http://127.0.0.1:8089/sidecar

package main

import (
    "encoding/json"
    "fmt"
    "log"
    "net/http"
)

func main() {
    http.HandleFunc("/sidecar", sidecar)
    http.HandleFunc("/heath", health)
    log.Fatal(http.ListenAndServe(":8089", nil))
}
func sidecar(w http.ResponseWriter, r *http.Request) {
    _, _ = fmt.Fprintf(w, "hello spring cloud alibaba sidecar")
}

func health(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "application/json")
    actuator := make(map[string]string)
    actuator["status"] = "UP"
    _ = json.NewEncoder(w).Encode(actuator)
}

Построитьsidercarприменение

  • Увеличиватьsidecarполагаться
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sidecar</artifactId>
    <version>2.1.1.RELEASE</version>
</dependency>
  • настроитьapplication.yml
server:
  port: 8088
spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
  application:
    name: go-provider

# 配置异构服务
sidecar:
  ip: localhost
  port: 8089
  health-check-url: http://localhost:8089/health

Построитьnacos consumerприменение

  • application.yml
server:
  port: 8087
spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
  application:
    name: nacos-consumer
  • consumerлогика
@RestController
@EnableDiscoveryClient
@SpringBootApplication
public class NacosConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(NacosConsumerApplication.class, args);
    }

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/test")
    public String test() {
        return restTemplate.getForObject("http://go-provider/sidecar", String.class);
    }

}

тестовое использование

  • доступspring cloud consumer 应用
curl http://localhost:8087/test   

  • выводgo-providerприменение
hello spring cloud alibaba sidecar

Рекомендация проекта:Spring Cloud, система управления разрешениями Spring Security OAuth2 RBAC Добро пожаловать, обратите внимание