SpringCloud

尚硅谷(2020)

image-20220722172555102

image-20220722210407130

image-20220722211331251

动力节点(2022)学!ng

https://www.bilibili.com/video/BV1f94y1U7AB?spm_id_from=333.337.search-card.all.click&vd_source=56102d8741b60f8a5fd28fed8a3d6e46

微服务简介

image-20220722215859402

不足

image-20220722215955601

到底什么是微服务?

image-20220722220051901

image-20220722220316636

不足,利大于弊

image-20220722220507582

设计原则

image-20220722220709948

Eureka

快速入门

搭建一个注册中心,并且让他可以提供注册的服务

eureka-server --> 注册中心,可以让别人注册,自己也可以注册

image-20220723090128172

IDEA

  1. 新建两个maven,主要为了方便查看项目

image-20220723090324812

新建server端

  1. 新建springboot项目(eureka-server)

    image-20220723090417074

  2. 选择eureka server

    image-20220723090523963

  3. 配置依赖版本

    image-20220723090610669

image-20220723090622930

  1. 修改配置文件

    application.yml

    server:
      port: 8761 # eureka默认端口
    spring:
      application:
        name: eureka-server # 应用名称,不要使用特殊字符
    
  2. 在程序入口处添加注解

    可以先修改下名字

    image-20220723091013952

    image-20220723091121864

  3. 启动项目

    image-20220723091322048

  4. 访问http://localhost:8761/

    DS Replicas:集群相关信息

    Instances currently registered with Eureka:当前在Eureka注册的实例(一个应用可以有多个实例,每个实例的id唯一)

    image-20220723092505204

新建client端

  1. 新建springboot项目(eureka-client)

    image-20220723092831390

  2. 选择eureka discovery client和spring web

    image-20220723092858921

  3. 配置依赖版本

image-20220723090610669

image-20220723090622930

  1. 修改配置文件

    application.yml

    server:
      port: 8080
    spring:
      application:
        name: eureka-client-a # 应用名称,不要使用特殊字符
    # 注册的含义是什么? 就是将自己的一些信息(什么信息)发送过去(发到哪里)
    eureka:
      client:
        service-url: # 指定注册的地址
          defaultZone: http://localhost:8761/eureka
    
  2. 在程序入口处添加注解

    image-20220723093338515

  3. 启动项目

    image-20220723093507171

  4. 查看面板http://localhost:8761/

可以按照同样方法创建eureka-client-b

image-20220723093711984

如果集群,把eureka-client-a整两个实例,怎么整?

  • 再创建一个相同项目,把端口改一下(麻烦)

  • Run/Debug Configurations

    image-20220723094038239

    image-20220723094110776

启动成功

image-20220723094213493

注册中心的配置

服务器端

首先明确几点:

  1. 注册中心需要一个服务列表(容器),里面保存应用信息

  2. 应用下线了或者挂了,需要整理

  3. 主动下线怎么处理?

  4. 被动下线怎么处理?注册中心主动剔除

  5. 应用A访问应用B,需要每次都向注册中心查么?不需要,可以在本地缓存服务列表

  6. 脏读怎么办?

  7. 如果在一个时间段内大量的应用都不和服务中心联系,怎么办,eureka-server不会剔除任何一个服务。

    宁可放过一万,都不能错杀一个。AP高可用

server:
  port: 8761 # eureka默认端口
spring:
  application:
    name: eureka-server # 应用名称,不要使用特殊字符
# eureka配置分为三大类 server client 实例的
eureka:
  server:
    eviction-interval-timer-in-ms: 10000 # 服务端间隔多少ms做定期删除的操作
    renewal-percent-threshold: 0.85 # 续约百分比,超过85%的应用没有和服务端续约,不会剔除任何一个
  instance: # 实例的配置
    instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port} # 主机名称:应用名称:端口号
    hostname: localhost # 主机名称或者服务的ip
    prefer-ip-address: true # 以ip的形式显示具体的服务信息
    lease-renewal-interval-in-seconds: 5 # 服务实例续约的时间间隔

客户端

server:
  port: 8080
spring:
  application:
    name: eureka-client-a # 应用名称,不要使用特殊字符
# 注册的含义是什么? 就是将自己的一些信息(什么信息)发送过去(发到哪里)
eureka:
  client: # 客户端的相关配置
    service-url: # 指定注册的地址
      defaultZone: http://localhost:8761/eureka
    register-with-eureka: true # 可以不向eureka-server注册
    fetch-registry: true # 是否缓存服务列表到本地
    registry-fetch-interval-seconds: 10 # 为了缓解服务列表的脏读问题,(时间越少脏读越少但性能消耗大)
  instance:
    hostname: localhost # 应用的主机名称 最好写ip
    instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}
    prefer-ip-address: true # 显示ip
    lease-renewal-interval-in-seconds: 10 # 示例续约的时间
posted @   NeverLateThanBetter  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
点击右上角即可分享
微信分享提示