概念:

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      刷新  可以测试负载均衡

最新文章

  1. pip安装模块
  2. iOS 支付宝第三方使用步骤
  3. 关于button和form提交的一些问题
  4. iconv
  5. hdu 4747【线段树-成段更新】.cpp
  6. 64位win7安装jdk和eclipse
  7. C#基础零碎知识点摘录
  8. scrapy 通过FormRequest模拟登录再继续
  9. jquery 笔记 点击周围区域子类隐藏,点击子类内部的信息 不隐藏
  10. BZOJ4133 : Answer的排队
  11. 用Rider写一个由Autofac管理资源的WebAPI应用程序
  12. LED灯珠散热的计算方法
  13. centos7: php7.2.9安装配置
  14. andorid 手机外部储存
  15. 初步理解Python进程的信号通讯
  16. LeetCode 48 Rotate Image(2D图像旋转问题)
  17. 【第三十八章】 springboot+docker(maven)
  18. BeanShell使用json.jar包处理Json数据
  19. Storm系列三: Storm消息可靠性保障
  20. 【NLP_Stanford课堂】语言模型3

热门文章

  1. 剑指offer——22表示数值的字符串
  2. 利用zk客户端删除solr shard
  3. Python做数据预处理
  4. Round Numbers /// 组合计数 oj21455
  5. linux mysql主从复制配置
  6. 笔记:简单的面向对象-web服务器
  7. thinkphp cbd模式
  8. 0910CSP-S模拟测试赛后总结
  9. 全球轮3——cf1148
  10. BZOJ 1040 (ZJOI 2008) 骑士