Spring Boot从0开始学的个人笔记12 --spring Cloud(简单使用)与热部署

一、概述

就是把客户端和服务端分开一个个的,然后每一个都丢在spring boot Cloud中,要用的时候,再把他们合在一起。

二、简单使用

结构是这样的,一个eureka-server,用来做中间人,注册中心。

1、eureka-server(注册中心)

eureka是 Netflix(网飞)做的,但是是spring cloud中的一部分。
eureka-server项目只包含这个

注册中心

  • 配置eureka信息
  • 在主程序类前使用注解@EnableEurekaServer开启Eureka服务端
    在这里插入图片描述
    配置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/

在这里插入图片描述

2、provider-ticket(服务提供者)

  • 写服务层与控制层
  • 配置eureka信息,把该应用加入到eureka中
    在这里插入图片描述

1)配置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/

就,总要有点东西输出吧,那就整两个

2)服务类

@Service
public class TicketService {
    
    

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

3)控制类

@RestController
public class TicketController {
    
    
    @Autowired
    TicketService ticketService;

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

在eureka-server还在启动的时候,也启动provider-ticket,就会把该应用加入到eureka中

在这里插入图片描述
在这里插入图片描述
可以看到,加入了,如果你复制多几份,改下端口,这里显示也会多几份的

3、consumer-user(消费者,客户端)

  • 写配置文件
  • 写控制类
  • 在主程序中添加注解与方法

也是要导入
在这里插入图片描述

1)配置文件

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

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

2)主程序类

@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:服务发现注解
  • @LoadBalanced使用负载均衡机制,什么是负载均衡机制?你只要知道,开了这个,能减轻内存的压力就行了
  • RestTemplate restTemplate()帮助我们发送http请求的东西

3)控制类

@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 restTemplate就自动注入这个咯
  • getForObject("http://服务提供者的名字+服务提供类的控制类请求",发请求类的返回值的类型):利用到restTemplate,http://是固定的,提供服务的类名是provider-ticket,其控制类的一个请求为/,该类返回类型为String.

4)效果

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这只是个简单的应用,更复杂的还在学习中

扫描二维码关注公众号,回复: 13087554 查看本文章

springboot-cloud

三、热部署

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

有什么跟新后,ctrl+F9

猜你喜欢

转载自blog.csdn.net/yi742891270/article/details/107835987