zoukankan      html  css  js  c++  java
  • 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      刷新  可以测试负载均衡
  • 相关阅读:
    SQLite简介
    dockerfiles宝藏系列
    Docker容器运行GUI程序的配置方法
    Windows神器cmder
    Typora设置标题自动添加序号
    手机往电脑备份相册
    搜索引擎的高级使用技巧
    Django Model 模型
    前后端分离是什么操作
    搭建FTP(win10版)以及基本FTP操作
  • 原文地址:https://www.cnblogs.com/MagicAsa/p/10918482.html
Copyright © 2011-2022 走看看