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

网站营销网网站制作的要求

网站营销网,网站制作的要求,wordpress后台白屏,点击seo软件文章目录 NacosNacos 配置中心1.起源2.基本概念ProfileData IDGroup 3.基础配置a. bootstrap.ymlb. application.ymlc. nacos 中的配置 DataIDd.测试读取配置中心配置内容 4.配置隔离a.命名空间b.DataIDc.bootstrap.ymld.service 隔离 5.配置拆分a.配置拆分策略b.DataID 配置c.…

文章目录

  • Nacos
    • Nacos 配置中心
      • 1.起源
      • 2.基本概念
        • Profile
        • Data ID
        • Group
      • 3.基础配置
        • a. bootstrap.yml
        • b. application.yml
        • c. nacos 中的配置 DataID
        • d.测试读取配置中心配置内容
      • 4.配置隔离
        • a.命名空间
        • b.DataID
        • c.bootstrap.yml
        • d.service 隔离
      • 5.配置拆分
        • a.配置拆分策略
        • b.DataID 配置
        • c.配置文件 bootstrap.yml

Nacos

Nacos 配置中心

在 Spring Boot 项目中,默认会提供一个 application.properties 或者 application.yml 文件,

可以把一些全局性的配置或者需要动态维护的配置写入改文件,比如数据库连接,功能开关,限流阈值,服务地址等。

为了解决不同环境下服务连接配置等信息的差异,Spring Boot 还提供了基于 spring.profiles.active={profile}的机制来实现不同的环境的切换。

1.起源

随着单体架构向微服务架构的演进,各个应用自己独立维护本地配置文件的方式开始显露出它的不足之处。

主要有下面几点:

  • 配置的动态更新:在实际应用会有动态更新位置的需求,比如修改服务连接地址、限流配置等。在传统模式下,需要手动修改配置文件并且重启应用才能生效,这种方式效率太低,重启也会导致服务暂时不可用。

  • 配置集中式管理:在微服务架构中某些核心服务为了保证高性能会部署上百个节点,如果在每个节点中都维护一个配置文件,一旦配置文件中的某个属性需要修改,可想而知,工作量是巨大的。

  • 不同部署环境下配置的管理:前面提到通过 profile 机制来管理不同环境下的配置,这种方式对于日常维护来说也比较繁琐。

统一配置管理,就是弥补上述不足的方法。

简单说,是把各个应用系统中的某些配置放在一个第三方中间件上进行统一维护。

然后,对于统一配置中心上的数据的变更需要推送到相应的服务节点实现动态跟新,所以微服务架构中,配置中心也是一个核心组件。

2.基本概念

Profile

Java 项目一般都会有多个 Profile 配置,用于区分开发环境,测试环境,准生产环境,生成环境等,

每个环境对应一个 properties 文件(或是 yml/yaml 文件),然后通过设置 spring.profiles.active 的值来决定使用哪个配置文件。

spring:application:name: order-serviceprofiles:active: dev

Nacos Config的作用就把这些文件的内容都移到一个统一的配置中心,即方便维护又支持实时修改后动态刷新应用。

Data ID

当使用 Nacos Config 后,Profile 的配置就存储到 Data ID 下,即一个 Profile 对应一个 Data ID

  • Data ID 的拼接格式:${prefix}-${spring.profiles.active}.${file-extension}
  • prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix 来配置
  • spring.profiles.active spring.profiles.active 的值,即为当前环境对应的 profile,当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
  • file-extension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties yaml 类型。
Group

当配置项太多或者有重名时,可以通过分组来方便管理 , 这就是 Group

Group 默认为 DEFAULT_GROUP

可以通过 spring.cloud.nacos.config.group 来配置

3.基础配置

nacos 可以作为配置中心使用,在 payment 工程中如下步骤,启动 nacos 配置中心

a. bootstrap.yml

注意:Sprnig Boot 2.4.X 版本后需要手动添加 spring-cloud-starter-bootstrap 组件后,才能加载 bootstrap.yml 配置文件

<!--nacos-->
<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>

bootstrap.yml:

spring:application:name: payment-serviceprofiles:active: devcloud:nacos:discovery:server-addr: 192.168.146.128:8848config:file-extension: yamlserver-addr: 192.168.146.128:8848

注意:spring.cloud.nacos.config 配置必须放到 bootstrap.yml 配置文件中,保证在优先读取配置文件再启动,否则配置无效

b. application.yml
server:port: ${port:9001}spring:application:name: payment-servicecloud:nacos:discovery:server-addr: 192.168.146.128:8848 # Nacos注册中心地址
c. nacos 中的配置 DataID

20241115182320

spring:application:name: payment-serviceprofiles:active: devmain:allow-bean-definition-overriding: true #允许覆盖bean定义cloud:nacos:discovery:server-addr: 192.168.146.128:8848config:file-extension: yamlserver-addr: 192.168.146.128:8848prefix: payment-service-devshared-configs[0]:data-id: common.yamlgroup: DEFAULT_GROUPrefresh: true
d.测试读取配置中心配置内容

PaymentController

package com.nianxi.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author Jie.* @description: TODO* @date 2024/11/14* @version: 1.0*/
@RestController
@RequestMapping("/payment")
@RefreshScope // 支持Nacos的动态刷新功能
public class PaymentController {@Value("${server.port}")private String serverPort;@GetMapping("/{id}")public ResponseEntity<String> payment(@PathVariable("id") Long id) {return ResponseEntity.ok("订单号 = " + id + ",支付成功,server.port" + serverPort);}@Value("${config.info}")private String configInfo;@GetMapping("/config/info")public String getConfigInfo() {return configInfo;}
}

访问地址http://localhost:9001/payment/config/info
20241115183005

当修改配置值,会结果已经改变,Nacos 自带自动刷新功能。

20241115183047

4.配置隔离

通常,企业研发的流程是这样的:先在开发测试环境开发和测试功能,然后灰度,最后发布到生产环境。

并且,为了生产环境的稳定,需要将测试环境和生产环境进行隔离,Nacos 可以通过三种方式进行配置隔离:

  • Nacos 的服务器
  • namespace 命名空间
  • group 分组,

在 bootstrap.yml 文件中可以通过配置 Nacos 的 server-addr、namespace 和 group 来区分不同的配置信息。

  • Nacos 的服务器 spring.cloud.nacos.config.server-addr
  • Nacos 的命名空间 spring.cloud.nacos.config.namespace,注意,这里使用命名空间的 ID 不是名称
  • Nacos 的分组 spring.cloud.nacos.config.group

Nacos 配置隔离具体步骤如下:

a.命名空间

创建 dev,test,prod
20241115183523

b.DataID

在不同命名空间下创建如下 DataID(克隆即可)
20241115183725
注意稍微更改各自配置信息以作区别

c.bootstrap.yml
spring:application:name: payment-serviceprofiles:active: devmain:allow-bean-definition-overriding: true #允许覆盖bean定义cloud:nacos:discovery:server-addr: 192.168.146.128:8848config:prefix: payment-service-devserver-addr: 192.168.146.128:8848file-extension: yamlnamespace: f546a969-b313-46a4-b0e1-a1fc9ab716d3group: MY_GROUP

注意:如果不配置namespace默认为public,不配置group默认为DEFAULT_GROUP

此时读取的配置为 namespace=dev,group=MY_GROUP 的配置页面显示 config info dev my group

d.service 隔离

同样注册 service 时可以指定 namespace 隔离注册到哪一个命名空间。application.yml 如下:

server:port: ${port:9001}spring:application:name: payment-servicecloud:nacos:discovery:server-addr: 192.168.146.128:8848 # Nacos注册中心地址namespace: f546a969-b313-46a4-b0e1-a1fc9ab716d3

5.配置拆分

a.配置拆分策略

项目中会有很多的微服务,必然会存在很多具体配置,和重复配置,可以采用如下方案管理配置
20241115184716

根据上面分析在 nacos 中配置
20241115184958
配置在 public 中

b.DataID 配置

payment-service-dev.yaml
20241115185204
common.yaml
20241115185247

c.配置文件 bootstrap.yml
spring:application:name: payment-serviceprofiles:active: devmain:allow-bean-definition-overriding: true #允许覆盖bean定义cloud:nacos:discovery:server-addr: 192.168.146.128:8848config:prefix: payment-service-devserver-addr: 192.168.146.128:8848file-extension: yamlnamespace: f546a969-b313-46a4-b0e1-a1fc9ab716d3group: MY_GROUPextension-configs[0]:data-id: common.ymlrefresh: true #自动刷新
  • 注:extension-configs配置属性和shared-configs配置属性功能一致,都是读取配置文件,这里我们把重复配置放到 common.yaml 中,这样在不同的工程中就可以重复使用[n]的值越大,优先级越高
  • 注:spring.application.namespring.profiles.active配置必须放到bootstrap.yml中,否则影响配置自动刷新功能。

按照上面方案,整合拆分订单微服务的配置文件
20241115185813

order微服务bootstrap.yml

spring:application:name: order-serviceprofiles:active: devcloud:nacos:discovery:server-addr: 192.168.146.128:8848config:prefix: order-service-devserver-addr: 192.168.146.128:8848file-extension: yamlnamespace: f546a969-b313-46a4-b0e1-a1fc9ab716d3group: MY_GROUPextension-configs[0]:data-id: common.ymlrefresh: true #自动刷新

注意:这里两个工程使用重用的配置文件common.yaml

http://www.yayakq.cn/news/999798/

相关文章:

  • 室内在线设计网站餐饮网络推广有哪些渠道
  • 网站建设运营策划方案网站建设新的技术方案
  • 管理网站模板下载大连科技公司建设网站
  • 网站怎么做跳转链接wordpress最新更新列表页面
  • 揭阳城乡建设局网站国家重大建设项目库网站
  • 空间一个数据库可以做几个网站dedecms手机网站更新
  • 徐州网站开发服务建设邮费自己的网站 要不要购买服务器的
  • 个体工商户网上年检谷歌官方seo入门指南
  • 河北大城县网站建设公司网站建设 长摊 无形资产
  • 建筑招聘网站有哪些查服务器ip地址
  • 诚信档案建设网站首页网页制作考证视频
  • 哈尔滨专业做网站推广wordpress发布插件
  • 门户网站开发建设成本明细简述网站建设小组的五类成员
  • wordpress 目录遍历南宁seo团队哪家好
  • 网站 一级域名 二级域名做汽配网站需要多少钱
  • 品牌型网站建设的好处wordpress固定链接+404
  • 网站站点风格wordpress 自写插件
  • 南京免费自助建站模板装修设计小程序
  • 哪个网站是免费的40平米办公室设计布局
  • 做电影网站什么后果网站会员整合
  • 广东网站备案要求品牌策划设计包括哪些内容
  • 网站专题设计模板汕头娱乐场所最新消息
  • 广西建设厅关公网站青海设计网站
  • 微网站怎么做百度关键词排名荣耀手机正品官网查询
  • 帝国cms做视频网站性能如何临泉县建设局网站
  • 南山网站建设哪家好ppt主题模板下载免费
  • wordpress单页导出长沙网站seo哪家公司好
  • 做网站电脑开一天用多少钱wordpress 取消做这
  • 企业做网站得多少钱珠海免费模板建站
  • 随便编一个公司网站注册公司需要什么条件?