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

phpnow 搭建网站网络安全行业公司排名

phpnow 搭建网站,网络安全行业公司排名,建设用地规划许可证查询网站,外贸网站 海外推广Spring Boot 整合 Nacos 教程(3000字) 一、Nacos 简介 Nacos 是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台,致力于帮助开发者更轻松地构建云原生应用。它支持多种注册中心协议(如 Dubbo、Spring Cloud、Kubernete…

Spring Boot 整合 Nacos 教程(3000字)

一、Nacos 简介

Nacos 是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台,致力于帮助开发者更轻松地构建云原生应用。它支持多种注册中心协议(如 Dubbo、Spring Cloud、Kubernetes 等),并提供统一的配置中心功能。

Nacos 的核心功能包括:

  • 服务注册与发现:支持服务的自动注册与健康检查,便于实现服务治理。
  • 配置中心:支持配置的集中管理与动态更新,避免配置文件的重复维护。
  • 服务管理:提供服务的元数据管理、权重调整、流量控制等能力。

更多请看文章 《Windows环境下Nacos安装与部署全攻略:从零开始的详细教程》

二、开发环境准备

1. 安装 Nacos Server

你可以选择本地安装或者使用 Docker 安装 Nacos。

本地安装步骤:
  1. 下载 Nacos Server:https://github.com/alibaba/nacos/releases
  2. 解压后进入 bin 目录。
  3. 启动单机模式:
# Windows
startup.cmd -m standalone# Linux / Mac
sh startup.sh -m standalone
  1. 访问 Nacos 控制台:http://localhost:8848/nacos,默认账号密码为 nacos/nacos
Docker 安装方式:
docker run -d -p 8848:8848 -p 9848:9848 nacos/nacos-server:latest

2. 创建 Spring Boot 工程

使用 Spring Initializr 或 IDE 创建 Spring Boot 项目,添加以下依赖:

  • Spring Web
  • Spring Cloud Alibaba Nacos Discovery
  • Spring Cloud Alibaba Nacos Config

Maven 依赖如下:

<dependencyManagement><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2022.0.0.0</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</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>
</dependencies>

三、Spring Boot 整合 Nacos 服务注册与发现

1. 配置 Nacos 服务发现

application.yml 中添加以下配置:

server:port: 8080spring:application:name: nacos-service-providercloud:nacos:discovery:server-addr: localhost:8848

2. 启用服务注册发现功能

在启动类上添加 @EnableDiscoveryClient 注解:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication
@EnableDiscoveryClient
public class NacosServiceProviderApplication {public static void main(String[] args) {SpringApplication.run(NacosServiceProviderApplication.class, args);}
}

3. 启动服务并查看注册情况

启动服务后,访问 Nacos 控制台 http://localhost:8848/nacos,在“服务管理” -> “服务列表”中可以看到服务已注册。

4. 创建服务消费者

创建一个消费者服务,同样配置 Nacos 注册中心:

server:port: 8081spring:application:name: nacos-service-consumercloud:nacos:discovery:server-addr: localhost:8848

启用服务发现:

@SpringBootApplication
@EnableDiscoveryClient
public class NacosServiceConsumerApplication {public static void main(String[] args) {SpringApplication.run(NacosServiceConsumerApplication.class, args);}
}

注入 RestTemplate 并调用服务提供者:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;@RestController
public class ConsumerController {@Autowiredprivate RestTemplate restTemplate;@GetMapping("/call")public String callProvider() {String url = "http://nacos-service-provider/hello";return restTemplate.getForObject(url, String.class);}@Bean@LoadBalancedpublic RestTemplate restTemplate() {return new RestTemplate();}
}

确保服务提供者有 /hello 接口:

@RestController
public class ProviderController {@GetMapping("/hello")public String sayHello() {return "Hello from provider!";}
}

四、Spring Boot 整合 Nacos 配置中心

1. 创建配置文件

登录 Nacos 控制台,进入“配置管理” -> “配置列表”,点击“+”号新增配置:

  • Data ID:nacos-service-provider.properties
  • Group:DEFAULT_GROUP
  • 配置内容:
user.config=hello nacos config

2. 配置 Spring Boot 使用 Nacos 配置中心

bootstrap.yml 中添加配置:

spring:application:name: nacos-service-providercloud:nacos:config:server-addr: localhost:8848file-extension: properties

bootstrap.yml 是在 Spring Boot 启动前加载的配置文件,用于连接配置中心。

3. 在 Spring Boot 中读取配置

创建一个配置类:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component
public class MyConfig {@Value("${user.config}")private String userConfig;public String getUserConfig() {return userConfig;}
}

创建一个控制器来展示配置内容:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class ConfigController {private final MyConfig myConfig;public ConfigController(MyConfig myConfig) {this.myConfig = myConfig;}@GetMapping("/config")public String getConfig() {return myConfig.getUserConfig();}
}

访问 /config 接口即可看到从 Nacos 获取的配置值。

4. 动态刷新配置(可选)

如果你希望在不重启服务的情况下更新配置,可以添加 @RefreshScope 注解:

import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;@Component
@RefreshScope
public class MyConfig {// ...
}

五、Nacos 多环境配置管理(开发/测试/生产)

在实际项目中,我们通常需要区分不同的环境(dev、test、prod)。

1. 在 Nacos 中创建不同环境的配置文件

例如:

  • Data ID:nacos-service-provider.properties
    • Group:DEV_GROUP
  • Data ID:nacos-service-provider.properties
    • Group:TEST_GROUP
  • Data ID:nacos-service-provider.properties
    • Group:PROD_GROUP

2. 在 bootstrap.yml 中切换环境

spring:application:name: nacos-service-providercloud:nacos:config:server-addr: localhost:8848file-extension: propertiesgroup: DEV_GROUP

通过修改 group 属性切换不同环境的配置。

六、Nacos 共享配置与命名空间管理

1. 共享配置

如果你有多个微服务共享某些配置(如数据库配置),可以创建一个共享配置文件,如:

  • Data ID:shared-config.properties
  • Group:SHARED_GROUP

在 Spring Boot 中引入:

spring:cloud:nacos:config:server-addr: localhost:8848file-extension: propertiesextension-configs:- data-id: shared-config.propertiesgroup: SHARED_GROUPrefresh: true

2. 命名空间隔离

Nacos 支持多租户管理,通过命名空间(Namespace)隔离不同环境或组织的配置与服务。

获取命名空间 ID:

  1. 登录 Nacos 控制台。
  2. 进入“命名空间”页面。
  3. 新建或查看已有命名空间的 ID。

bootstrap.yml 中配置命名空间:

spring:cloud:nacos:config:namespace: your-namespace-idserver-addr: localhost:8848file-extension: properties

七、Nacos 服务元数据与权重管理

1. 添加服务元数据

application.yml 中添加:

spring:cloud:nacos:discovery:server-addr: localhost:8848metadata:version: 1.0region: beijing

在 Nacos 控制台的服务详情页可以查看元数据信息。

2. 调整服务权重

在 Nacos 控制台中,可以为不同实例设置不同的权重,用于控制流量分配。

八、Nacos 集群部署与高可用

在生产环境中,建议使用 Nacos 集群部署,以保证高可用性。

1. 部署多个 Nacos 节点

准备三台服务器,分别部署 Nacos,并配置集群模式。

2. 修改配置文件

在每台服务器的 application.properties 中配置集群地址:

nacos.cluster.servers=ip1:port1,ip2:port2,ip3:port3

3. 使用 MySQL 持久化数据

Nacos 默认使用嵌入式数据库存储数据,不适合生产环境。可以通过配置 MySQL 实现数据持久化。

  1. 创建数据库和表。
  2. 修改 application.properties
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456

九、常见问题与解决方案

1. 服务未注册成功

  • 检查 Nacos 服务是否启动。
  • 检查 server-addr 配置是否正确。
  • 查看 Spring Boot 日志是否有异常。

2. 配置无法加载

  • 检查 Data ID、Group 是否匹配。
  • 查看 bootstrap.yml 是否正确。
  • 检查 Nacos 控制台中的配置是否发布。

3. 动态配置不生效

  • 确保类上添加了 @RefreshScope 注解。
  • 检查是否引入了 spring-cloud-starter-config 依赖。

十、总结

本文详细介绍了 Spring Boot 如何整合 Nacos,包括服务注册与发现、配置中心、多环境管理、共享配置、命名空间、集群部署等内容。通过 Nacos,可以大大简化微服务架构下的服务治理与配置管理,提升开发效率与系统稳定性。

随着云原生的发展,Nacos 作为 Spring Cloud Alibaba 的核心组件之一,已经成为构建现代微服务系统的重要工具。建议在实际项目中结合 Spring Cloud Gateway、Sentinel、Seata 等组件,构建完整的微服务解决方案。


文章转载自:

http://y66twEfZ.Lrwsk.cn
http://ofppWzms.Lrwsk.cn
http://Zdm3X9GM.Lrwsk.cn
http://JHhYKOJ9.Lrwsk.cn
http://uMFu7KDp.Lrwsk.cn
http://2yZPmmfL.Lrwsk.cn
http://wQ06tfg8.Lrwsk.cn
http://n1v7gwRH.Lrwsk.cn
http://CLuXKnSX.Lrwsk.cn
http://RQgNrdt9.Lrwsk.cn
http://SEpk27IA.Lrwsk.cn
http://duCVWVOi.Lrwsk.cn
http://E9biIzxU.Lrwsk.cn
http://NXVUJBz7.Lrwsk.cn
http://FjBmF6uo.Lrwsk.cn
http://W6O9H86C.Lrwsk.cn
http://1jOOnvWQ.Lrwsk.cn
http://WVvnbo8G.Lrwsk.cn
http://7w9HpgJl.Lrwsk.cn
http://MwoU3HAN.Lrwsk.cn
http://sGdB8KQ0.Lrwsk.cn
http://tQYaFnX0.Lrwsk.cn
http://4dreBNNC.Lrwsk.cn
http://lc4BWmxF.Lrwsk.cn
http://1Oix0CGg.Lrwsk.cn
http://zd6ckRcS.Lrwsk.cn
http://1c2z8IMj.Lrwsk.cn
http://09YKvdFj.Lrwsk.cn
http://7EbBv7Rq.Lrwsk.cn
http://Coi7lNDX.Lrwsk.cn
http://www.dtcms.com/wzjs/622417.html

相关文章:

  • 网站报错40121天网站建设实录
  • 怎么使用网站模板建设商业网站
  • 网站代码加密用ip地址做网站
  • 成都医院手机网站建设设计公司的企业使命
  • 云莱坞网站开发品牌建设的十六个步骤
  • 怎么做网站打赏wordpress手机文章
  • 常州如何进行网站推广增城线上教学
  • 网站开发遇到的问题及解决方法肇庆网站制作软件
  • 江苏网站建设系统服务中山 家居 骏域网站建设专家
  • 想做个自己的网站登录app
  • 湟中网站建设深圳网站制作公司售后服务
  • 陈仓网站建设在线做ppt
  • 杭州网站设计 site网络营销案例分享
  • 红酒 网站 模板西安网站建设那家强
  • 扬州做网站哪家好互联网技术公司
  • 东莞网站推广策划做货运代理网站
  • 江苏省建设厅网站查询创建网络公司
  • 如何设计网站模板南京网站快速排名提升
  • 做厂房的网站wordpress表单提交插件
  • 网站建设中 源码用windows搭建手机网站
  • 网站公司缺点win网站建设
  • 建设银行江苏省分行网站手机模板网站生成制作软件
  • 企业建站模板价格牙科医院网站建设
  • vs做网站加背景网站建设的制度建设
  • 公司网站实名制招生网站建设的意义
  • 外贸网站怎么找客户新农村建设管理网站
  • 浙江理工大学网站设计与建设好孩子官方网站王建设
  • 月流量10g的网站郑州网站建设rwxwl
  • 哪家公司搭建网站百度推广创意范例
  • 易建筑友科技有限公司网站网页设计与制作论文5000字