首页 > 其他分享 >微服务 – Spring Cloud – Nacos服务注册、发现

微服务 – Spring Cloud – Nacos服务注册、发现

时间:2023-10-26 11:02:43浏览次数:28  
标签:服务 Spring class Nacos nacos cloud id public Cloud


微服务 – Spring Cloud – Nacos服务注册、发现

服务注册


文章目录

  • 微服务 – Spring Cloud – Nacos服务注册、发现
  • 服务注册
  • 1、引入依赖
  • 2、配置文件
  • 3、主启动类
  • 4、业务类 写一个接口供服务发现者使用
  • 服务发现
  • 1、引入依赖
  • 2、配置文件
  • 3、主启动类
  • 4、发现第一个服务 并调用第一个服务提供的接口


1、引入依赖

父pom依赖

<!--spring cloud alibaba 2.1.0.RELEASE-->
<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>

子pom依赖

<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2、配置文件

server:
  port: 9001

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:7848

management:
  endpoints:
    web:
      exposure:
        include: '*'

3、主启动类

@SpringBootApplication
@EnableDiscoveryClient
public class AlibabaPaymentMain9001 {

    public static void main(String[] args) {
        SpringApplication.run(AlibabaPaymentMain9001.class, args);
    }

}

第三部完成 打开nacos 在服务列表即可看到注册进来的服务.

4、业务类 写一个接口供服务发现者使用

@RestController
public class PaymentController {

    @Value("${server.port}")
    private String serverPort;

    @GetMapping(value = "/payment/nacos/{id}")
    public String getPayment(@PathVariable("id") Integer id) {
        return "nacos registery , server port: " + serverPort + "\t id: " + id;
    }

}

服务发现

1、引入依赖

<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2、配置文件

server:
  port: 9002

spring:
  application:
    name: nacos-payment-consumner
  cloud:
    nacos:
      discovery:
        server-addr: localhost:7848

management:
  endpoints:
    web:
      exposure:
        include: '*'

3、主启动类

@SpringBootApplication
@EnableDiscoveryClient
public class AlibabaConsumnerMain9002 {

    public static void main(String[] args) {
        SpringApplication.run(AlibabaConsumnerMain9002.class, args);
    }

}

打开nacos 在服务列表即可看到注册进来的服务.

4、发现第一个服务 并调用第一个服务提供的接口

nacos默认支持负载,因为底层nacos包集成了Ribbon

服务调用用的还是RestTemplate

在第二个服务中,配置RestTemplate

@Configuration
public class ApplicationContextConfig {

    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }

}

业务类中调用第一个服务的接口

@RestController
public class ConsumnerController {

    public static final String SERVER_URL = "http://nacos-payment-provider";

    @Resource
    private RestTemplate restTemplate;

    @GetMapping("/consumer/{id}")
    public String paymentInfo(@PathVariable("id") Long id) {
        return restTemplate.getForObject(SERVER_URL + "/payment/nacos/" + id, String.class);
    }

}

访问http://localhost:9002/consumer/1

nacos registery , server port: 9001 id: 1


标签:服务,Spring,class,Nacos,nacos,cloud,id,public,Cloud
From: https://blog.51cto.com/u_15524534/8031006

相关文章

  • Spring Boot版本号介绍和使用说明
    官网地址:https://spring.io/projects/spring-boot#learn下面是从官网的截图的官方版本号SpringBoot的版本号分析:1)主版本,主版本一般情况下是不变的,除非有大机制或者是架构的调整,才会去调整主版本,且主版本之间一般是不相兼容的。2)次版本,次版本主要是在主版本架构不管的......
  • SpringBoot 缓存Ehcache的使用说明
    pring缓存(cache)是在Spring3.1开始引入的,但是其本身只提供了缓存接口,不提供具体缓存的实现,其实现需要第三方缓存实现(Generic、EhCache、Redis等)。EhCache、Redis比较常用,使用Redis的时候需要先安装Redis服务器。为什么引入缓存提升服务性能例如在项目开发完成以后,随着时间推移,各种......
  • SpringBoot 实现大文件断点续传
    最近在工作中有涉及到文件上传功能,需求方要求文件最大上限为1G,如果直接将文件在前端做上传,会出现超长时间等待,如果服务端内存不够,会直接内存溢出,此时我们可以通过断点续传方式解决,前端我们通过WebUploader实现文件分割和上传,语言是React,后端我们通过SpringBoot实现文件接收和组装......
  • SpringMVC-通过路径传收参数
    还有一种通过路径传输参数,效果如下实现:packagecom.aurora.path;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.PathVariable;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springfr......
  • Nacos相关技术文档&Golang操作Nacos实现配置监听的代码
    Nacos相关技术文档Nacos中文文档~~~(三)Nacos开发教程之服务数据持久化(四)Nacos开发教程之SpringCloud集成服务注册(参考,后续用go实现)(五)Nacos开发教程之SpringCloud集成配置管理(参考,后续用go实现)(六)Nacos开发教程之后台系统使用~~~Mac-M1电脑本地使用docker搭建Nacos-Server参考:http......
  • 【Springcloud】Spring Cloud启动应用时指定IP或忽略某张网卡配置(eureka指定IP注册)
    参考于:https://blog.csdn.net/weixin_40783112/article/details/80396830背景springcloud服务注册到eureka,但部署的节点存在多网卡,导致服务注册到eureka的服务信息,被另外的服务无法调用到。解决方案:通过启动参数,指定IP,这样的话,注册到eureka就是可以被调用到了。-espri......
  • Spring Boot整合OAuth2实现GitHub第三方登录
    GithubOAuth第三方登录示例1、第三方登录原理第三方登录的原理是借助OAuth授权来实现,首先用户先向客户端提供第三方网站的数据证明自己的身份获取授权码,然后客户端拿着授权码与授权服务器建立连接获得一个AccessToken,之后客户端就可以通过AccessToken来与资源服务器进行交互......
  • 一篇了解springboot3请求参数种类及接口测试
    SpringBoot3数据请求:原始数据请求://原始方式@RequestMapping("/simpleParam")publicStringsimpleParam(HttpServletRequestrequest){//获取请求参数Stringname=request.getParameter("name");Stringage=request.getParame......
  • 实战系列(一)Dubbo和Spring Cloud的区别,包含代码详解
    Dubbo和SpringCloud都是微服务架构中的重要框架,但它们的定位和关注点不同。Dubbo是阿里巴巴开源的一个高性能、轻量级的RPC框架,主要用于构建微服务之间的服务治理。而SpringCloud是基于SpringBoot的一个微服务架构开发工具,它提供了一系列的开发工具和服务,帮助开发者快......
  • Springboot 启动
    参考:rhyme  : SPRINGBOOT启动流程及其原理fhfirehuo: SpringBoot的启动流程Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等;但他们的基础都是Spring的ioc和aop,ioc 提供了依赖注入的容器, aop解决了面向切面编程,然后在此两者的基础上实现了其他延......