首页 > 其他分享 >1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>

时间:2023-07-24 21:04:00浏览次数:34  
标签:负载 服务 SpringCloud 配置管理 Nacos nacos eureka Eureka


微服务技术栈

  • 一、微服务 介绍了解
  • 1 架构结构案例
  • 与 springboot 兼容关系
  • 拆分案例
  • 拆分
  • 服务拆分-服务远程调用
  • 2 eureka注册中心
  • Eureka-提供者与消费者
  • Eureka-eureka原理分析
  • Eureka-搭建eureka服务
  • Eureka-服务注册
  • Eureka-服务发现
  • 3 Ribbon组件 负载均衡
  • Ribbon-负载均衡原理
  • Ribbon-负载均衡策略
  • Ribbon-饥饿加载
  • 4 nacos 阿里注册中心
  • Nacos-快速入门
  • Nacos-服务多级存储模型
  • Nacos-NacosRule负载均衡
  • Nacos-服务实例的权重设置
  • Nacos-环境隔离
  • Nacos和Eureka的对比
  • Nacos实现配置管理
  • Nacos配置管理-微服务配置拉取
  • Nacos配置管理-配置热更新
  • Nacos配置管理-多环境配置共享
  • Nacos配置管理-nacos集群搭建

一、微服务 介绍了解

分布式架构的一种
把服务进行 拆分
springcloud 解决了 服务拆分过程中的 治理问题
与单体应用 进行区分
(单体架构 把业务所有功能集中开发,打成一个包部署)

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡

每个模块独立开发和部署(服务集群)

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_02

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_03

服务之间互相调用

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_04


出现分布式技术

Webservice

ESB

Hession

Dubbo异步通信 消息队列(秒杀)

敏捷开发思想

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_05


高内聚低耦合微服务 + 持续集成

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_06

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_07


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_08


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_09

1 架构结构案例

微服务方案 技术框架落地
eg springcloud + 阿里dubbo

2012 dubbo 开源 (“半吊子”微服务)

2015-2017 springcloud(整合)
封装了Feign客户端 发http 请求 Restful接口
Spring Cloud Bus 自动通知 热更新

实现了同样的 接口规范

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_10

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_11

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_12


springcloud 模块

  • 统一配置管理
  • 服务注册发现
  • 请求路由
  • 服务远程调用
  • 负载均衡
  • 断路


    基于 springboot 自动装配

与 springboot 兼容关系

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_13


Hoxton SR10 + boot2.3.x

拆分案例

拆分

功能模块进行拆分

单一职责

即 不同微服务 不重复开发相同业务

数据独立

不要访问其他微服务数据库

业务接口

每个模块将自己的业务暴露为接口,供其他服务调用

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_14


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_15


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_16


且没法关联查询

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_17


将工程文件夹放到 IDE 的 工作空间

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_18

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_19


可以看到项目所有的微服务

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_20

项目结构
父工程(主要定义了依赖版本)

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_21

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_22


数据分离

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_23


业务逻辑

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_24


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_25


返回订单对象

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_26


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_27


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_28


符合 微服务 拆分 的单一职责

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_29

服务拆分-服务远程调用

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_30

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_31


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_32

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_33


spring的 HTTP 请求工具

用Bean的方式 把RestTemplate 注册 为spring容器 的 对象

就可以在任何地方 以 注入的方式 来用

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_34


Bean的注入 只能放在 配置类里面

带有 main的 启动类 本身也是配置类在这创建 RestTemplate对象

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_35


跟入 orderservice

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_36


先把 resttemplate注入进spring 容器里来

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_37


http请求 返回 json 但在这里需要一个user对象

resttemplate 会 给让你输入一个 返回对象

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_38

2 eureka注册中心

Eureka-提供者与消费者

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_39


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_40


概念 是 业务中谁对谁而言

既可以是 提供 也可以是 消费者

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_41

Eureka-eureka原理分析

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_42


ip 端口 是 硬编码在 代码中的

不方便 环境部署

集群 不好布置

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_43

注册中心 (记录管理微服务)

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_44


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_45


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_46

Eureka-搭建eureka服务

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_47


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_48


starter -----spring boot里面的 自动装配

注解是 eureka server 自动装配的 开关创建 maven模块

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_49


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_50


父工程pom 已经把 版本依赖做好了

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_51


所有组件版本信息 点进去看

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_52


加个 springboot注解

psvm

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_53


加上 eureka 自动装配的 开关注解(启动类 上 做注解)

新建 配置文件

eureka 集群 所以 自己也将自己的 微服务 注册

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_54


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_55


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_56

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_57


注册到eureka 的 实例windows 显示的 是 计算机名 本来是 ip

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_58

Eureka-服务注册

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_59


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_60


编辑eureka地址信息

yml文件 不许 出现两个 根名称

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_61


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_62


启动两个实例

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_63

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_64


-D 参数

yml 文件 内的 server.port

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_65


实例列表

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_66


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_67

Eureka-服务发现

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_68


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_69


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_70


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_71


查看 order services 是 负载均衡 走的 哪个

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_72


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_73

3 Ribbon组件 负载均衡

Ribbon-负载均衡原理

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_74


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_75


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_76


LoadBalancer 标记 拦截 实现 http 请求 接口

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_77


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_78


接口定义的 方法名字 intercept

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_79


同样实现了intercept 方法

下断点

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_80


取得主机名

去 做 服务拉取

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_81


Ribbon load balamcer对象

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_82


步入 这个 execute 方法

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_83

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_84


把这个 service id 交给 getloadBanlancer处理

得到 loadbalancer 对象动态服务列表 负载均衡器

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_85


在这个对象里面

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_86


就拉取到了 服务列表整个步骤 根据 服务名称 拉取 服务列表

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_87


getserver 开始负载均衡

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_88


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_89


进入 getserver 方法

选择 server 步入

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_90


找一个 super 父亲的 选择

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_91


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_92


走到了 rule 的 选择要有一个 规则 从 动态 server 里 选

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_93


这个 IRule 是一个 接口I

规则接口 那就会有实现类IDEA Ctrl H 查看实现类

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_94


比如

轮询负载均衡

随机默认规则 ZoneAvoidance

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_95


返回来了 选择的 8081

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_96

Ribbon-负载均衡策略

IRule 接口 继承关系 图

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_97


ZoneAvoidance 这个 它爷爷 也是 轮询

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_98


在 服务 注册 时 可以 设置 zone的 值

(杭州,上海)

配置类内 修改 规则 用 Irule 的 bean 作为 一个 对象 注入到 spring 容器

可以 实现 Irule 各种类型

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_99


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_100


全局的

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_101


针对 某个 微服务的 配置

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_102

Ribbon-饥饿加载

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_103


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_104

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_105


创建 load balance Client 还要做 服务拉取

时间较长

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_106


拉取 时 创建了 动态 serverlist load balancer 等 耗费时间 - 懒加载

第二次 server list 会 缓存到内存中

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_107


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_108


与 spring boot 一样

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_109


随着 tomcat 启动 就完成了

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_110

springmvc 容器 的 初始化

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_111


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_112

4 nacos 阿里注册中心

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_113

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_114


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_115


服务注册 与发现

分布式 配置

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_116


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_117

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_118


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_119


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_120


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_121

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_122


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_123

8848 默认端口

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_124


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_125

-m 模式 单启动

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_126

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_127

Nacos-快速入门

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_128


通用 在这里 定义了 接口规范定义了服务发现 与 服务注册

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_129


Eureka 和 nacos 都要遵循 这些接口

所以 服务者 消费者 代码 不用变
需要 更改 依赖 和 地址

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_130

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_131

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_132

添加 父管理依赖
添加 服务注册 启动器依赖

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_133

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_134

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_135

添加yml 地址

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_136

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_137

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_138

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_139

Nacos-服务多级存储模型

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_140

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_141

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_142


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_143


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_144

Nacos-NacosRule负载均衡

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_145

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_146


nacos 地区 随机 选择 服务

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_147


如果 本地 没有 服务 访问 外地 同服务 同时 警告

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_148

Nacos-服务实例的权重设置

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_149


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_150

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_151


调整成0 时 权重 , 不会被 访问平滑升级业务

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_152

Nacos-环境隔离

注册中心 - 数据中心 对 服务 进行 隔离

命名空间 - group 属性

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_153

服务(集群)–下一级–》 实例

对实例的划分 是 对业务 进行的 划分 (地域)

命名空间 是 对于 开发生产 测试 环境 的划分

(比如 把 业务相似度 比较高的 服务 放在 一个 分组)

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_154

订单—支付 放一块

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_155


默认 public

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_156


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_157

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_158


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_159


添加 命名 空间的 ID

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_160


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_161

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_162

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_163

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_164

Nacos和Eureka的对比

会在 动态服务 loadbalancer 里拉取 缓存 server 列表 周期30s

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_165

区别 在于 提供者的 健康检测

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_166

划分 提供者 为 临时 实例

和非临时实例

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_167


临时 实例 会 直接剔除

非临时实例 会 等待 康复

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_168


如果 提供者 挂掉了 nacos 主动 推送 变更 消息

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_169

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_170

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_171


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_172

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_173


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_174


非临时实例 不会被 剔除掉 等待 复活

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_175


nacos 强调 AP 数据的 可用性

CP 强调 可靠性 和 一致性

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_176


Nacos 配置管理 功能

Feign 声明式远程调用 比较 Resttemplate

Nacos实现配置管理

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_177


配置文件 - 关联服务重启 - (热更新 不用重启 就能 配置 生效)配置管理服务 记录核心配置

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_178

读取配置 结合 本地配置

DataID 服务名称+ profile运行环境名 dev/test/prod.yaml

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_179


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_180

模版 类型

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_181

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_182

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_183

Nacos配置管理-微服务配置拉取

![在这里插入图片描述]()

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_184


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_185

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_186


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_187


去掉重复配置

用 Value 注解 读取配置

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_188

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_189


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_190


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_191


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_192

Nacos配置管理-配置热更新

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_193


属性刷新

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_194

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_195

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_196

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_197

配置 自动加载 注解

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_198


定义一个 成员变量

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_199


添加 data注解 getset 方法用 component 把这个类变成 spring 容器的 一个 bean

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_200


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_201


注入进来 用getdateformat 获取

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_202

Nacos配置管理-多环境配置共享

开发生产测试 环境 配置值 一致

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_203

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_204


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_205

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_206


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_207


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_208


另起一个 spring 测试 微服务 环境

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_209


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_210


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_211


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_212


配置文件 的 优先级

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_213


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_214

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_215

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_216


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_217

以 userservice 为准

共享 与 有环境的 以 环境为准

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_218

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_219

Nacos配置管理-nacos集群搭建

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_220


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_221


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_222

nginx 有 反向代理 和 负载均衡 的 功能

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_223

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_224


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_225


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_226

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_227

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_228


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_229

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_230


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_231


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_232

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_233


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_234

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_235


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_236

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_237


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_238

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_239


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_240


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_241


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_242


粘贴到 http 的 内部

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring_243

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_244


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_245

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_spring cloud_246

1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_微服务_247


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_负载均衡_248


1分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>_分布式_249


标签:负载,服务,SpringCloud,配置管理,Nacos,nacos,eureka,Eureka
From: https://blog.51cto.com/u_12364708/6839318

相关文章

  • 记一次nacos注册中心搭建步骤(入门)
    1、下载nacos本操作步骤使用的是稳定版本2.1.1 下载地址:https://github.com/alibaba/nacos/releases/tag/2.1.1百度网盘下载地址:链接:https://pan.baidu.com/s/1w0CUkIpDJ8jI3N2FH3hKWw?pwd=af53提取码:af532、本次操作系统是linux(centos7) 上传到服务器指......
  • springCloud五大核心组件「建议收藏」
    大家好,又见面了。1.springCloud五大组件运行流程2.springcloud简单介绍SpringCloud是微服务架构的集大成者,将一系列优秀的组件进行了整合。基于springboot构建,对我们熟悉spring的程序员来说,上手比较容易。通过一些简单的注解,我们就可以快速的在应用中配置一下常用模块并构建庞......
  • Nacos2作为Dubbo3的配置中心踩坑总结
    本文阐述问题所使用的组件版本分别是,Dubbo:3.2.4,Nacos服务端:2.2.3,Nacos客户端:2.2.4。在Dubbo3的官方文档中,关于如何使用Nacos作为配置中心的详细介绍参考:Nacos。但非常沮丧的是我参照文档的描述,并没有成功将Nacos2配置成为Dubbo3项目的配置中心。期间也看到有人在github上提出相......
  • Nacos搭建单机实例
    Nacos是阿里开源的微服务架构组件,既可以用作服务注册中心,也可用作配置中心。虽然Nacos的官方文档也有关于如何部署的说明,但是个人觉得不够详细和连续,故本文将阐述在单机环境实际搭建Nacos环境的详细步骤已经遇到的一些问题。环境准备由于安装的是单机环境,且需要使用MySQL数据库......
  • AspnetCore接入Nacos配置中心
    一、什么是nacosNacos/nɑ:kəʊs/是DynamicNamingandConfigurationService的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服......
  • SpringCloud-Nacos配置中心实现原理(转)
    原文:https://blog.csdn.net/Zong_0915/article/details/113089265作者:Zong_0915 一.NacosConfig实现原理解析首先,NacosConfig针对配置的管理提供了4种操作):获取配置,从NacosConfigServer中读取配置。监听配置:订阅感兴趣的配置,当配置发生变化的时候可以收到一个事件。发布......
  • nacos适配达梦、瀚高、人大金仓数据库及部分源码探究
    一.插件实现1.插件目录结构2.pom依赖<dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-datasource-plugin</artifactId><version>2.2.4</version></d......
  • SpringCloud实现浏览器端大文件分块上传
    ​ 1.创建SpringBoot项目本项目采用springboot+mybatis-plus+jquery+thymeleaf组成2.项目流程图 ​编辑3.在pom中添加以下依赖12345678910111213141516171819202122232425262728293031<!--lombok依赖-->  <dependency> ......
  • springcloud stream kafka实践
    SpringCloudStream是SpringCloud提供的一个用于构建消息驱动的微服务的框架。它简化了消息系统(如Kafka,rabbitMQ)的使用和集成,使开发者可以更专注于业务逻辑的实现。项目结构如下 一、移入依赖创建一个springbootweb项目引入依赖1<properties>2<java.version>1......
  • springcloud - kafka实践
    springcloud可以通过KafkaTemplate来发布消息,让后消费者使用来订阅@KafkaListener主题消息。一、添加依赖1<dependencyManagement>2<dependencies>3<dependency>4<groupId>org.springframework.cloud</groupId>5<artifactId&g......