当前位置: 首页 > news >正文

SpringCloudAlibaba Nacos配置中心与服务发现

目录

1.配置

1.1配置的特点

只读

伴随应用的整个生命周期

多种加载方式

配置需要治理

1.2配置中心

 2.Nacos简介

2.1特性

服务发现与服务健康检查

动态配置管理

动态DNS服务

服务和元数据管理

3.服务发现


1.配置

应用程序在启动和运行的时候往往需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数、启动参数等。

1.1配置的特点

只读

对于程序员是只读的,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置

伴随应用的整个生命周期

在启动时通过读取配置来初始化,在运行时根据配置调整行为。例如启动时需要读取服务的端口号、系统在运行过程中需要读取定制策略执行定时任务。

多种加载方式

常见的有程序内部的hard code,配置文件,环境变量,启动参数,基于数据库等。

配置需要治理

同一份程序在不同的环境(开发、测试、生产),不同的集群(如不同的数据中心)京城需要有不同的配置,所以需要有完善的环境,集群配置管理。

1.2配置中心

在微服务架构中,当系统从一个单体应用拆分成分布式系统上一个个服务节点后,配置文件必须跟着迁移(分隔),这样配置就分散。

配置中心将配置从各个应用中分离出来,对配置进行统一管理,应用自身不需要自己去配置管理。

 2.Nacos简介

阿里的开源产品,针对微服务架构中的服务发现、配置管理、服务治理的总和型解决方案。

官网:https://nocas.io/

2.1特性

四大功能

服务发现与服务健康检查

nacos使服务更容易注册,并通过DNS或HTTP接口发现其他服务,Nacos还提供服务的实时检查,防止向不健康的主机或服务实例发送请求。

动态配置管理

动态配置服务允许您在所有环境中以集中和动态的方式管理所有服务的配置。Nacos消除了在更新配置时重新部署应用程序,这使配置的更改更加高效和灵活。

自动定义扩展的Data Id配置 ,内部配置优先级最高,配置优先级:扩展的Data Id中 n 越大优先级越大。bootstrap.yml的加载顺序优先于application.yml。

完全关闭配置:通过设置spring.cloud.nacos.config.enable=false来完全关闭Spring Cloud Nacos Config。

nacos可以集群部署。

@Value注解是Spring框架提供的注解,用于获取配置文件中的值,可以用于获取任意配置文件(如application.properties、application.yml)中的配置项。使用@Value注解时,需要指定配置项的完整路径,例如:@Value("${config.key}")。

nacos启动命令(Windows):startup.cmd -m standalone

打开浏览器输入 http://localhost:8848/nacos,即可访问服务, 默认账号密码是nacos、nacos

动态DNS服务

Nacos提供基于DNS 协议的服务发现能力,旨在支持异构语言的服务发现,支持将注册在Nacos上的服务以域名的方式暴露端点,,让三方应用方便的查阅及发现。

服务和元数据管理

Nacos能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略。

3.服务发现

微服务架构中,整个系统会按职责能力划分为多个服务,通过服务之间协作来实现业务目标。这样在我们的代码中就需要进行服务间的远程调用,服务的消费方要调用服务的生产方,为了完成一次请求,消费方需要知道服务生产方的网络位置(IP地址和端口号)。

·

相关文章:

  • 为企业提升销售工作效率的工作手机管理系统
  • C/C++ list模拟
  • 谷歌优化指南:提升网站排名的关键要素与方法
  • ENSP实现防火墙区域策略与用户管理
  • 71.WEB渗透测试-信息收集- WAF、框架组件识别(11)
  • 迎接AI新时代:GPT-5的技术飞跃与未来展望
  • C++入门基础
  • 国密证书(gmssl)在Kylin Server V10下安装
  • bi项目笔记
  • ZooKeeper实现分布式锁
  • 浅析 VO、DTO、DO、PO 的概念
  • Oracle透明数据加密:数据泵文件导出
  • 5.SpringBoot核心源码-启动类源码分析
  • Redis 7.x 系列【23】哨兵模式
  • 进程信号
  • 《深入 React 技术栈》
  • android图片蒙层
  • HomeBrew常规使用教程
  • Java 多线程编程之:notify 和 wait 用法
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • miaov-React 最佳入门
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • React+TypeScript入门
  • springMvc学习笔记(2)
  • TypeScript实现数据结构(一)栈,队列,链表
  • 简单基于spring的redis配置(单机和集群模式)
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 入门级的git使用指北
  • 我感觉这是史上最牛的防sql注入方法类
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 智能合约开发环境搭建及Hello World合约
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • #if #elif #endif
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • (AngularJS)Angular 控制器之间通信初探
  • (C++20) consteval立即函数
  • (C++二叉树05) 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (void) (_x == _y)的作用
  • (二)Eureka服务搭建,服务注册,服务发现
  • (一)appium-desktop定位元素原理
  • .NET Reactor简单使用教程
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET/C# 使用反射注册事件
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • .project文件
  • .skip() 和 .only() 的使用
  • /usr/bin/env: node: No such file or directory
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • [.NET]桃源网络硬盘 v7.4
  • [20150321]索引空块的问题.txt
  • [20181219]script使用小技巧.txt
  • [20190416]完善shared latch测试脚本2.txt
  • [3D基础]理解计算机3D图形学中的坐标系变换