springcluoud入门

概念:

Spring Cloud是一个分布式的整体解决方案。

Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全局琐,leader选举,分布式session,集群状态)中快速构建的工具,使用Spring Cloud的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。

SpringCloud分布式开发五大常用组件:

  • 服务发现——Netflix Eureka(注册中心)
  • 客服端负载均衡——Netflix Ribbon (具体调用)
  • 断路器——Netflix Hystrix  (当流程中某一服务出问题时可以快速响应失败)
  • 服务网关——Netflix Zuul  (流程中过滤请求)
  • 分布式配置——Spring Cloud Config  (配置)

项目流程:

            首先,新建一个空项目springcloud

  1. 创建注册中心
    1. 配置Eureka信息
      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. @EnableEurekaServer
      启动类:
      @EnableEurekaServer
      @SpringBootApplication
      public class EurekaServerApplication {
      
          public static void main(String[] args) {
              SpringApplication.run(EurekaServerApplication.class, args);
          }
      
      }
    3. 启动主注册中心主程序
  2. 创建provider提供者
    1. 配置Eureka提供者信息
      server:
        #port: 8001
        port: 8002
      spring:
        application:
          name: provider-ticket
      
      eureka:
        instance:
          prefer-ip-address: true   #注册服务的时候使用服务的ip地址
        client:
          service-url:
            defaultZone: http://localhost:8761/eureka/
    2. 编写被调用的controller和service
      controller:
      @RestController
      public class TicketController {
      
          @Autowired
          TicketService ticketService;
      
          @GetMapping("/ticket")
           public String getTicket(){
               return ticketService.getTicket();
           }
      
      }
      
      service:
      @Service
      public class TicketService {
      
          public String getTicket(){
              //System.out.println("8001");
              System.out.println("8002");
              return "《拿到票了》";
          }
      }
    3. 分别打包 8001 ,8002 成jar包,并分别用cmd命令运行   java -jar provider-ticket-0.0.1-SNAPSHOT-8001T.jar   /   java -jar provider-ticket-0.0.1-SNAPSHOT-8002T.jar,此时http://localhost:8761/注册中心下会看到同一个应用的两个实例
  3. 创建consumer-user消费者
    1. 配置Eureka消费者信息
      spring:
        application:
          name: consumer-user
      server:
        port: 8200
      
      eureka:
        instance:
          prefer-ip-address: true   #注册服务的时候使用服务的ip地址
        client:
          service-url:
            defaultZone: http://localhost:8761/eureka/
    2. 创建请求
    3. 开启发现服务功能并启动主程序,负载均衡可以使实例被调用时轮流调用
      
      
    4. 程序启动后,此时注册中心可以查看到,通过url:http://localhost:8200/buy?name=zhangsanfeng      刷新  可以测试负载均衡
原文地址:https://www.cnblogs.com/MagicAsa/p/10918482.html