Spring Cloud Alibaba 初體驗(二) Nacos 服務注冊與發現 + 集成 Spring Cloud Gateway


一、服務注冊

添加依賴:

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

新建 Spring Cloud 項目,在 bootstrap.yml 新增配置:

spring:
  application:
    name: service1

  cloud:
    nacos:
      discovery:
        server-addr: 192.168.92.1:8848

啟動項目,可以在 Nacos 服務列表看到服務已注冊

二、服務消費

新建項目 service2 (端口:8079)

在 bootstrap.yml 新增配置:

spring:
  application:
    name: service2

  cloud:
    nacos:
      discovery:
        server-addr: 192.168.92.1:8848

新增 Controller:

@RestController
public class GreetingController {

    @Autowired
    private RestTemplate restTemplate;

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

    @RequestMapping("/greeting")
    public String greeting() {
        return restTemplate.getForObject("http://service1/greeting", String.class);
    }
}

訪問 http://localhost:8079/greeting 可以看到與訪問 http://localhost:8070/greeting 同樣的結果

三、集成 Spring Cloud Gateway

新建項目 (本文使用的 Spring Cloud 的版本為 Hoxton.SR3):

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

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

配置:

server:
  port: 8081

spring:
  application:
    name: gateway
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.92.1:8848
        namespace: e5fc372c-ad66-4e0e-a353-a217d0a315ba
    gateway:
      routes:
        - id: service1
          uri: lb://service1 # lb 代表注冊中心的服務
          predicates:
            - Path=/service1/** # 匹配的 URL
          filters:
            - StripPrefix=1 # URL 去掉的前綴個數

—- 2020-05-26 更新開始 —-

Spring Cloud Gateway 跨域設置

spring:
  cloud:
    gateway:
      globalcors:
        cors-configurations:
          '[/**]':
            allowedHeaders: '*'
            allowedOrigins: '*'
            allowedMethods: '*'

—- 2020-05-26 更新結束 —-

訪問 http://localhost:8081/service1/greeting 即可路由到 service1 的 greeting 方法

參考:

Nacos Spring Cloud 快速開始


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM