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

直播软件开发商郑州seo方案

直播软件开发商,郑州seo方案,科技让生活更美好500字六年级,wordpress 淘宝客放置root文件5.8 Nacos 配置中心 5.8.1 为什么需要配置中心? 举一个很简单的例子,小时候上小学班级搞了快乐晚会,会有抽奖环节,类似于下述这样的抽奖卡片: 难道这个抽奖券每个礼品是不同的,每个都需要重新画一张吗&am…

5.8 Nacos 配置中心

5.8.1 为什么需要配置中心?

举一个很简单的例子,小时候上小学班级搞了快乐晚会,会有抽奖环节,类似于下述这样的抽奖卡片:

在这里插入图片描述

难道这个抽奖券每个礼品是不同的,每个都需要重新画一张吗?

其实没必要,把固定的东西提取出来就可以了,比如说,抽奖券 是标题,不会变,活动名称 快乐晚会,也不会变,学校名称 快乐小学也不会变,有效期也不大会变。

所以把上面不会变的配置提取出来,提前印刷好,只需要往里面填写不同的中奖内容就 ok了。

就类似,把公共的配置提取出来放到配置中心去,每个服务独属的配置就自己编写。

因为每个服务都有自己的 yml 配置文件,如果有 1000 个服务呢?都要去写一些重复的配置项吗?不如放到配置中心去,每次先获取共同的配置项,各个服务只需要维护自己独属的一份配置文件就够了。

配置中心就是对这些配置项进行统⼀管理。通过配置配置中,可以集中查看,修改和删除配置,无需再逐个修改配置文件。提高效率的同时,也降低了出错的风险。

在这里插入图片描述

这样一来的好处呢,服务启动时,从配置中心获取配置,进行初始化,配置项修改时,配置中心通知微服务,实现配置的更新加载。

5.8.2 快速使用配置中心

在 Nacos 控制面板添加配置:

在这里插入图片描述

此处是在 PROD 命名空间创建的配置,也就是说只有 namespace 配置 ID 为 PROD 才能使用这个配置,具体目前项目中只有 cook-service 可以获取到这个配置,因为这里的 DataID 要与服务 name 对应,当然此处是这样的,等后面讲 DataID 的格式时就明白了。当然你也可以在 public 命名空间中进行创建配置。

在要获取 Nacos 配置中心的配置的项目中引入 Nacos Config 依赖

此处只在 cook-service 项目中演示。

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- SpringCloud 2020.*之后版本需要引⼊bootstrap--> 
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

在 cook-service 项目中新建并配置 bootstrap.yml 文件

微服务启动前,是先从 Nacos 配置中心获取配置,然后与项目自己的 application.yml 配置文件合并,在微服务运行之前,Nacos 要求必须使用 bootstrap.yml 配置文件来配置 Nacos Server 地址,也可以使用 bootstrap.properties。

spring:application:name: cook-service  # 需要和 Nacos 配置管理的 DataID ⼀致cloud:nacos:config:server-addr: 127.0.0.1:8848  # Nacos 的地址namespace: PROD  # 配置空间的 namespace 要和 注册中心的 namespace 分开配置

注意,此处的配置中心和注册中心配置项是隔离的:

Nacos配置中⼼: spring.cloud.nacos.config.server-addr

Nacos注册中⼼: spring.cloud.nacos.discovery.server-addr

编写程序使用配置中心

package com.zlcode.cook.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/config")
@RefreshScope  // 配置进⾏热更新,可以感知到配置中心配置的变化。
public class NacosConfigController {@Value("${nacos.config.prod.num}")  // 读取配置private Integer num;@RequestMapping("/num")public Integer num() {return num;}
}

运行 cook-service 项目,浏览器输入:http://127.0.0.1:8080/config/num

在这里插入图片描述

返回的就是 Nacos 配置中心的内容,现在修改 Nacos 配置中心的内容,但是不重新启动 cook-service 服务,看看到底能否热更新感受到配置中心配置的变化。

在这里插入图片描述

将 Nacos 配置中心修改成 999 重新发布,然后再去浏览器输入:http://127.0.0.1:8080/config/num

在这里插入图片描述

不出所料,看来这里的热更新实现了,也就是我们前面说的:服务启动时,从配置中心获取配置,进行初始化,配置项修改时,配置中心通知微服务,实现配置的更新加载。

5.8.3 配置中心的 Data Id

上面咱们说,配置中心的 DataId 与 服务 name 一致,其实还有其他的写法。

在 Nacos Spring Cloud 中,DataId 的完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension}
  • prefix 默认为 spring.application.name 这也就是为什么说与服务的 name 一致了。
  • spring.profiles.active 为当前环境对应的 profile,当 spring.profiles.active 为空时,中间的连接符也就不存在了。DataId 的格式变为: ${prefix}.${file-extension}
  • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。也就是说要从配置中心读哪种数据格式的配置。目前只⽀持 properties 和 yaml类型。默认为properties。

在服务启动的时候,会从 Nacos 读取多个配置文件,分别是如下三个:

${prefix}-${spring.profiles.active}.${file-extension}

例如:cook-service-dev.properties

${prefix}.${file-extension}

例如:cook-service.properties

${prefix}

例如:cook-service

注意!

${spring.application.name}, ${spring.profiles.active} 等通过配置文件来指定时,必须配置在 bootstrap.yml 或 properties 文件中

下面咱们就到 Nacos 配置中心去添加上前面两种配置:

在这里插入图片描述

再去配置 bootstrap.yml 文件:

spring:application:name: cook-service  # 需要和 Nacos 配置管理的 DataID ⼀致cloud:nacos:config:server-addr: 127.0.0.1:8848  # Nacos 的地址namespace: PROD  # 配置空间的 namespace 要和 注册中心的 namespace 分开配置profiles:active: prod# 由于 file-extension 默认是 properties 咱们配置中心的文件类型也是 properties, 这里就不用配置了

启动 cook-service 服务,观察控制台日志打印:

在这里插入图片描述

发现确实读取了三个 Nacos 配置中心的配置文件。

那么到现在 Nacos 基本功能就介绍完了。主要内容有 Nacos 的服务注册和发现,Nacos 的服务下线,Nacos 的负载均衡策略,Nacos 的健康检查机制,Nacos 的环境隔离,Nacos 的配置中心。

5.9 Nacos 和 Eureka 的区别

功能上:

Nacos 除了提供服务发现和注册之外,还提供了配置中心,流量管理,负载均衡等功能。

CAP理论:

Eureka 遵循 AP 原则,Nacos 可以切换 AP 和 CP,默认是 AP。

服务发现:

Eureka 基于拉的模式,注册到 Eureka 的客户端会定期从 Eureka Server 拉取服务信息,有缓存,默认30秒拉取一次。

Nacos 基于推送模式,服务列表有变化实时推送给注册的客户端,服务端和注册端必须保持心跳连接。

http://www.dtcms.com/wzjs/88388.html

相关文章:

  • 如何免费做网站推广企业网站推广外包
  • 免费发布招聘信息平台神马seo服务
  • 网站开发技术项目式教程欧美seo查询
  • 杭州公司注册多少钱石家庄百度推广排名优化
  • 设计网站首页1镇江seo公司
  • 代做网站的公司海外网络专线
  • 网站建设公司业务培训网络推广站
  • 做分析仪器推广的网站沈阳seo顾问
  • 建的企业网站如何在百度搜到广州现在有什么病毒感染
  • 青岛建站口碑营销的案例有哪些
  • 学网站制作多少钱网络营销的常用方法有哪些
  • 安徽建设工程信息网网百度seo排名培训
  • 网站做外链杭州网络推广公司
  • 87网站一起做合肥百度推广优化
  • 做爰午夜福利全过程视频网站58同城关键词怎么优化
  • 东莞企业网站制作成人短期电脑培训班学费
  • 快速优化网站建设商务软文写作300
  • 黑龙江省城乡建设厅网站首页优化网站最好的刷排名软件
  • 深圳做微商网站制作百度免费注册
  • 企业网站建设全包seo赚钱吗
  • 安阳专业做网站公司如何关闭2345网址导航
  • 罗湖实惠的网站建设费用百度灰色词优化排名
  • 深圳外贸公司前十名湖南企业竞价优化服务
  • 营销网站建设联系方式国际国内新闻最新消息今天
  • 找到网站后台地址广州百度推广优化
  • 企业手机网站设计营销策划运营培训机构
  • 党建网站建设问题淘宝指数在线查询
  • 北京海淀区制药企业湖南网站营销seo多少费用
  • 专做秒杀活动的网站成都seo达人
  • 网站建设与管理课程心得体会免费精准客源