ventanas de implementación del entorno independiente de nacos

Tabla de contenido

1. Descarga nacos

2. Modificar la configuración e iniciar nacos

1. Arranque directo

2. Inicio de fondo

3. Configurar nacos en springcloud

Estructura del directorio de código

1. archivo de configuración de springcloud pom

2. Configuración del módulo de pedidos order-nacos

pom.xml

aplicación.yml

3. Configuración del módulo de inventario de stock-servicio

4. Código

AplicaciónPedido.java

OrderController.java

StockApplication.java

StockController.java

4. Inicio y operación del proyecto


1. Descarga nacos

Seleccione la descarga de nacos que coincida con la versión de springcloud

Notas de la versión · alibaba/spring-cloud-alibaba Wiki · GitHub

 Seleccione el paquete zip en el entorno de Windows. Descomprímalo después de descargarlo.

2. Modificar la configuración e iniciar nacos

1. Arranque directo

Ingrese al directorio bin descomprimido, edite startup.cmd, modifique la línea set MODE para establecer MODE="standalone" y guarde.

Haga doble clic en startup.cmd o ejecútelo como administrador.

Puede verificar el registro en bin/logs para ver si el inicio es exitoso.

2. Inicio de fondo

Utilice la herramienta nssm para instalar nacos como servicio en segundo plano. El uso de nssm se refiere al siguiente enlace.

Cómo implementar ES, Kibana, Logstash u otros archivos .bat como servicios en segundo plano de Windows usando herramientas nssm

 Después de comenzar, ingrese la dirección para acceder. Tanto el usuario como la contraseña son nacos.

http://192.168.1.15:8848/nacos/index.html

3. Configurar nacos en springcloud

Estructura del directorio de código

1. archivo de configuración de springcloud pom

La configuración general del proyecto determina la versión de springcloud y la versión de cada componente.

Simplemente concéntrese en <dependencyManagement>, que reemplaza a <parent>.

Los módulos debajo de <módulos> se agregan automáticamente cuando el proyecto agrega módulos.

<?versión xml="1.0" codificación="UTF-8"?> 
<proyecto xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3 .org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <modules> 
        <module>stock</module> 
        <module>order</module> 
        <module>stock-nacos</module> 
        <module>order-nacos</module> 
    < /modules> 
    <groupId>com.wind.springcloud</groupId> 
    <artifactId>alibaba</artifactId> 
    <version>0.0.1-INSTANTÁNEA</versión> 
    <nombre>alibaba</nombre> 
    <descripción>springcloudalibaba</descripción> 
    <embalaje>pom</embalaje> 
    <propiedades>
        <java.version>1.8</java.version> 
        <spring.cloud.alibaba.version>2.2.5.RELEASE</spring.cloud.alibaba.version> 
        <spring.boot.version>2.3.11.RELEASE</ spring.boot.version> 
        <spring.cloud.version> Hoxton.SR8</spring.cloud.version> 
    </properties> 

    <dependencies> 
        <dependency> 
            <groupId>org.springframework.boot</groupId> 
            <artifactId>spring -boot-starter</artifactId> 
        </dependency> 

        <dependency> 
            <groupId>org.springframework.boot</groupId> 
            <artifactId>spring-boot-starter-test</artifactId>  
            <scope>test</scope>
        </dependency> 
    </dependencies>

    <dependencyManagement> 
        <dependencies> 
            <!-- alibaba版本管理--> 
            <dependency> 
                <groupId>com.alibaba.cloud</groupId> 
                <artifactId>spring-cloud-alibaba-dependencies</artifactId> 
                <version>${ spring.cloud.alibaba.version}</version> 
                <type>pom</type> 
                <scope>import</scope> 
            </dependency> 
            <!-- springboot版本管理--> 
            <dependency> 
                <groupId>org. springframework.boot</groupId>versión}</versión> 
                <tipo>pom</tipo>boot</groupId> 
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>${spring.boot.version}</version> 
                <scope>import</scope> 
            </dependency> 
            <!-- springcloud版本管理--> 
            <dependency> 
                <groupId>org.springframework.cloud</ groupId> 
                <artifactId>spring-cloud-dependencies</artifactId> 
                <version>${spring.cloud.version}</version> 
                <type>pom</type> 
                <scope>import</scope> 
            </dependency> 

        </dependencies> 
    </dependencyManagement> 

    <build> 
        <plugins> 
            <plugin> 
                <groupId>org.springframework. arranque</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId> 
            </plugin> 
        </plugins>
    </construir> 

</proyecto>

2. Configuración del módulo de pedidos order-nacos

pom.xml

<?versión xml="1.0" codificación="UTF-8"?> 
<proyecto xmlns="http://maven.apache.org/POM/4.0.0" 
         xmlns:xsi="http://www.w3 .org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <parent> 
        <artifactId>alibaba</artifactId> 
        <groupId>com.wind.springcloud</groupId> 
        <version>0.0.1-SNAPSHOT</version> 
    </parent> 
    <modelVersion>4.0.0</modelVersion> 

    <artifactId>order-nacos</artifactId> 

    <dependencies> 
        <dependency> 
            <groupId>org.springframework.boot</groupId> 
        <!-- nacos服务注册发现 --> 
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency> 
        <dependency> 
            <groupId>com.alibaba.cloud</groupId> 
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> 
        </dependency> 
    </dependencies> 

</project>

aplicación.yml

El registro del servicio a nacos usa el valor del nombre de la aplicación por defecto

servidor: 
  puerto: 8020 
primavera: 
  aplicación: 
    nombre: orden-servicio 
  nube: 
    nacos: 
      dirección-servidor: 127.0.0.1:8848 
      descubrimiento: 
        nombre de usuario: nacos 
        contraseña: nacos 
# espacio de nombres: público #Gestión de clasificación de servicios predeterminado público 
# efímero: falso # El valor predeterminado de la instancia permanente es verdadero 
Servicio # de instancia temporal: predeterminado ${spring.application.name} 
# grupo: gestión de clasificación más fina 
# peso: #peso del equilibrio de carga 
# metadatos: los metadatos se pueden ampliar de acuerdo con el código fuente

3. Configuración del módulo de inventario de stock-servicio

El pom.xml es consistente con el módulo de pedido, y application.yml solo necesita cambiar el puerto a 8021.

4. Código

AplicaciónPedido.java

Donde @LoadBalanced es la llamada de equilibrio de carga predeterminada de nacos. Analizar el nombre del servicio para obtener ip, puerto

package com.wind.order;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

/**
 * @author dongguanghui
 * @date 2023/5/15 17:51
 */
@SpringBootApplication
public class OrderApplication {

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

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(RestTemplateBuilder builder){
        RestTemplate restTemplate = builder.build();
        return restTemplate;
    }
}

OrderController.java

package com.wind.order.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

/**
 * @author dongguanghui
 * @date 2023/5/15 17:47
 */
@RestController
@RequestMapping("/order")
public class OrderController {

    @Autowired
    private RestTemplate restTemplate;

    @RequestMapping("/add")
    public String add(){
        System.out.println("下单成功");
        String msg = restTemplate.getForObject("http://stock-service/stock/reduct", String.class);
        return "order success!" + msg;
    }

}

StockApplication.java

package com.wind.stock;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

/**
 * @author dongguanghui
 * @date 2023/5/15 17:51
 */
@SpringBootApplication
public class StockApplication {
    public static void main(String[] args) {
        SpringApplication.run(StockApplication.class,args);
    }
}

StockController.java

package com.wind.stock.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

/**
 * @author dongguanghui
 * @date 2023/5/15 17:47
 */
@RestController
@RequestMapping("/stock")
public class StockController {


    @Value("${server.port}")
    private String port;

    @RequestMapping("/reduct")
    public String reduct(){
        System.out.println("下单成功");
        return "reduct success!:"+port;
    }

}

4. Inicio y operación del proyecto

Una vez que se inicia el proyecto, el servicio se registra en nacos.

El navegador llama directamente a la interfaz. Puede ver que el fondo llama a otro servicio con éxito a través del nombre del servicio

Supongo que te gusta

Origin blog.csdn.net/Spring_possible/article/details/130719068
Recomendado
Clasificación