Spring Cloud Alibaba 初体验 Nacos 服务注册与发现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Cloud Alibaba 初体验 Nacos 服务注册与发现相关的知识,希望对你有一定的参考价值。

一、服务注册

添加依赖:

<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 快速开始

以上是关于Spring Cloud Alibaba 初体验 Nacos 服务注册与发现的主要内容,如果未能解决你的问题,请参考以下文章

spring cloud 初体验

Spring Cloud Gateway初体验

Spring Cloud(01)——初体验

Spring Cloud Gateway 初体验

SpringCloud初体验:Sidecar 将 PHP 这类非 Java 生态语言的服务接入 Spring Cloud

Spring Boot 初体验——FastJson