当前位置: 代码网 > it编程>编程语言>Java > Spring Cloud之注册中心Nacos的使用详解

Spring Cloud之注册中心Nacos的使用详解

2025年03月15日 Java 我要评论
naacosnacos是spring cloud alibaba的组件, spring cloud alibaba遵循spring cloud中定义的服务注册, 服务发现规范. 因此使⽤nacos和使

naacos

nacos是spring cloud alibaba的组件, spring cloud alibaba遵循spring cloud中定义的服务注册, 服务发现规范. 因此使⽤nacos和使⽤eureka对于微服务来说,并没有太⼤区别.
主要差异在于:

• eureka需要⾃⼰搭建⼀个服务, nacos不⽤⾃⼰搭建服务, 组件已经准备好了, 只需启动即可.
• 对应依赖和配置不同

服务注册/服务发现

nacos的服务注册和服务发现代码⼀样。 

引⼊spring cloud alibaba依赖

在⽗⼯程的pom⽂件中的 <dependencymanagement> 中引⼊spring cloud alibaba的依赖:

<properties>
    <spring-cloud-alibaba.version>2022.0.0.0-rc2</spring-cloud-alibaba.version>
</properties>
<dependencymanagement>
    <dependencies>
        <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>
</dependencymanagement>

注意: spring boot 和spring cloud的版本是有⼀定对应关系的. spring cloud alibaba也遵循
spring cloud 的标准, 在引⼊依赖时, ⼀定要确认各个版本的对应关系.
spring cloud alibaba 和spring cloud版本对应关系, 参考官⽅⽂档:-》链接
版本在⼀定范围内可以⾃由选择.

引入nacos依赖

在order-service和product-service中引⼊nacos依赖:

<dependency>
    <groupid>com.alibaba.cloud</groupid>
    <artifactid>spring-cloud-starter-alibaba-nacos-discovery</artifactid>
</dependency>

引入load balance依赖

<dependency>
    <groupid>org.springframework.cloud</groupid>
    <artifactid>spring-cloud-loadbalancer</artifactid>
</dependency>

配置nacos地址

配置项key默认值说明
服务端地址

spring.cloud.nacos.discovery.

server-addr

nacos server 启动监听的ip地址和端⼝

spring:
  application:
    name: product-service
  cloud:
    nacos:
      discovery:
        server-addr: 47.98.109.138:8848

服务端调用

1. 修改ip为项⽬名

package order.service;
import order.mapper.ordermapper;
import order.model.orderinfo;
import order.model.productinfo;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.service;
import org.springframework.web.client.resttemplate;
@service
public class orderservice {
    @autowired
    private ordermapper ordermapper;
    @autowired
    private resttemplate resttemplate;
    public orderinfo selectorderbyid(integer orderid){
        orderinfo orderinfo = ordermapper.selectorderbyid(orderid);
        string url = "http://product-service/product/"+orderinfo.getproductid();
        productinfo productinfo = resttemplate.getforobject(url, productinfo.class);
        orderinfo.setproductinfo(productinfo);
        return orderinfo;
    }
}

2. 为resttemplate添加负载均衡注解 @loadbalanced

package order.config;
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;
@configuration
public class beanconfig {
    @bean
    @loadbalanced
    public resttemplate resttemplate(){
        return new resttemplate();
    }
}

启动服务

启动两个服务, 观察nacos的管理界⾯, 发现order-service 和product-service 都注册在nacos上了。

测试负载均衡

多次访问“http://127.0.0.1:8080/order/1”,可以看到,每个服务实例接受的请求数量都差不多:

到此这篇关于spring cloud之注册中心之nacos的使用的文章就介绍到这了,更多相关spring cloud注册中心nacos内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com