温岭建设公司网站,长沙做电商网站设计,企业形象设计图片,建设网app下载安装SueWakeup 个人主页#xff1a;SueWakeup 系列专栏#xff1a;学习技术栈 个性签名#xff1a;人生乏味啊#xff0c;我欲令之光怪陆离 本文封面由 凯楠#x1f4f7; 友情提供#xff01; 目录
前言
1. 注册中心的主要作用
2. 常见的注册中心
3. Nacos 服务注册和发… SueWakeup 个人主页SueWakeup 系列专栏学习技术栈 个性签名人生乏味啊我欲令之光怪陆离 本文封面由 凯楠 友情提供 目录
前言
1. 注册中心的主要作用
2. 常见的注册中心
3. Nacos 服务注册和发现的工作原理
4. Nacos 和 Consul 在服务注册和发现方面的不同
5. 分布式配置管理
6. Nacos 的核心功能
7. 实现配置中心的动态刷新
8. Nacos 作为配置中心的优势
9. Nacos 如何支持灰度发布
10. 使用 Nacos 实现动态路由
11. 使用 Nacos 实现服务的动态权重调整 前言
Spring、Spring Boot 和 Spring Cloud 都是 Java 领域中广泛使用的框架在理解 Spring Cloud 的原理之前我们需要理清这三者之间的关系和区别。
Spring一个开源的 “轻量级” Java 开发框架提供丰富的功能和组件并且包含多个模块Spring Core、Spring MVC、Spring Data等核心思想是 IOC控制反转 和 APO面向切面编程
Spring BootSpring 团队推出的用于简化 Spring 应用开发的框架内置了许多常用的配置只需少量的配置就能创建独立运行的、生产级别的 Spring 应用
Spring Cloud基于 Spring Boot 的微服务架构开发工具为构建分布式系统提供了一整套解决方案。其核心原理涉及到 微服务架构、服务注册与发现、负载均衡、网关等多个方面 1. 注册中心的主要作用
服务发现 服务注册/反注册保存服务提供者和服务调用者的信息服务订阅/取消订阅服务调用者订阅服务提供者的信息实时推送服务路由可选具有筛选整合服务提供者的能力服务配置 配置订阅服务提供者和服务调用者订阅微服务相关的配置配置下发主动将配置推送给服务提供者和服务调用者服务健康检测 检测服务提供者的健康情况 2. 常见的注册中心
Zookeeper
分布式服务框架Apache Hadoop 的子项目
主要解决分布式应用中经常遇到的一些数据管理问题
如统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等
Eureka
在 Java 语言上基于 RESTful API 开发的服务注册与发现组件Spring Cloud Netflix 的重要组件
Consul
由 HashiCorp 基于 Go 语言开发的支持多数据中心分布式高可用的服务发布和注册服务软件采用 Raft 算法保证服务的一致性且支持健康检查
Nacos
更易于构建云原生应用的动态服务发现、配置管理和服务管理平台
注册中心 配置中心的组合提供简单易用的特性集解决微服务开发必会涉及到的 “服务注册与 发现、服务配置、服务管理” 等问题
Spring Cloud Alibaba 组件之一负责服务注册与发现
组件名语言CAP一致性算法服务健康检查对外暴露接口EurekaJavaAP无可配支持HTTPConsulGoCPRaft支持HTTP/DNSZookeeperJavaCPPaxos支持客户端NacosJavaAPRaft支持HTTP 3. Nacos 服务注册和发现的工作原理
服务注册在服务实例启动时向 Nacos 服务器发送一个注册请求。请求包含了服务的相关信息如服务名、IP地址、端口号等服务同步Nacos 服务器接收到注册信息后将这些信息存储在服务列表中并同步到其他 Nacos 节点保证服务信息的一致性服务发现当客户端需要调用服务时向Nacos 服务器请求该服务的信息。Nacos 会返回服务列表客户端可以根据这些信息找到相应的服务实例进行调用心跳检测服务实例会定期向 Nacos 发送心跳包以证明自己还 “活着” 。如果 Nacos 在配置的时间内未收到某服务实例的心跳会认为该实例不可用从服务列表中移除服务更新当服务实例的状态发送变化或有新的实例注册时Nacos 会实时更新服务信息并通知给其他服务消费者
这些功能共同保障了在微服务架构中服务的高效注册、发现和健康状态管理 4. Nacos 和 Consul 在服务注册和发现方面的不同
特性NacosConsul一致性算法AP模式侧重于可用性CP模式侧重于一致性数据存储支持将服务信息存储在内存和外部数据库中内部的 Raft 协议进行数据同步健康检查健康检查相对简单更丰富的健康检查机制如HTTP、TCP、Docker、Shell 脚本等多数据中心支持用于单数据中心支持多数据中心适合大规模的分布式系统配置管理提供服务发现和动态配置服务专注于服务发现 5. 分布式配置管理
配置中心设置在 Nacos 中设置全局配置信息可以包括数据库连接、远程服务地址等服务端集成在微服务应用中集成 Nacos Config 客户端通过配置文件指定 Nacos 服务器地址和需要订阅的配置信息动态更新当 Nacos 中的配置信息发生变化时Nacos Config 客户端会自动获取最新配置并可以动态地更新到应用中无需重启服务配置共享和隔离支持不同环境和服务的配置隔离同时也支持公共配置的共享
这种方式大大简化了微服务架构中的配置管理使得配置的更新和维护更加灵活和高效 6. Nacos 的核心功能
功能描述服务发现与注册 Nacos 支持服务的动态注册与发现这使得微服务之间能够灵活通讯极 大地增强了服务管理和扩展能力 配置管理Nacos 提供动态的配置服务允许应用在运行时动态调整配置而无需重启支持配置的版本管理和回滚以适应持续集成和持续部署CI / CD)的需要服务健康监测Nacos 实现了服务健康检查可以及时发现并处理服务实例的异常保障系统的高可用性负载均衡Nacos 支持多种负载均衡策略能够根据服务实例的运行情况自动调整请求分配提升服务处理能力和效率服务分组和命名空间支持通过分组和命名空间对服务进行逻辑隔离便于在不同环境中管理和运行服务例如开发、测试和生产环境 7. 实现配置中心的动态刷新
引入依赖在项目中引入 Spring Cloud Alibaba Nacos Config 的依赖配置文件编写在 application.properties 或 application.yml 中配置 Nacos Config 相关参数指定配置中心地址及命名空间使用 Value 或 ConfigurationProperties 注解将配置文件中的属性映射到 Java 类的字段上RefreshScope 注解在需要动态刷新配置的类上使用 RefreshScope 注解配置更新监听配置更新时 Nacos Config 客户端会自动监听到变化并触发配置的重新加载 8. Nacos 作为配置中心的优势
优势描述动态配置管理支持配置的动态变更和实时更新无需重启服务即可生效多环境支持可以方便地管理和隔离不同环境开发、测试、生产的配置集中式管理提供统一的配置管理界面方便配置的集中管理和查看支持多种配置格式支持多种数据格式如 properties、yaml、json等满足不同场景需求版本管理和回滚支持配置版本管理出现问题可以快速回滚到之前的版本微服务架构适配性特别适合在微服务架构中与 Spring Cloud 无缝集成 9. Nacos 如何支持灰度发布
方式描述流量分配通过 Nacos 配置不同的流量规则将用户流量分配到不同的服务实例版本管理通过版本标签管理不同的服务实例实现灰度发布配置管理利用 Nacos 的动态配置管理功能动态调整服务配置元数据控制使用服务元数据定义不同的服务分组实现灰度策略条件路由根据请求的参数或头信息路由到不同版本的服务实例 10. 使用 Nacos 实现动态路由
集成Gateway在项目中集成 Spring Cloud Gateway 作为 API网关Nacos 作为配置中心利用 Nacos 作为动态路由的配置中心存储路由规则动态更新路由配置 Spring Cloud Gateway 从 Nacos 动态加载路由规则当 Nacos 中的路由配置发生变化时Gateway 能够自动更新路由规则路由规则定义在 Nacos 中定义路由规则如路径匹配、重定向、熔断等验证和测试对动态路由进行测试确保路由规则的正确性和动态更新功能的有效性 11. 使用 Nacos 实现服务的动态权重调整
服务注册时指定权重在服务注册到 Nacos 时可以在服务的元数据中指定权重信息动态更新权重通过修改 Nacos 中服务元数据的权重值实现权重的动态调整负载均衡策略在服务消费者端配置负载均衡策略以支持基于权重的路由决策权重变更生效Nacos 客户端听到权重变更后自动更新本地缓存的服务信息实现权重调整的即时生效服务调用适应服务消费者在进行服务调用时会根据最新的权重信息选择服务实例