Notas personales de Spring Boot desde 0 para aprender 12: Spring Cloud (fácil de usar) e implementación en caliente

I. Panorama general

Es separar el cliente y el servidor uno por uno, y luego tirar cada uno en la Nube de Spring Boot, y juntarlos cuando sean necesarios.

2. Fácil de usar

La estructura es así, un servidor eureka, utilizado como intermediario, centro de registro.

1. eureka-server (Centro de registro)

eureka está hecho por Netflix, pero es parte de la nube de primavera.
El proyecto eureka-server solo contiene esto

Registro

  • Configurar la información de eureka
  • Utilice anotaciones para @EnableEurekaServerabrir el servidor Eureka antes de la clase del programa principal
    Inserte la descripción de la imagen aquí
    Configure la información de eureka: application.yml:
server:
  port: 8761
eureka:
  instance:
    hostname: eureka-server #eureka实例的主机名字
  client:
    register-with-eureka: false #不把自己注册到eureka,因为这是个中间人
    fetch-registry: false #不从eureka上获取服务的注册信息
    service-url:
      defaultZone: http://localhost:8761/eureka/

Inserte la descripción de la imagen aquí

2. Boleto de proveedor (proveedor de servicios)

  • Escribir capa de servicio y capa de control
  • Configure la información de eureka y agregue la aplicación a eureka
    Inserte la descripción de la imagen aquí

1) Configure la información de eureka: application.yml:

server:
  port: 8001
spring:
  application:
    name: provider-ticket

eureka:
  instance:
    prefer-ip-address: true #注册的时候使用服务的IP地址
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/

Sí, siempre hay algo que generar, luego dos

2) Categoría de servicio

@Service
public class TicketService {
    
    

   public  String getTicket(){
    
    
       return "《一张掉影票》";
   }
}

3) Categoría de control

@RestController
public class TicketController {
    
    
    @Autowired
    TicketService ticketService;

    @GetMapping("/")
    public String getTicket(){
    
    
        return ticketService.getTicket();
    }
}

Cuando el servidor eureka aún se inicia, también se inicia el ticket del proveedor y la aplicación se agregará a eureka

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Como puede ver, se ha agregado. Si copia más copias y cambia el puerto, se mostrarán más copias aquí.

3. Consumidor-usuario (consumidor, cliente)

  • Escribir archivo de configuración
  • Escribir clase de control
  • Agregue anotaciones y métodos al programa principal

También importar
Inserte la descripción de la imagen aquí

1) Archivo de configuración

server:
  port: 8200
spring:
  application:
    name: consumer-user

eureka:
  instance:
    prefer-ip-address: true #注册的时候使用服务的IP地址
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/

2) Categoría de programa principal

@EnableDiscoveryClient
@SpringBootApplication
public class ConsumerUserApplication {
    
    

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

    @Bean //加入到容器中
    @LoadBalanced //使用负载均衡机制
    public RestTemplate restTemplate(){
    
    
        return new RestTemplate();
    }
}

  • @EnableDiscoveryClient: Notas de descubrimiento de servicios
  • @LoadBalancedUtilizando el mecanismo de equilibrio de carga, ¿qué es el mecanismo de equilibrio de carga? Todo lo que necesita saber es que si lo activa, puede reducir la presión sobre la memoria.
  • RestTemplate restTemplate()Algo que nos ayude a enviar solicitudes http

3) Categoría de control

@RestController
public class UserController {
    
    

    @Autowired
    RestTemplate restTemplate;

    @GetMapping("/buy")
    public String buyTicket(String name){
    
    
        String s = restTemplate.getForObject("http://provider-ticket/", String.class);
        return name + "购买了"+s;
    }
}

  • RestTemplate restTemplateSolo inyecte esto automáticamente
  • getForObject("http://服务提供者的名字+服务提供类的控制类请求",发请求类的返回值的类型): El uso de restTemplate http://es fijo, el nombre de la clase que brinda el servicio es provider-ticket, una solicitud de su clase de control es /, el tipo de retorno de esta clase es String.

4) Efecto

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Esta es solo una aplicación simple, la más compleja aún está aprendiendo

Springboot-nube

Tres, despliegue en caliente

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

Qué hay de nuevo, ctrl + F9

Supongo que te gusta

Origin blog.csdn.net/yi742891270/article/details/107835987
Recomendado
Clasificación