Spring Cloud Alibaba: use Nacos para realizar el registro y descubrimiento de servicios

Adjunto: documentación de Nacos

Adjunto: [github] nacos dirección de descarga

ps: descargar el paquete de instalación de nacos directamente desde github será particularmente lento. Se usó el método de modificación de host en línea y no tiene ningún efecto. Se recomienda usar una VPN o alguien más lo ha descargado;

Adjunto: [csdn] nacos-server-1.1.0.tar.gz

tar -zxvf nacos-server-1.1.0.tar.gz  解压
cd nacos
cd bin
sh startup.sh -m standalone 启动

Aparece la siguiente figura, que indica un inicio exitoso. 

Entrar http://192.168.101.16:8848/nacos /index.html , e introduzca la contraseña de la cuenta; ambos nacos . Aparece la siguiente interfaz; 

Nota: La versión corresponde a:

Estructura del proyecto:

1. Módulo: alibaba-nacos-discovery-server:

Capa de control:

package com.lucifer.demo.controller;


import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
/**
 * @author: lucifer
 * @date: 2019/8/6
 * @description:
 */
@Slf4j
@RestController
public class TestController {

    @GetMapping("/hello/{name}")
    public String hello(@PathVariable(name = "name") String name) {
        log.info("invoked name = " + name);
        return "hello " + name;
    }


}

clase de inicio de springboot: (ps: @EnableDiscoveryClient función de descubrimiento de registro de servicio abierto)

package com.lucifer.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * @author Lucifer
 */
@EnableDiscoveryClient
@SpringBootApplication
public class AlibabaNacosDiscoveryServerApplication {

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

}

archivo de configuración de springboot: 

spring:
  application:
    name: service-provider
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.101.16:8848

server:
  port: 8001

pom.xml: (paquete jar principal) 


    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
   

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>0.2.2.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

Inicio:

2. Módulo: alibaba-nacos-discovery-client

1 class clase de inicio springboot: igual que la clase de inicio alibaba-nacos-discovery-server, más @EnableDiscoveryClient;

2》 Archivo de configuración:

spring:
  application:
    name: service-consumer
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.101.16:8848

server:
  port: 8080

3》 pom.xml Igual que el anterior

 Capa de control:

package com.lucifer.alibabanacosdiscoveryclient.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

/**
 * @author: lucifer
 * @date: 2019/8/6
 * @description:
 */
@EnableDiscoveryClient
@RestController
public class TestController {

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

    @Autowired
    private RestTemplate restTemplate;


    @GetMapping(value = "/hello/{str}")
    public String echo(@PathVariable(name = "str") String str) {
        return restTemplate.getForObject("http://service-provider/hello/" + str, String.class);
    }


}

Inicio:

Visite http://192.168.101.16:8848/nacos/ nuevamente

prueba de cartero:

1.localhost: 8080 / hola / zhangsan

 2.localhost: 8001 / hola / zhangsan

PD:

Ingrese los detalles del servicio, haga clic en fuera de línea, como se muestra en la figura:

Vaya a la interfaz nuevamente: el proveedor de servicios no tiene instancias disponibles

Vuelva a hacer clic en línea, espere unos segundos, una docena de segundos y luego vuelva a visitar la interfaz: normal;

 
187 artículos originales publicados · Me gusta 146 · Visita 490,000+

Supongo que te gusta

Origin blog.csdn.net/qq_37495786/article/details/98626432
Recomendado
Clasificación