springcloud 课程学习笔记1

springcloud学习记录

1.构建pom工程,概括各主要依赖的合作版本

2.建模主要步骤

  1. 建module
  2. 改pom
  3. 写yml
  4. 主启动
  5. 写业务
    1. 建表
    2. 写entity
    3. 写dao
    4. 写service
    5. 写controller

3.热部署

  1. 导依赖 DevTool
  2. 导插件 父类pom中插件
  3. 开启自动编译 --> compile中 选中ADBC四个选项
  4. shift + option + cmd + / 打开registry ; 选中 compile.automake.allow... 和 actionSystem.assertFocusAccess...
  5. 重启idea

4.工程重构

  1. 在重构工程中复制公用的包路径和实例类
  2. maven clean 和 install
  3. 改造其他module
    1. 删除共享代码
    2. 添加公用包的坐标

5.Eureka配置

  1. server端 注册
    1. 导包 spring-cloud-starter-netflix-eureka-server
    2. 写yml
    3. 写主启动 : @EnableEurekaServer //一定标注是服务器端 !!
    4. 测试 启动后访问 http://eureka7002.com:7002/ / 7001
  2. client 注册改造
    1. 导client包 spring-cloud-starter-netflix-eureka-client
    2. 主启动加注解 @EnableEurekaClient //作为服务注册方
    3. 改yml : 声明为服务提供方,注册到服务中心
  3. 集群eureka服务器环境: 互相注册,互相守望
    1. 新建类似cloud-eureka-server7002,pom同7001
    2. 修改hosts映射配置 /etc/hosts文件 --> 127.0.0.1 eureka7001.com / 127.0.0.1 eureka7002.com
    3. 修改yml文件 互相注册,互相守望
    4. 测试访问 访问测试 eureka7001.com/7001 / eureka7002.com/7002
  4. 服务消费者环境,只需增加defaultZone中的注册连接为两个服务器,再测试
  5. 集群服务提供者模块,复制创建cloud-provider-payment8002
    1. 注意修改yml中的端口号
    2. 在8002和8001 controller中的PaymentController 增加显示serverport的代码
    3. 测试
    4. 开启负载均衡
      1. 对于服务提供者是集群时,消费者访问连接只写服务注册名,至于哪台机器响应,不确定
      2. 同时要在服务提供者配置类ApplicationContextConfig中restful方法中开启@LoadBalanced //开启负载均衡注解
        • 通过getRestTemplate开启负载均衡功能
    5. 完善主机信息的配置 acurator功能
      1. 在payment8001/8002的yml文件中,给eureka下加instanceid:payment8001/8002;这样注册主页上将显示为主机名
        • 可通过访问http://localhost:8001/actuator/health看服务器是否假死
    6. 服务发现功能
      1. 在服务提供者主程序加@EnableDiscoveryClient //启动服务发现
      2. 在PaymentController添加DiscoveryClient对象;//通过该对象并添加响应函数,可输出服务提供者的信息
  6. 自我保护机制:如发现与微服务暂时短线,不会立即删除服务,会保留服务注册信息 cap - ap 模式 保证可用性
    1. 手动关闭:
    2. 服务器端:在cloud-eureka-server7001/2端修改yml如下

    eureka:
    server:
    enable-self-preservation: false 服务心跳没有了,及时删除注册信息; 默认为true 默认开启自我保护的
    eviction-interval-timer-in-ms: 2000 心跳间隔时间缩小到2s

    1. 客户端:cloud-provider-payment8001中yml改动:

    eureka:
    instance:
    leased-renewal-interval-in-seconds: 30 客户端向服务器发送心跳的时间间隔 默认30s
    leased-expiration-duration-in-seconds: 90 服务端收到最后一次心跳后等待的时间上限,默认90s;超时将删除服务

6. zookeeper

服务提供方 配置

  1. 建cloud-provider-payment8004
  2. 改pom: 引入 spring-cloud-starter-zookeeper-discovery
  3. 写yml :指定注册到zookeeper 服务器 !!== 注册为临时节点,没心跳就删除节点 为cp模式 保证一致性
  4. 主启动: @EnableDiscoveryClient //注解用于使用consul或zookepper作为注册中时注册服务
  5. 写业务: 写controlller打印 serverPort信息

服务消费方 配置

  1. 建cloud-consumerzk-order80
  2. 改pom 同上
  3. 写yml :指定注册到zookeeper 服务器的 地址
  4. 主启动: 同上
  5. 写业务
    1. 写config : 注册Bean:RestTemplate,通过改对象调用服务提供方的服务
    2. 配置写controlller打印 serverPort信息 ///注意PAYMENT_URL要和服务提供方注册名大小写一致

微服务模块

cloud-provider-payment8001

  1. 技术点
  • sleuth+zipkin
  • eureka-client 注册
  • actuator
  • 通过DiscoveryClient对象获取注册的服务的信息
  • 整合druid和mybatis

cloud-consumer-order80

  1. 技术点
  • 主启动加@RibbonClient指定访问的微服务名称和 负载均衡的规则(单独包路径定义)
  • 配置负载均衡 在RestTemplate的@Bean上 加 @LoadBalanced
  • 使用RestTemplate调用服务服务

cloud-eureka-server7001/7002

  • eureka server集群配置,互相注册互相守望

cloud-provider-payment8004

  • 注册为zookeeper服务

cloud-consumerzk-order80

  • 注册为zookeeper服务,通过RestTemplate远程调用8004服务
posted @ 2022-02-15 10:38  蓝天可乐  阅读(58)  评论(0)    收藏  举报