您的位置:首页 > 汽车 > 时评 > 北京朝阳区邮政编码_赣州新闻广播_网站建设哪家好_怎么寻找网站关键词并优化

北京朝阳区邮政编码_赣州新闻广播_网站建设哪家好_怎么寻找网站关键词并优化

2024/12/23 6:02:37 来源:https://blog.csdn.net/weixin_65019617/article/details/144067005  浏览:    关键词:北京朝阳区邮政编码_赣州新闻广播_网站建设哪家好_怎么寻找网站关键词并优化
北京朝阳区邮政编码_赣州新闻广播_网站建设哪家好_怎么寻找网站关键词并优化

nacos部署链接:Docker启动安装nacos(详情讲解,全网最细)_docker启动nacos-CSDN博客

nacos表数据链接:nacos数据表创建sql_nacos 建表语句-CSDN博客

nacos部署完成后,http://ip:8848/nacos/index.html

bootstrap.yml和application.yml的区别

 

bootstrap.yml:在 ApplicationContext 初始化之前加载,比 application.yml 更早。适用于引入外部配置中心(如 Nacos、Consul),将配置信息配置在远程配置源时,以便在应用启动时从远程配置中心获取配置的情况下使用

application.yml:在应用启动时加载,通常是在 ApplicationContext 初始化之后适用于配置应用的基本属性等常规单体项目时使用。

bootstrap.yml识别不了,怎么办?

解决方案:SpringBoot不读取bootstrap.yml/properties文件(高版本解决方案)_spring2.7.14版本 war包启动无法加载bootstrap.properties文件-CSDN博客

搭建Nacos服务发现中心

        <!--提供了服务注册、服务发现、配置管理、负载均衡和健康检查等功能--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>

 创建命名空间

8387175193194c7aa9b385a44301dacd.png

#微服务配置
spring:application:name: content-api #项目名称cloud:nacos:server-addr: 124.70.208.223:8848 #nacos的访问地址discovery:namespace: dev #命名空间(上一步创建的)group: xuecheng-plus-project #整个大项目的名字(也可以自己取名)

重新 启动项目后,就可以看到注册成功了

6c91d1e58ef4428092f436e1e9aa7cfd.png

搭建Nacos为配置中心

配置管理注解

        <!--将应用程序的配置从本地文件迁移到外部配置中心,实现配置的集中管理和动态刷新。--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>

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等格式类 

54a22230d3194beba26237b574e25326.png

 此时就可以将本地的配置,如mysql连接的配置,交由nacos管理(注意复制上去时不要掉了spring:)

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://124.70.208.223:3306/xcplus_content?serverTimezone=UTC&useUnicode=true&useSSL=falseusername: rootpassword: root
logging:config: classpath:log4j2-dev.xml
server:servlet:context-path: /contentport: 63040

a0397cae9e3b408bb2da3d1cdab4adb0.png

 本地只需要保留这些配置,用户指定运行环境和nacos地址


#微服务配置
spring:application:name: content-api # 微服务名称cloud:nacos:server-addr: 124.70.208.223:8085discovery:namespace: dev  # Nacos 服务管理的命名空间,用于隔离不同环境的服务group: xuecheng-plus-project  # Nacos 服务发现的组名,用于进一步隔离服务config:namespace: dev  # Nacos 配置管理的命名空间,用于隔离不同环境的配置group: xuecheng-plus-project  # Nacos 配置管理的组名,用于进一步隔离配置file-extension: yaml  # Nacos 配置文件的扩展名,这里指定为 YAML 格式refresh-enabled: true  # 是否启用配置的动态刷新功能profiles:active: dev # 指定当前环境为开发环境

部署完成后重新运行程序,依旧生效

公共配置

  • shared-configs 适用于多个应用都需要的一些通用配置,例如数据库连接池配置、日志配置等。

在我们的项目中,有一些公共的配置,在任何模块中可能都会用到,我们可以将他单独提取出来。如:日志信息

7624ee18c8184cdcbc8bcd5b52f0b401.png

 

 使用shared-configs属性,引用该配置

spring:application:name: content-servicecloud:nacos:server-addr: 124.70.208.223:8085config:namespace: devgroup: xuecheng-plus-projectfile-extension: yamlrefresh-enabled: trueshared-configs:- data-id: logging-${spring.profiles.active}.yamlgroup: xuecheng-plus-commonrefresh: trueprofiles:active: dev

 

 扩展配置

extension-configs: 适用于需要为特定应用添加额外配置的情况,例如某些特殊的功能配置或环境变量。

extension-configs与shared-configs作用一样,语义不同

spring:application:name: content-api # 微服务名称cloud:nacos:server-addr: 124.70.208.223:8085discovery:namespace: dev  # Nacos 服务管理的命名空间,用于隔离不同环境的服务group: xuecheng-plus-project  # Nacos 服务发现的组名,用于进一步隔离服务config:namespace: dev  # Nacos 配置管理的命名空间,用于隔离不同环境的配置group: xuecheng-plus-project  # Nacos 配置管理的组名,用于进一步隔离配置file-extension: yaml  # Nacos 配置文件的扩展名,这里指定为 YAML 格式refresh-enabled: true  # 是否启用配置的动态刷新功能extension-configs:- data-id: logging-${spring.profiles.active}.yamlgroup: xuecheng-plus-commonrefresh: true

配置优先级

默认情况下,各配置文件 的优先级:项目应用名配置文件 > 扩展配置文件  > 共享配置文件 > 本地配置文件。

为了方便,我们一般会在nacos中配置本地优先

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

 abbf5324c848431e803e830c22069ae1.png

网关 

单独创建一个模块,配置网关

 

         <!--网关--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!--服务发现中心--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>

 

#微服务配置
spring:application:name: gatewaycloud:nacos:server-addr: 124.70.208.223:8085discovery:namespace: devgroup: xuecheng-plus-projectconfig:namespace: devgroup: xuecheng-plus-projectfile-extension: yamlrefresh-enabled: trueshared-configs:- data-id: logging-${spring.profiles.active}.yamlgroup: xuecheng-plus-commonrefresh: trueprofiles:active: dev

所以的网关相关配置全部配置到nacos中,创建gateway-dev.yaml 

34f8812d20cd41f292101253b70075b5.png

server:port: 63010 # 网关端口
spring:cloud:gateway:
#      filter:
#        strip-prefix:
#          enabled: trueroutes: # 网关路由配置- id: content-api # 路由id,自定义,只要唯一即可# uri: http://127.0.0.1:8081 # 路由的目标地址 http就是固定地址uri: lb://content-api # 路由的目标地址 lb就是负载均衡,后面跟服务名称predicates: # 路由断言,也就是判断请求是否符合路由规则的条件- Path=/content/** # 这个是按照路径匹配,只要以/content/开头就符合要求
#          filters:
#            - StripPrefix=1- id: system-api# uri: http://127.0.0.1:8081uri: lb://system-apipredicates:- Path=/system/**
#          filters:
#            - StripPrefix=1- id: media-api# uri: http://127.0.0.1:8081uri: lb://media-apipredicates:- Path=/media/**
#          filters:
#            - StripPrefix=1

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com