nocos注册中心使用教程

news/2025/2/11 12:49:21/

1.下载和安装

进入到官网下载就好了
在这里插入图片描述
解压

在这里插入图片描述
启动
在这里插入图片描述

2.新建提供者模块

2.1新建提供者模块cloudalibaba-provider-payment9001

2.1.1在父项目中新加入依赖

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.1.0.RELEASE</version><type>pom</type><scope>import</scope>
</dependency>

2.1.2在cloudalibaba-provider-payment9001的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>cloud2020</artifactId><groupId>com.cao.springcloud</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>cloudalibaba-provider-payment9001</artifactId><dependencies><!--SpringCloud ailibaba nacos --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- SpringBoot整合Web组件 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!--日常通用jar包配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
</project>

2.1.3yml写配置

server:port: 9001spring:application:name: nacos-payment-providercloud:nacos:discovery:server-addr: localhost:8848 #配置Nacos地址

2.1.4写主启动类、和Controller的代码

主启动类代码编写 @EnableDiscoveryClient

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

controller代码编写

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;/*** @author caowenbin* @Title: PaymentController* @Package com.cao.cloudalibaba* @Description: nacos_Controller* @date 2023/10/16 0:02*/
@RestController
public class PaymentController {@Value("${server.port}")private String serverPort;// http://localhost:9001/payment/nacos/1@GetMapping(value = "/payment/nacos/{id}")public String getPayment(@PathVariable("id") Integer id) {return "nacos registry, serverPort: " + serverPort + "\t id: " + id;}
}

在这里插入图片描述

2.1.5测试

在这里插入图片描述

2.2重复步骤2.1新建提供者cloudalibaba-provider-payment9002

同一个服务名下会出现两个实例
在这里插入图片描述
查看详情:
在这里插入图片描述

2.2.1测试

在这里插入图片描述

3.新建消费者模块cloudalibaba-consumer-nacos-order83

3.1pom文件加入依赖

<?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>cloud2020</artifactId><groupId>com.cao.springcloud</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>cloudalibaba-consumer-nacos-order83</artifactId><dependencies><!--SpringCloud ailibaba nacos --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- 引入自己定义的api通用包,可以使用Payment支付Entity --><dependency><groupId>com.cao.springcloud</groupId><artifactId>cloud-api-commons</artifactId><version>${project.version}</version></dependency><!-- SpringBoot整合Web组件 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!--日常通用jar包配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
</project>

3.2yml写配置

server:port: 83spring:application:name: nacos-order-consumercloud:nacos:discovery:server-addr: localhost:8848#消费者将要去访问的微服务名称(注册成功进nacos的微服务提供者)
service-url:nacos-user-service: http://nacos-payment-provider

##3.3主启动类

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

3.3负载均衡

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;/*** 负载均衡LoadBalanced*/
@Configuration
public class ApplicationContextBean {@Bean@LoadBalancedpublic RestTemplate getRestTemplate() {return new RestTemplate();}
}

3.4controller

import org.springframework.beans.factory.annotation.Value;
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;import javax.annotation.Resource;/*** 消费者83调用提供者9001或者9002*/
@RestController
public class OrderNacosController {@Resourceprivate RestTemplate restTemplate;//将之前固定的写法转成从配置文件中读取
//    private static final String SERVICE_URL = "http://nacos-payment-provider";@Value("${service-url.nacos-user-service}")private String serverURL;@GetMapping("/consumer/payment/nacos/{id}")public String paymentInfo(@PathVariable("id") Long id) {return restTemplate.getForObject(serverURL + "/payment/nacos/" + id, String.class);}}

4.测试

4.1同时启动9001、 9002、83

在这里插入图片描述

4.2查看注册中心

在这里插入图片描述

4.3用83访问9001/9002,轮询负载OK

http://localhost:83/consumer/payment/nacos/2
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/1155963.html

相关文章

file_get_contents 与curl 的对比

在讲区别前大家对file_get_contents 只是停留在get 方法其实file_get_contents也可以进行post请求该方法如下 $content []; $options array(http > array(method > POST,// header 需要设置为 JSONheader > Content-type:application/json,content > json_en…

GP与LP的区别,有限责任、无限责任、无限连带责任

GP与LP的区别 GP是General Partner / 普通合伙人&#xff08;英文直译&#xff09; LP是Limited Partner / 有限合伙人&#xff08;英文直译&#xff09; GP和LP是经常出现在私募股权投资中的词汇&#xff0c;其实私募股权呢就是大家合力干一件事。很多时候&#xff0c;一个…

【数据结构C/C++】十大排序算法的实现思路以及易写易记忆版代码实现

文章目录 冒泡排序选择排序插入排序归并排序快速排序&#xff08;重点讲解&#xff09;堆排序&#xff08;重点理解&#xff09;408考研各数据结构C/C代码&#xff08;Continually updating&#xff09; 冒泡排序 时间复杂度 O&#xff08;n2&#xff09; 空间复杂度 O&#x…

ubuntu静态ip地址设置

ifconfig命令显示 手动设置静态ip地址 1、ip地址 IP地址是唯一标识互联网上每个设备的地址&#xff0c;一根网线对应一个ip&#xff0c;一个计算机上可以有多个网卡&#xff0c;所以可以有多个ip地址。 私有地址的范围分别是&#xff1a; A类地址范围&#xff1a;10.0.0…

[OpenJDK:环境变量配置]:填充Profile并修改默认配置

文章目录 一&#xff1a;背景&#xff1a;安装hadoop启动提示未找到JAVA_HOME1.1&#xff1a;配置Hadoop的Java环境变量 二&#xff1a;排查-定位解决2.1&#xff1a;查看环境变量配置发现没有JAVA_HOME2.1.1&#xff1a;解决&#xff1a;查看java安装目录2.1.2&#xff1a;再次…

ChatGPT AIGC 完成Excel跨多表查找操作vlookup+indirect

VLOOKUP和INDIRECT的组合在Excel中用于跨表查询,其中VLOOKUP函数用于在另一张表中查找数据,INDIRECT函数则用于根据文本字符串引用不同的工作表。具体操作如下: 1.假设在工作表1中,A列有你要查找的值,B列是你希望查询的工作表名称。 2.在工作表1的C列输入以下公式:=VLO…

经验风险最小化ERM

经验风险最小化&#xff08;Empirical Risk Minimization&#xff0c;ERM&#xff09;是机器学习中一个常见的问题框架&#xff0c;用于构建和训练模型以最小化在训练数据集上的损失函数。该框架的目标是通过最小化训练数据上的经验风险来选择和调整模型的参数&#xff0c;以期…

qt-C++基于QWidget的程序模板

qt-C基于QWidget的程序模板 code review! 文章目录 qt-C基于QWidget的程序模板1.文件结构1.widget.h2.widget.cpp3.main.cpp4.mytest.pro5.widget.ui 1.文件结构 1.widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { cl…