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

java Nacos

windows下载nacos,版本2.x的,1.0的话会出现“Server check fail, please check server 127.0.0.1 ,port 9848 is available , error ={}” 这个鬼问题

下载链接
这里用的是2.0.4版本,启动的话用 startup.cmd -m standalone,单体启动,要不然直接点击启动的话会报错

boot

这里服务端用的boot的,导入依赖

        <!-- Nacos 组件依赖 --><dependency><groupId>com.alibaba.boot</groupId><artifactId>nacos-discovery-spring-boot-starter</artifactId><version>0.2.3</version></dependency><dependency><groupId>com.alibaba.boot</groupId><artifactId>nacos-config-spring-boot-starter</artifactId><version>0.2.3</version></dependency>

配置文件

server:port: 9124application:name: nacosProject
spring:profiles:active: dev
nacos:config:server-addr: 127.0.0.1:8848discovery:server-addr: 127.0.0.1:8848

启动类上加,这里的WARE_ID,是 Data Id,对应上

@NacosPropertySource(dataId = "WARE_ID", autoRefreshed = true)
@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication springApplication = new SpringApplication(Application.class);ConfigurableApplicationContext configurableApplicationContext = springApplication.run(args);}
}

nacos页面上添加配置
在这里插入图片描述

然后代码config

import com.alibaba.nacos.api.annotation.NacosInjected;
import com.alibaba.nacos.api.exception.NacosException;
import com.alibaba.nacos.api.naming.NamingService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
@Configuration
public class NacosConfig {@Value("${server.port}")private int serverPort;@Value("${spring.application.name}")private String applicationName;@NacosInjectedprivate NamingService namingService;@PostConstructpublic void registerInstance() throws NacosException {namingService.registerInstance(applicationName, "127.0.0.1", serverPort);}}

控制层中

@RestController
public class Controller {@GetMapping("/test")public Rs tt(){return Rs.success("11");}@NacosValue(value = "${MyName:null}", autoRefreshed = true)private String myName;@NacosValue(value = "${project:null}", autoRefreshed = true)private String project;@ApiOperation(value="查询配置信息")@GetMapping(value = "/info")public String info () {return myName+":"+project;}@NacosInjectedprivate NamingService namingService;@ApiOperation(value="查询服务列表")@GetMapping(value = "/getServerList")public List<Instance> getServerList (@RequestParam String serviceName) {try {return namingService.getAllInstances(serviceName) ;} catch (Exception e){e.printStackTrace();}return null ;}}

然后启动服务,再页面查看是否正常
在这里插入图片描述
这个就可以了,然后消费

消费用的cloud

创建项目,主项目依赖pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.1</version></parent><groupId>com.tt</groupId><artifactId>nacosTt</artifactId><packaging>pom</packaging><version>1.0-SNAPSHOT</version><modules><module>test1</module></modules><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><!--springboot的版本--><spring.boot.version>2.6.6</spring.boot.version><!--SpringCloud alibaba的版本--><spring.cloud.alibaba.version>2021.0.4.0</spring.cloud.alibaba.version><!--SpringCloud的版本--><spring.cloud.version>2021.0.4</spring.cloud.version><!--mybatisPlus的版本--><mybatis_plus.version>3.5.2</mybatis_plus.version><mysql.version>8.0.28</mysql.version><lombok.version>1.18.24</lombok.version><druid.version>1.2.9</druid.version><fastjson.version>2.0.19</fastjson.version></properties><dependencyManagement>//这三必须要<dependencies><!-- Spring Boot Dependencies --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring.boot.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring.cloud.alibaba.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring.cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement></project>

子项目创建,依赖,这里用的openfeign调用

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>nacosTt</artifactId><groupId>com.tt</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>test1</artifactId><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--feign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId></dependency><!-- Nacos 组件依赖 --><!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery --><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><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency></dependencies>
</project>

配置文件

# application.yaml
spring:application:name: openfeignProjectcloud:nacos:config:server-addr: http://127.0.0.1:8848
server:port: 9125

启动类,添加@EnableFeignClients

package com.tt;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ConfigurableApplicationContext;/*** @author lhd*/
@EnableFeignClients
@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication springApplication = new SpringApplication(Application.class);ConfigurableApplicationContext configurableApplicationContext = springApplication.run(args);}}

然后调用

package com.tt.tt.controller;import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;@FeignClient("nacosProject")
public interface ProviderClient {@GetMapping("/test")String hi();
}

控制层调用

package com.tt.tt.controller;import com.tt.tt.common.Rs;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class Controller {@AutowiredProviderClient providerClient;@GetMapping("/test1")public Rs tt(){return Rs.success(providerClient.hi());}}

添加cloud服务端

pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>nacosTt</artifactId><groupId>com.tt</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>nacos</artifactId><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 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><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId></dependency></dependencies></project>

application.yml

# application.yaml
spring:application:name: nacosProjectcloud:nacos:discovery:  #注册server-addr: 127.0.0.1:8848config:   # 配置中心server-addr: 127.0.0.1:8848file-extension: ymlconfig:import:#      nacosProject-dev.yml 与nacos中dataId一致- nacos:nacosProject-dev.ymlprofiles:active: dev   # 拉取dev配置文件
server:port: 9124

在这里插入图片描述
控制层调用

@RestController
public class Controller {//project.MyName 与 配置内容中属性一直即可@Value("${project.MyName}")private String  name;@GetMapping("/test")public Rs tt(){return Rs.success(name);}}
http://www.xdnf.cn/news/107731.html

相关文章:

  • Java基础系列-HashMap源码解析1-BST树
  • 深入剖析PHP反弹Shell:OSCP场景下的实现、原理与优化
  • 深入理解IP地址、端口号、字节序及其应用
  • 困局与破局:当传统校园能源管理遭遇“散沙式“能耗困局
  • Python图形界面编程(一)
  • HTML表格居中显示、在表格中插入音频文件、表格分行列显示
  • SpringBoot入门实战(第七篇:项目接口-商品管理)
  • 考研单词笔记 2025.04.23
  • es的range失效
  • 如何在Spring Boot中实现热加载以避免重启服务器
  • 数据治理体系的“三驾马车”:质量、安全与价值挖掘
  • 武汉昊衡科技OLI光纤微裂纹检测仪:高密度光器件的精准守护者
  • JavaWeb学习打卡-Day2-Mysql索引、事务
  • 浅试MCP:spring ai使用mcp调用deepseek的API接口
  • IDEA中Quarkus框架(3.13版本)容器编排、压测与调优、注意事项等
  • element-ui transfer 组件源码分享
  • 永磁同步电机控制算法--零d轴电流IF控制
  • 幂等性设计保障系统可靠性和数据一致性
  • 顺序表专题
  • 结合地理数据处理
  • 数据流量采集系统的实现
  • 为什么Spring中@Bean注解默认创建单例Bean
  • TORL:解锁大模型推理新境界,强化学习与工具融合的创新变革
  • 将 MySQL 8 主从复制延迟优化到极致
  • cgdb的基础使用教程
  • 制造业数字化转型标杆解析:从冀凯机电到君乐宝的启示
  • Java类加载器(ClassLoader)及其相关类 简介
  • 【C++】AVL树
  • 《从卷积核到数字解码:CNN 手写数字识别实战解析》
  • 蚊子的搜索距离可达60公里:对一些特殊气味有所偏爱