2026/3/9 4:56:55
网站建设
项目流程
简单的网站开发的软件,网站备案 需要上传网站么,pw域名网站,厂房装修公司深圳Java零基础必看#xff0c;1小时搞定微服务#xff0c;从0到1搭建springcloudnacos实战项目#xff0c;搞定企业刚需技术#xff01;
一、前置准备#xff08;5 分钟#xff09;
确保你的电脑已安装以下环境#xff0c;这是运行项目的基础#xff1a;
JDK 8#xf…Java零基础必看1小时搞定微服务从0到1搭建springcloudnacos实战项目搞定企业刚需技术一、前置准备5 分钟确保你的电脑已安装以下环境这是运行项目的基础JDK 8微服务主流版本适配配置好JAVA_HOME环境变量Maven 3.6用于项目依赖管理配置好MAVEN_HOMENacos Server下载地址https://github.com/alibaba/nacos/releases启动命令Windowsbin/startup.cmd -m standalone单机模式启动后访问http://localhost:8848/nacos默认账号 / 密码nacos/nacos二、核心思路先搭建父工程统一管理依赖版本避免版本冲突搭建服务提供者provider提供接口供其他服务调用搭建服务消费者consumer通过 Nacos 调用提供者接口基于 Nacos 实现服务注册 / 发现和配置管理三、实战编码50 分钟步骤 1创建父工程Mavenxml?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion !-- 父工程坐标 -- groupIdcom.example/groupId artifactIdspringcloud-nacos-demo/artifactId version1.0-SNAPSHOT/version packagingpom/packaging !-- 子模块声明 -- modules modulenacos-provider/module modulenacos-consumer/module /modules !-- 依赖版本管理 -- properties maven.compiler.source8/maven.compiler.source maven.compiler.target8/maven.compiler.target spring-cloud-alibaba.version2.2.9.RELEASE/spring-cloud-alibaba.version spring-cloud.versionHoxton.SR12/spring-cloud.version spring-boot.version2.3.12.RELEASE/spring-boot.version /properties !-- 依赖版本锁定 -- dependencyManagement dependencies !-- Spring Boot 依赖 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-dependencies/artifactId version${spring-boot.version}/version typepom/type scopeimport/scope /dependency !-- Spring Cloud 依赖 -- dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-dependencies/artifactId version${spring-cloud.version}/version typepom/type scopeimport/scope /dependency !-- Spring Cloud Alibaba 依赖 -- dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-alibaba-dependencies/artifactId version${spring-cloud-alibaba.version}/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement /project步骤 2创建服务提供者nacos-provider1. 子工程 pom.xmlxml?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd parent groupIdcom.example/groupId artifactIdspringcloud-nacos-demo/artifactId version1.0-SNAPSHOT/version /parent artifactIdnacos-provider/artifactId dependencies !-- Spring Boot Web -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency !-- Nacos 服务注册发现 -- dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency /dependencies /project2. 配置文件application.ymlyamlserver: port: 8081 # 提供者端口 spring: application: name: nacos-provider # 服务名称核心Nacos通过这个名称识别服务 cloud: nacos: discovery: server-addr: localhost:8848 # Nacos服务地址3. 启动类 业务接口java运行package com.example.provider; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; // 开启服务注册发现Nacos EnableDiscoveryClient SpringBootApplication public class ProviderApplication { public static void main(String[] args) { SpringApplication.run(ProviderApplication.class, args); } // 业务接口模拟提供数据服务 RestController class ProviderController { // 接口路径/hello/{name} GetMapping(/hello/{name}) public String hello(PathVariable String name) { return Hello name ! 我是Nacos服务提供者; } } }步骤 3创建服务消费者nacos-consumer1. 子工程 pom.xmlxml?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd parent groupIdcom.example/groupId artifactIdspringcloud-nacos-demo/artifactId version1.0-SNAPSHOT/version /parent artifactIdnacos-consumer/artifactId dependencies !-- Spring Boot Web -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency !-- Nacos 服务注册发现 -- dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency !-- RestTemplate用于远程调用 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-webflux/artifactId /dependency /dependencies /project2. 配置文件application.ymlyamlserver: port: 8082 # 消费者端口 spring: application: name: nacos-consumer # 消费者服务名称 cloud: nacos: discovery: server-addr: localhost:8848 # Nacos服务地址3. 启动类 调用逻辑package com.example.consumer; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 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.PathVariable; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; // 开启服务注册发现 EnableDiscoveryClient SpringBootApplication public class ConsumerApplication { public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); } // 配置RestTemplate开启负载均衡LoadBalanced Bean LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } // 消费者接口调用提供者服务 RestController class ConsumerController { // 注入RestTemplate private final RestTemplate restTemplate; // 构造器注入 public ConsumerController(RestTemplate restTemplate) { this.restTemplate restTemplate; } // 接口路径/consumer/hello/{name} GetMapping(/consumer/hello/{name}) public String hello(PathVariable String name) { // 调用提供者服务使用服务名称nacos-provider代替IP端口实现服务发现 String url http://nacos-provider/hello/ name; return restTemplate.getForObject(url, String.class); } } }四、测试验证5 分钟启动 Nacos Server确保 8848 端口正常启动nacos-provider8081 端口启动nacos-consumer8082 端口访问 Nacos 控制台http://localhost:8848/nacos在「服务管理」→「服务列表」中能看到nacos-provider和nacos-consumer两个服务测试接口访问http://localhost:8082/consumer/hello/Java微服务返回结果Hello Java微服务! 我是Nacos服务提供者说明调用成功。总结核心依赖Spring Cloud Alibaba Nacos Discovery 实现服务注册与发现RestTemplate 实现服务间远程调用。关键配置每个微服务需配置spring.application.name服务名和spring.cloud.nacos.discovery.server-addrNacos 地址且启动类需加EnableDiscoveryClient。核心逻辑消费者通过服务名而非硬编码 IP调用提供者接口由 Nacos 自动发现服务地址实现微服务解耦。这个实战项目覆盖了企业微服务开发的核心刚需服务注册发现、跨服务调用是 Spring Cloud Nacos 的最小可用模型后续可扩展配置中心、熔断降级、网关等企业级特性。