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

微服务之配置中心Nacos

文章目录

  • 前言
  • nacos配置中心
  • 实现思路
    • RabbitMQ
    • 若依的实现
  • 实战
    • 配置nacos
      • 启动nacos
      • 创建命名空间
      • 命名空间下创建配置文件
    • 修改父级的pom文件
    • 修改bill-provider-7780模块
      • 创建bootstrap.yml文件
      • 修改application.yml
      • 创建TestConfig
    • 启动bill-provider-7780模块
  • 动态改变数据库的账号密码
    • 修改bill-provider-7780模块
      • 创建IndexController文件
    • 测试
      • 不修改nacos访问
      • 修改nacos配置
      • 修改后再次访问
  • 未完待续....

前言

如果你还没有学习OpenFeign可以看之前的博客微服务之hystrix熔断降级和负载均衡,本篇博客是接着上一篇写的。

nacos配置中心

nacos有两大块,一块是 注册中心,另一块就是我们今天要学的 配置中心。还不知道什么是注册中心的请看我之前的博客微服务之SpringCloud Alibaba(注册中心Nacos)

nacos同spring-cloud-config一样,可以作为一个配置中心,统一的来管理配置,可以配置多套环境,各个微服务可以按需到nacos配置中心拉取相关配置,且支持动态刷新@RefreshScope。

实现思路

RabbitMQ

我们将配置信息存入到nacos,然后在项目中创建config模块,然后使用RabbitMQ将配置信息推送到各个模块
在这里插入图片描述

若依的实现

我们微服务版的若依是将配置信息放到nacos,然后哪个模块使用就去调用。接下来演示这种方式。
在这里插入图片描述

实战

配置nacos

启动nacos

打开文件,路径上cmd回车。
在这里插入图片描述

输入指令。

# 后缀standalone指的是以单例的方式进行启动
.\startup.cmd -m standalone

在这里插入图片描述
浏览器进入上面的路径,输入账号密码,账号密码都是nacos,登陆之后如下
在这里插入图片描述

创建命名空间

这个命名空间你可以想成一个文件夹,后面会在这个文件夹内添加配置文件。
在这里插入图片描述
在这里插入图片描述

注意:命名空间以后在开发中可以区分为 开发、测试、生产 等环境。

结果如下:
在这里插入图片描述

命名空间下创建配置文件

  1. 在test命名空间下 创建yaml文件
    在这里插入图片描述

  2. 填写配置信息。
    在这里插入图片描述

  3. 点击发布
    在这里插入图片描述

  4. 点击确定
    在这里插入图片描述

  5. 点击返回
    在这里插入图片描述

  6. 结果如下
    在这里插入图片描述

  7. 可以查看代码示例
    在这里插入图片描述

  8. 选择SpringCloud在这里插入图片描述

修改父级的pom文件

这个是dependencies标签,而不是dependencyManagement下的dependencies标签。

<!--nacos配置中心-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--  引入bootstrap依赖 应用程序启动时加载boostrap配置文件 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId><version>3.1.4</version>
</dependency>

修改bill-provider-7780模块

创建bootstrap.yml文件

在resources下新建bootstrap.yml文件

server:port: 7780
spring:application:name: bill-provider-7780 # 服务名cloud:nacos:discovery:username: nacospassword: nacosserver-addr: 127.0.0.1:8848config:server-addr: 127.0.0.1:8848file-extension: yaml # 配置文件格式group: DEFAULT_GROUP # 配置分组namespace: e0ee261e-6c1a-4db1-bf6f-bdfdce8f89d7 # 命名空间ID, 这个从nacos中复制

注意: 使用nacos作为配置中心时,需要创建一个bootstrap.yaml和
application.yaml两个配置文件,bootstrap.yaml的优先级高于
application.yaml,加载时实现加载bootstrap.yaml中的相关配置

修改application.yml

这里的nacos的配置信息可以去除了,因为已经放到bootstrap.yml
我们只需要激活dev环境即可

我们在最后引入mname和mpwd两个自定义属性看看是否能读取nacos中的配置。
只要能读取说明我们下面mysql的配置信息就能读取到nacos中的配置信息了。

读取nacos中的配置使用${属性名}

#server:
#  port: 7780
#spring:
#  application:
#    name: bill-provider-7780 # 服务名
#  cloud:
#    nacos:
#      discovery:
#        username: nacos
#        password: nacos
#        server-addr: 127.0.0.1:8848
spring:profiles:active: dev # 激活环境# 数据库配置datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/smbms?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=trueusername: ${mysqlname} # 引入nacos中的mysql账号password: ${mysqlpwd} # 引入nacos中的mysql密码
# mybatis-plus:
mybatis-plus:mapper-locations: classpath:mappers/*.xml # 扫描mappers映射文件type-aliases-package: com.hsh.pojo # 扫描别名configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 打印sql到控制台map-underscore-to-camel-case: false # 关闭驼峰映射
mname: ${mysqlname} # 引入nacos中的mysql账号
mpwd: ${mysqlpwd} # 引入nacos中的mysql密码

创建TestConfig

在com/hsh/config文件下创建文件TestConfig,当项目启动时加载nacos中的属性

package com.hsh.billprovider7780.config;import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class TestConfig {@Value("${mname}")private String mname;@Value("${mpwd}")private String pwd;@Beanpublic void show(){System.out.println("mname:"+mname+"========"+"pwd:"+pwd);}
}

启动bill-provider-7780模块

在这里插入图片描述

动态改变数据库的账号密码

所谓的动态改变数据库的账号密码,就是当我们编辑Nacos中的配置文件信息后,会同步更改代码中xml配置文件中的值

修改bill-provider-7780模块

创建IndexController文件

我们在com/hsh/billprovider7780文件下新建controller文件
在controller文件下新建IndexController类

package com.hsh.billprovider7780.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/index")
@RefreshScope // 开启动态刷新
public class IndexController {@Value("${mname}")private String mname;@Value("${mpwd}")private String pwd;@GetMapping("/show")public String show(){return "mname:"+mname+"========"+"pwd:"+pwd;}
}

测试

不修改nacos访问

先输入http://localhost:7780/index/show进行访问
在这里插入图片描述

修改nacos配置

现在修改nacos中的密码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改后再次访问

输入http://localhost:7780/index/show进行访问
在这里插入图片描述
到此配置成功。

未完待续…

请看我的下一篇博客微服务之Gateway网关(1)

http://www.dtcms.com/a/503084.html

相关文章:

  • 好网站推荐娄底高端网站建设
  • h5游戏免费下载:保卫机器人
  • 如何解决 pip install -r requirements.txt 私有索引未设为 trusted-host 导致拒绝 问题
  • Redis(71)如何确保Redis分布式锁的可靠性?
  • docker安装php+apache
  • 数据查询网站包装设计公司排行榜
  • [JavaEE初阶]网络协议-状态码
  • 5.2 UDP (答案见原书 P230)
  • 做资讯类网站需要什么资质宁波seo推广公司电话
  • 第十五部分:信号量和读写锁
  • 无刷直流电机(BLDC)数学模型深度解析
  • 第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第二赛季--最后一题解读
  • Spring Boot 3零基础教程,WEB 开发 内容协商源码分析 默认的 HttpMessageConverter 自定义返回值格式 笔记34
  • 【嵌入式面试题】STM32F103C8T6 完整元器件解析 + 面试问题答案
  • docker入门教程--部署nginx和tomcat
  • 3.1.2 从NoSQL到图数据库的转型
  • 【洛谷】哈希表实战:5 道经典算法题(unordered_map/set 应用 + 避坑指南)
  • 昆明 网站推广营销策划公司简介
  • 医院做网站是最简单的前端吗长沙水业网站是哪家公司做的
  • GridPlayer,一个好用的多视频同步播放器
  • 用 Go 语言实现《周易》大衍筮法起卦程序
  • 2025年渗透测试面试题总结-209(题目+回答)
  • 深度学习6-激活函数-参数初始化和正则化-搭建神经网络-损失函数
  • HakcMyVM-Apaches
  • OCR文字识别前沿:PaddleOCR/DBNet++的端到端文本检测与识别
  • 例行性工作任务(定时任务)
  • C++——list链表
  • 泉州网站关键词推广费用泉州网站建设优化公司
  • 动画基础:动画里的18种基本相机角度
  • 上海做高端网站建设wordpress自动分享