SpringCloud
尚硅谷(2020)
动力节点(2022)学!ng
微服务简介
不足
到底什么是微服务?
不足,利大于弊
设计原则
Eureka
快速入门
搭建一个注册中心,并且让他可以提供注册的服务
eureka-server --> 注册中心,可以让别人注册,自己也可以注册
IDEA
- 新建两个maven,主要为了方便查看项目
新建server端
-
新建springboot项目(eureka-server)
-
选择eureka server
-
配置依赖版本
-
修改配置文件
application.yml
server: port: 8761 # eureka默认端口 spring: application: name: eureka-server # 应用名称,不要使用特殊字符
-
在程序入口处添加注解
可以先修改下名字
-
启动项目
-
访问http://localhost:8761/
DS Replicas:集群相关信息
Instances currently registered with Eureka:当前在Eureka注册的实例(一个应用可以有多个实例,每个实例的id唯一)
新建client端
-
新建springboot项目(eureka-client)
-
选择eureka discovery client和spring web
-
配置依赖版本
-
修改配置文件
application.yml
server: port: 8080 spring: application: name: eureka-client-a # 应用名称,不要使用特殊字符 # 注册的含义是什么? 就是将自己的一些信息(什么信息)发送过去(发到哪里) eureka: client: service-url: # 指定注册的地址 defaultZone: http://localhost:8761/eureka
-
在程序入口处添加注解
-
启动项目
-
查看面板http://localhost:8761/
可以按照同样方法创建eureka-client-b
如果集群,把eureka-client-a整两个实例,怎么整?
再创建一个相同项目,把端口改一下(麻烦)
Run/Debug Configurations
启动成功
注册中心的配置
服务器端
首先明确几点:
注册中心需要一个服务列表(容器),里面保存应用信息
应用下线了或者挂了,需要整理
主动下线怎么处理?
被动下线怎么处理?注册中心主动剔除
应用A访问应用B,需要每次都向注册中心查么?不需要,可以在本地缓存服务列表
脏读怎么办?
如果在一个时间段内大量的应用都不和服务中心联系,怎么办,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 # 示例续约的时间
本文来自博客园,作者:NeverLateThanBetter,转载请注明原文链接:https://www.cnblogs.com/do-it-520/p/SpringCloud.html
韶华易逝,不能虚度年华。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器