搭建nacos环境(保姆级教程)

这篇具有很好参考价值的文章主要介绍了搭建nacos环境(保姆级教程)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2.2.1 服务发现中心

根据上节讲解的网关的架构图,要使用网关首先搭建Nacos。

首先搭建Nacos服务发现中心。

在搭建Nacos服务发现中心之前需要搞清楚两个概念:namespace和group

namespace:用于区分环境、比如:开发环境、测试环境、生产环境。

group:用于区分项目,比如:xuecheng-plus项目、xuecheng2.0项目

首先在nacos配置namespace:

登录Centos,启动Naocs,使用sh /data/soft/restart.sh将自动启动Nacos。

访问:http://192.168.101.65:8848/nacos/

账号密码:nacos/nacos

登录成功,点击左侧菜单“命名空间”进入命名空间管理界面,

搭建nacos环境(保姆级教程)

点击“新建命名空间”,填写命名空间的相关信息。如下图:

搭建nacos环境(保姆级教程)

使用相同的方法再创建“测试环境”、"生产环境"的命名空间。

搭建nacos环境(保姆级教程)

搭建nacos环境(保姆级教程)

创建成功,如下图:

搭建nacos环境(保姆级教程)

这里创建具体班级的命名空间,假如创建1010班级的命名空间,如下:

搭建nacos环境(保姆级教程)

首先完成各服务注册到Naocs,下边将内容管理服务注册到nacos中。

1) 在xuecheng-plus-parent中添加依赖管理
XML com.alibaba.cloud spring-cloud-alibaba-dependencies ${spring-cloud-alibaba.version} pom import
2)在内容管理模块的接口工程、系统管理模块的接口工程中添加如下依赖
XML com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery
3)配置nacos的地址

在系统管理的接口工程的配置文件中配置如下信息:

YAML#微服务配置 spring: application: name: system-service cloud: nacos: server-addr: 192.168.101.65:8848 discovery: namespace: dev group: xuecheng-plus-project

在内容管理的接口工程的配置文件中配置如下信息:

YAMLspring: application: name: content-service cloud: nacos: server-addr: 192.168.101.65:8848 discovery: namespace: dev group: xuecheng-plus-project
4)重启内容管理服务、系统管理服务。

待微服务启动成功,进入Nacos服务查看服务列表

搭建nacos环境(保姆级教程)

在 “开发环境” 命名空间下有两个服务实例。微服务在Nacos注册成功。

点击其它一个微服务的“详情”

搭建nacos环境(保姆级教程)

通过上图可以查看微服务实例的地址。

2.2.2 配置中心

2.2.2.1 配置三要素

搭建完成Nacos服务发现中心,下边搭建Nacos为配置中心,其目的就是通过Nacos去管理项目的所有配置。

先将项目中的配置文件分分类:

1、每个项目特有的配置

是指该配置只在有些项目中需要配置,或者该配置在每个项目中配置的值不同。

比如:spring.application.name每个项目都需要配置但值不一样,以及有些项目需要连接数据而有些项目不需要,有些项目需要配置消息队列而有些项目不需要。

2、项目所公用的配置

是指在若干项目中配置内容相同的配置。比如:redis的配置,很多项目用的同一套redis服务所以配置也一样。

另外还需要知道nacos如何去定位一个具体的配置文件,即配置的三要素:namespace、group、dataid.

1、通过namespace、group找到具体的环境和具体的项目。

2、通过dataid找到具体的配置文件,dataid有三部分组成,

比如:content-service-dev.yaml配置文件 由(content-service)-(dev). (yaml)三部分组成

content-service:第一部分,它是在application.yaml中配置的应用名,即spring.application.name的值。

dev:第二部分,它是环境名,通过spring.profiles.active指定,

Yaml: 第三部分,它是配置文件 的后缀,目前nacos支持properties、yaml等格式类型,本项目选择yaml格式类型。

所以,如果我们要配置content-service工程的配置文件:

在开发环境中配置content-service-dev.yaml

在测试环境中配置content-service-test.yaml

在生产环境中配置content-service-prod.yaml

2.2.2.2 配置content-service

下边以开发环境为例对content-service工程的配置文件进行配置,进入nacos,进入开发环境。

搭建nacos环境(保姆级教程)

点击 加号,添加一个配置

搭建nacos环境(保姆级教程)

输入data id、group以及配置文件内容。

为什么没在nacos中配置下边的内容 ?

YAMLspring: application: name: content-service

因为刚才说了dataid第一部分就是spring.application.name,nacos 客户端要根据此值确定配置文件 名称,所以spring.application.name不在nacos中配置,而是要在工程的本地进行配置。

本地配置文件现在是application.yaml需要修改为bootstrap.yaml,因为SpringBoot读取配置文件 的顺序如下:

搭建nacos环境(保姆级教程)

所以在content-service工程 中添加bootstrap.yaml,内容如下:

YAMLspring: application: name: content-service cloud: nacos: server-addr: 192.168.101.65:8848 discovery: namespace: ${spring.profiles.active} group: xuecheng-plus-project config: namespace: ${spring.profiles.active} group: xuecheng-plus-project file-extension: yaml refresh-enabled: true #profiles默认为dev profiles: active: dev

最后删除原来的application.yaml。

在内容管理模块的接口工程和service工程、系统管理的接口工程和service工程配置依赖:

XML com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config

配置完成,运行content-service工程 的单元测试文件,能否正常测试。

通过运行观察控制台打印出下边的信息:

Plain Text[NacosRestTemplate.java:476] - HTTP method: POST, url: http://192.168.101.65:8848/nacos/v1/cs/configs/listener, body: {Listening-Configs=content-service.yaml?xuecheng-plus-project??dev?content-service-dev.yaml?xuecheng-plus-project?88459b1483b8381eccc2ef462bd59182?dev?content-service?xuecheng-plus-project??dev?, tenant=dev}

NacosRestTemplate.java通过Post方式去nacos读取配置信息。

跟踪单元测试方法可以正常读取数据库的数据,说明从nacos读取配置信息正常。

2.2.2.3配置content-api

以相同的方法配置content-api工程的配置文件,在nacos中的开发环境中配置content-api-dev.yaml,内容如下:

YAMLserver: servlet: context-path: /content port: 63040 # 日志文件配置路径 logging: config: classpath:log4j2-dev.xml # swagger 文档配置 swagger: title: “学成在线内容管理系统” description: “内容系统管理系统对课程相关信息进行业务管理数据” base-package: com.xuecheng.content enabled: true version: 1.0.0

在content-api工程 的本地配置bootstrap.yaml,内容如下:

YAML#server: # servlet: # context-path: /content # port: 63040 #微服务配置 spring: application: name: content-api cloud: nacos: server-addr: 192.168.101.65:8848 discovery: namespace: ${spring.profiles.active} group: xuecheng-plus-project config: namespace: s p r i n g . p r o f i l e s . a c t i v e g r o u p : x u e c h e n g − p l u s − p r o j e c t f i l e − e x t e n s i o n : y a m l r e f r e s h − e n a b l e d : t r u e e x t e n s i o n − c o n f i g s : − d a t a − i d : c o n t e n t − s e r v i c e − {spring.profiles.active} group: xuecheng-plus-project file-extension: yaml refresh-enabled: true extension-configs: - data-id: content-service- spring.profiles.activegroup:xuechengplusprojectfileextension:yamlrefreshenabled:trueextensionconfigs:dataid:contentservice{spring.profiles.active}.yaml group: xuecheng-plus-project refresh: true profiles: active: dev # 日志文件配置路径 logging: config: classpath:log4j2-dev.xml # swagger 文档配置 swagger: title: “学成在线内容管理系统” description: “内容系统管理系统对课程相关信息进行业务管理数据” base-package: com.xuecheng.content enabled: true version: 1.0.0

注意:因为api接口工程依赖了service工程 的jar,所以这里使用extension-configs扩展配置文件 的方式引用service工程所用到的配置文件。

YAML extension-configs: - data-id: content-service-${spring.profiles.active}.yaml group: xuecheng-plus-project refresh: true

如果添加多个扩展文件,继续在下添加即可,如下:

YAML extension-configs: - data-id: content-service-${spring.profiles.active}.yaml group: xuecheng-plus-project refresh: true - data-id: 填写文件 dataid group: xuecheng-plus-project refresh: true

启动content-api工程,查询控制台是否打印出了请求nacos的日志,如下:

Bash[NacosRestTemplate.java:476] - HTTP method: POST, url: http://192.168.101.65:8848/nacos/v1/cs/configs/listener

并使用Httpclient测试课程查询接口是否可以正常查询。

2.2.3 公用配置

还有一个优化的点是如何在nacos中配置项目的公用配置呢?

nacos提供了shared-configs可以引入公用配置。

在content-api中配置了swagger,所有的接口工程 都需要配置swagger,这里就可以将swagger的配置定义为一个公用配置,哪个项目用引入即可。

单独在xuecheng-plus-common分组下创建xuecheng-plus的公用配置,进入nacos的开发环境,添加swagger-dev.yaml公用配置

搭建nacos环境(保姆级教程)

删除接口工程中对swagger的配置。

项目使用shared-configs可以引入公用配置。在接口工程的本地配置文件 中引入公用配置,如下:

YAMLspring: application: name: content-api cloud: nacos: server-addr: 192.168.101.65:8848 discovery: namespace: dev group: xuecheng-plus-project config: namespace: dev group: xuecheng-plus-project file-extension: yaml refresh-enabled: true extension-configs: - data-id: content-service- s p r i n g . p r o f i l e s . a c t i v e . y a m l g r o u p : x u e c h e n g − p l u s − p r o j e c t r e f r e s h : t r u e s h a r e d − c o n f i g s : − d a t a − i d : s w a g g e r − {spring.profiles.active}.yaml group: xuecheng-plus-project refresh: true shared-configs: - data-id: swagger- spring.profiles.active.yamlgroup:xuechengplusprojectrefresh:truesharedconfigs:dataid:swagger{spring.profiles.active}.yaml group: xuecheng-plus-common refresh: true - data-id: logging-${spring.profiles.active}.yaml group: xuecheng-plus-common refresh: true profiles: active: dev

再以相同 的方法配置日志的公用配置。

搭建nacos环境(保姆级教程)

在接口工程和业务工程,引入loggin-dev.yaml公用配置文件

搭建nacos环境(保姆级教程)

配置完成,重启content-api接口工程,访问http://localhost:63040/content/swagger-ui.html 查看swagger接口文档是否可以正常访问,查看控制台log4j2日志输出是否正常。

2.2.4 系统管理配置

按照上边的方法 自行将系统管理服务的配置信息在nacos上进行配置。

2.2.5 配置优先级

到目前为止已将所有微服务的配置统一在nacos进行配置,用到的配置文件有本地的配置文件 bootstrap.yaml和nacos上的配置文件,引入配置文件的形式有:

1、通过dataid方式引入

2、以扩展配置文件方式引入

3、以共享配置文件 方式引入

下边测试这几种配置文件方式的优先级。

我们使用内容管理服务中的配置文件,首先在共享配置文件 swagger-dev.yaml中配置四个配置项,如下:

搭建nacos环境(保姆级教程)

配置完成发布。

下边在content-api工程的启动类中添加如下代码读取这四个配置项的值

Javapackage com.xuecheng; import com.spring4all.swagger.EnableSwagger2Doc; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; @EnableSwagger2Doc @SpringBootApplication public class ContentApplication { @Value(“ t e s t c o n f i g . a " ) S t r i n g a ; @ V a l u e ( " {test_config.a}") String a; @Value(" testconfig.a")Stringa;@Value("{test_config.b}”) String b; @Value(“ t e s t c o n f i g . c " ) S t r i n g c ; @ V a l u e ( " {test_config.c}") String c; @Value(" testconfig.c")Stringc;@Value("{test_config.d}”) String d; @Bean public Integer getTest(){ System.out.println(“a=”+a); System.out.println(“b=”+b); System.out.println(“c=”+c); System.out.println(“d=”+d); return new Integer(1); } public static void main(String[] args) { SpringApplication.run(ContentApplication.class, args); } }

启动content-api工程,在return new Integer(1);处打断点,运行到断点处,如下:

搭建nacos环境(保姆级教程)

这说明已经成功读取到 四个配置项的值。

下边在content-api工程的扩展配置文件 conent-service-dev.yaml中配置三个配置项,如下:

搭建nacos环境(保姆级教程)

再次重启content-api工程,在return new Integer(1);处打断点,运行到断点处,如下:

搭建nacos环境(保姆级教程)

从结果可以看出,扩展配置文件比共享配置文件优先级高。

下边继续content-api-dev.yaml中配置两个配置项,如下:

搭建nacos环境(保姆级教程)

再次重启内容管理接口工程,在return new Integer(1);处打断点,运行到断点处,如下:

搭建nacos环境(保姆级教程)

从结果可以看出,通过工程的应用名找到配置文件 content-api-dev.yaml优先级比扩展配置文件 高。

下边我们在content-api工程的本地配置文件bootstrap.yaml中配置如下:

YAMLtest_config: a: 4a b: 4b c: 4c d: 4d

再次重启内容管理接口工程,在return new Integer(1);处打断点,运行到断点处,如下:

搭建nacos环境(保姆级教程)

这说明本地配置文件配置的内容没有起作用,原因是nacos配置文件中的相同的配置项覆盖了本地的配置项。

到这可以总结各各配置文件 的优先级:项目应用名配置文件 > 扩展配置文件 > 共享配置文件 > 本地配置文件。

有时候我们在测试程序时直接在本地加一个配置进行测试,这时我们想让本地最优先,可以在nacos配置文件 中配置如下即可实现:

YAML#配置本地优先 spring: cloud: config: override-none: true

再次重启content-api工程,在return new Integer(1);处打断点,运行到断点处,如下:

搭建nacos环境(保姆级教程)

可以看出此时本地配置最优先。

2.2.6 导入配置文件

课程资料中提供了系统用的所有配置文件nacos_config_export.zip,下边将nacos_config_export.zip导入nacos。

进入具体的命名空间,点击“导入配置”

搭建nacos环境(保姆级教程)

打开导入窗口

搭建nacos环境(保姆级教程)

相同的配置选择覆盖配置。

点击“上传文件”选择nacos_config_export.zip开始导入。文章来源地址https://www.toymoban.com/news/detail-434921.html

到了这里,关于搭建nacos环境(保姆级教程)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JSP环境搭建教程(保姆级!!)

    Java Server Pages (JSP) 是一种由 Sun Microsystems 开发的用于创建动态网页的技术。它是 Java EE (Java Enterprise Edition) 技术的一部分,允许开发者在 HTML 中嵌入 Java 代码,从而实现动态内容的生成。 JSP 主要由两部分组成:静态数据和 JSP 元素。静态数据可以是任何类型的文本,包括 HT

    2024年02月13日
    浏览(197)
  • 微服务环境搭建:docker+nacos单机

    nacos需要连接mysql,持久化相关配置。 http://ip地址:8848/nacos 账号密码 默认:nacos/nacos

    2024年01月25日
    浏览(38)
  • Appium自动化环境搭建保姆级教程

    APP自动化测试运行环境比较复杂,稍微不注意安装就会失败。我见过不少朋友,装了1个星期,Appium 的运行环境还没有搭好的。 搭建环境本身不是一个有难度的工作,但是 Appium 安装过程中确实存在不少隐藏的比较深的坑,如果一不小心踩中了其中的一个,那可能会花费比较

    2024年02月05日
    浏览(57)
  • Spark环境搭建安装及配置详细步骤(保姆教程)

    1 Spark-Local 模式  1.1 解压缩文件  将 spark-2.1.1-bin-hadoop3.2.tgz 文件上传到 Linux 并解压缩,放置在指定位置,路径中。  1.2 启动 Local 环境  1) 进入解压缩后的路径,执行如下指令   2) 启动成功后,可以输入网址进行 Web UI 监控页面访问   1.4 退出本地模式  按键 Ctrl+C 或输入

    2024年02月02日
    浏览(51)
  • 【2023最叼教程】Appium自动化环境搭建保姆级教程

    APP自动化测试运行环境比较复杂,稍微不注意安装就会失败。我见过不少朋友,装了1个星期,Appium 的运行环境还没有搭好的。 搭建环境本身不是一个有难度的工作,但是 Appium 安装过程中确实存在不少隐藏的比较深的坑,如果一不小心踩中了其中的一个,那可能会花费比较

    2024年02月02日
    浏览(45)
  • Hadoop环境搭建及常见问题解决(保姆级教程)

    学习大数据的路上,肯定少不了Hadoop的陪伴。 在学习Hadoop之初,一件\\\"痛苦\\\"的事情莫过于装环境,没有环境,练不了HDFS命令,写不了MapReduce程序,后续的HBase、Hive无从下手。 为了学好Hadoop,于是下决心,一定把环境装好,于是,跟着老师做,跟着网上学,别人都顺理成章、

    2023年04月09日
    浏览(85)
  • odoo 本地安装搭建环境 (windows版 保姆级教程)

            最近换工作,也换了一个技术栈--odoo,以前在神码也做过odoo,但是当时数据库都是连的远程的服务器的数据库,现在这家公司数据库也得用本地的,就这点差别吧。         后面我也会把我在odoo的经验积累和研创都在csdn记录下,一是当作自己的一个笔记,二是

    2024年02月09日
    浏览(60)
  • fyne开发之环境搭建(保姆喂饭级教程)

    使用Fyne 需要 3 个基本元素,Go 工具(至少版本 1.12),C 编译器(连接系统图形驱动程序)和系统图形驱动程序 不同系统的安装步骤 这里主要讲Windows 这一点看其它go语言安装就可以了 主要是现在没啥子心情写这个 。安装之后记得正确的配置golang的GOPATH和GOROOT C编译器有三个

    2024年01月23日
    浏览(34)
  • 高云CPLD/FPGA IDE开发环境搭建-保姆级教程

    IDE软件下载页 安装包提供有windows和linux 两种平台的,根据你的操作系统选择一种合适的下载即可。 提供有教育版和商业版,出于教育、研究目的,建议安装教育版。如果想要商业版的,需要申请license license 可以免费申请,去申请 商业版Win懒人下载,点击即下 教育版Win懒人

    2024年04月16日
    浏览(41)
  • Maix Bit(K210)保姆级入门上手教程---环境搭建

    Maix Bit(K210)保姆级入门上手教程—外设基本使用 Maix Bit(K210)保姆级入门上手教程—自训练模型之云端训练 这是K210快速上手系列文章,主要内容是,设备连接,环境准备,运行第一个程序 阅读文章前提: python基础 ,K210是使用Micropython脚本语法的,因此需要一些python基础,

    2024年01月16日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包