当前位置: 首页 > 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);}}

相关文章:

  • 数据结构手撕--【栈和队列】
  • 初识分布式事务原理
  • 【敏矽微ME32G030系列】介绍、环境搭建、工程测试
  • 《重塑AI应用架构》系列: Serverless与MCP融合创新,构建AI应用全新智能中枢
  • LangChain4j(13)——RAG使用3
  • vscode+cmake高阶使用
  • SimVG论文精读
  • php基础
  • Nacos自动刷新配置源码解析
  • Ubuntu22.04新版本谷歌无法使用搜狗输入法/中文不显示
  • 组织级项目管理OPM
  • Spark 集群搭建:Standalone 模式详解
  • 天梯赛补题
  • Kafka 详解
  • Qt creator 16.0.1 语言家失效解决方法
  • 使用 VSCode 编写 Markdown 文件
  • Vscode已经打开的python项目,如何使用已经建立的虚拟环境
  • 局部最小实验--用最小成本确保方向正确
  • 信息学奥赛一本通 1505:【例 2】双调路径 | 洛谷 P5530 [BalticOI 2002] 双调路径
  • 03-谷粒商城笔记
  • 现场观察·国防部记者会|美将举行大演习“应对中国”,备战太平洋引发关注
  • 中国牵头制定,在线旅游机构和展览与活动领域ISO国际标准发布
  • 山西省朔州市政府党组成员、副市长李润军接受审查调查
  • 白宫称中美贸易协议谈判取得进展,外交部回应
  • 复旦大学校友夫妇一次性捐赠10亿元,成立学敏高等研究院
  • 亮相!神二十乘组与中外媒体记者集体见面