96SEO 2026-02-23 14:17 14
3.配置共享1添加一个环境共享配置2在user-service中读取共享配置3运行两个UserApplication使用不同的profile4配置共享的优先级

4.Nacos集群搭建1.搭建集群1.1.初始化数据库1.2.下载nacos1.3.配置Nacos1.4.启动
当微服务部署的实例越来越多达到数十、数百时逐个修改微服务配置就会让人抓狂而且很容易出错。
我们需要一种统一配置管理方案可以集中管理所有实例的配置。
Nacos一方面可以将配置集中管理另一方可以在配置变更时及时通知微服务实现配置的热更新。
注意项目的核心配置需要热更新的配置才有放到nacos管理的必要。
基本不会变更的一些配置还是保存在微服务本地比较好。
微服务要拉取nacos中管理的配置并且与本地的application.yml配置合并才能完成项目启动。
但如果尚未读取application.yml又如何得知nacos地址呢
因此spring引入了一种新的配置文件bootstrap.yaml文件会在application.yml之前被读取流程如下
首先在user-service服务中引入nacos-config的客户端依赖
dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId
然后在user-service中添加一个bootstrap.yaml文件内容如下
文件后缀名这里会根据spring.cloud.nacos.server-addr获取nacos地址再根据
${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}作为文件id来读取配置。
在user-service中的UserController中添加业务逻辑读取pattern.dateformat配置
cn.itcast.user.service.UserService;
org.springframework.beans.factory.annotation.Autowired;
org.springframework.beans.factory.annotation.Value;
org.springframework.web.bind.annotation.*;import
java.time.format.DateTimeFormatter;Slf4j
userService;Value(${pattern.dateformat})private
dateformat;GetMapping(now)public
LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));}//
我们最终的目的是修改nacos中的配置后微服务中无需重启即可让配置生效也就是配置热更新。
在Value注入的变量所在类上添加注解RefreshScope
使用ConfigurationProperties注解代替Value注解。
在user-service服务中添加一个类读取patterrn.dateformat属性
org.springframework.boot.context.properties.ConfigurationProperties;
org.springframework.stereotype.Component;Component
cn.itcast.user.config.PatternProperties;
cn.itcast.user.service.UserService;
org.springframework.beans.factory.annotation.Autowired;
org.springframework.web.bind.annotation.GetMapping;
org.springframework.web.bind.annotation.PathVariable;
org.springframework.web.bind.annotation.RequestMapping;
org.springframework.web.bind.annotation.RestController;import
java.time.format.DateTimeFormatter;Slf4j
patternProperties;GetMapping(now)public
LocalDateTime.now().format(DateTimeFormatter.ofPattern(patternProperties.getDateformat()));}//
[spring.application.name]-[spring.profiles.active].yaml例如userservice-dev.yaml
[spring.application.name].yaml例如userservice.yaml
而[spring.application.name].yaml不包含环境因此可以被多个环境共享。
我们在nacos中添加一个userservice.yaml文件
在user-service服务中修改PatternProperties类读取新添加的属性
在user-service服务中修改UserController添加一个方法
3运行两个UserApplication使用不同的profile
修改UserApplication2这个启动项改变其profile值
节点ipportnacos1192.168.150.18845nacos2192.168.150.18846nacos3192.168.150.18847
搭建数据库初始化数据库表结构下载nacos安装包配置nacos启动nacos集群nginx反向代理
Nacos默认数据存储在内嵌数据库Derby中不属于生产可用的数据库。
官方推荐的最佳实践是使用带有主从的高可用数据库集群主从模式的高可用数据库可以参考传智教育的后续高手课程。
COMMENTconfig_info;/******************************************/
/******************************************/
uk_configinfoaggr_datagrouptenantdatum
(data_id,group_id,tenant_id,datum_id)
COMMENT增加租户字段;/******************************************/
/******************************************/
uk_configinfobeta_datagrouptenant
COMMENTconfig_info_beta;/******************************************/
/******************************************/
uk_configinfotag_datagrouptenanttag
(data_id,group_id,tenant_id,tag_id)
COMMENTconfig_info_tag;/******************************************/
/******************************************/
uk_configtagrelation_configidtag
COMMENTconfig_tag_relation;/******************************************/
/******************************************/
单个配置大小上限单位为字节0表示使用默认值,max_aggr_count
聚合子配置最大个数0表示使用默认值,max_aggr_size
单个聚合数据的子配置大小上限单位为字节0表示使用默认值,max_history_count
COMMENT集群、各Group容量信息表;/******************************************/
/******************************************/
COMMENT多租户改造;/******************************************/
/******************************************/
单个配置大小上限单位为字节0表示使用默认值,max_aggr_count
单个聚合数据的子配置大小上限单位为字节0表示使用默认值,max_history_count
$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu,
nacos在GitHub上有下载地址https://github.com/alibaba/nacos/tags可以选择任意版本下载。
进入nacos的conf目录修改配置文件cluster.conf.example重命名为cluster.conf
127.0.0.1.8847然后修改application.properties文件添加数据库配置
spring.datasource.platformmysqldb.num1db.url.0jdbc:mysql://127.0.0.1:3306/nacos?characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrueuseUnicodetrueuseSSLfalseserverTimezoneUTC
将nacos文件夹复制三份分别命名为nacos1、nacos2、nacos3
然后分别修改三个文件夹中的application.properties
}而后在浏览器访问http://localhost/nacos即可。
代码中application.yml和bootstrap.yml文件配置如下
spring:cloud:nacos:server-addr:
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback