• 【微服务~Nacos】Nacos服务提供者和服务消费者


    ??这里是【微服务~Nacos】,关注我学习云原生不迷路
    ??如果对你有帮助,给博主一个免费的点赞以示鼓励
    欢迎各位??点赞??评论收藏

    ??专栏介绍

    【微服务~Nacos】 目前主要更新微服务,一起学习一起进步。

    ??本期介绍

    本期主要介绍微服务~Nacos

    文章目录

    搭建父项目

    服务提供者Provider

    搭建服务

    创建服务

    查看服务

    注册异常

    服务消费者Consumer

    搭建服务

    创建服务

    查询服务

    搭建父项目

    • 项目名:nacos-parent-2.1

    • 添加坐标

      org.springframework.cloud spring-cloud-build 2.3.5.RELEASE
      
          Hoxton.SR12
          2.2.7-SNAPSHOT
          3.4.0
          1.1.10
          2.7.0
          0.9.0
          2.9.7
      
      
      
      
          
              
              
                  org.springframework.boot
                  spring-boot-dependencies
                  ${spring-boot.version}
                  pom
                  import
              
      
              
                  org.springframework.cloud
                  spring-cloud-dependencies
                  ${spring.cloud.version}
                  pom
                  import
              
      
              
                  com.alibaba.cloud
                  spring-cloud-alibaba-dependencies
                  2.2.7.RELEASE
                  pom
                  import
              
      
              
              
                  com.baomidou
                  mybatis-plus-boot-starter
                  ${mybatis.plus.starter.version}
              
      
              
              
                  com.alibaba
                  druid-spring-boot-starter
                  ${durid.starter.version}
              
      
              
              
                  io.springfox
                  springfox-swagger2
                  ${swagger.version}
              
              
                  io.springfox
                  springfox-swagger-ui
                  ${swagger.version}
              
          
      
      
      
          
              
                  org.apache.maven.plugins
                  maven-javadoc-plugin
                  
                      true
                  
              
          
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
      • 43
      • 44
      • 45
      • 46
      • 47
      • 48
      • 49
      • 50
      • 51
      • 52
      • 53
      • 54
      • 55
      • 56
      • 57
      • 58
      • 59
      • 60
      • 61
      • 62
      • 63
      • 64
      • 65
      • 66
      • 67
      • 68
      • 69
      • 70
      • 71
      • 72
      • 73
      • 74
      • 75
      • 76
      • 77
    • 项目目录结构

    服务提供者Provider

    搭建服务

    • 创建项目:nacos-provider-2.1

    • 添加依赖:

      org.springframework.boot spring-boot-starter-web
          
          
              com.alibaba.cloud
              spring-cloud-starter-alibaba-nacos-discovery
          
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    • 创建yml文件

      #server.port=8070
      #spring.application.name=service-provider
      #spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
      #端口号
      server:
      port: 8070

      spring:
      application:
      name: service-provider #服务名
      cloud:
      nacos:
      discovery:
      server-addr: 127.0.0.1:8848 #nacos服务地址

    创建服务

    • 启动类

    package com.czxy.nacos;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    
    
    @SpringBootApplication
    @EnableDiscoveryClient      //服务发现
    public class TestNacosProviderApplication {
        public static void main(String[] args) {
            SpringApplication.run(TestNacosProviderApplication.class, args );
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 处理类controller

    package com.czxy.controller;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    import javax.servlet.http.HttpServletRequest;
    
    
    @RestController
    public class EchoController {
    
        @Resource
        private HttpServletRequest request;
    
        @GetMapping("/echo/{string}")
        public String echo(@PathVariable String string) {
            int serverPort = request.getServerPort();
            return "Hello Nacos Discovery " + string + ":" + serverPort;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    查看服务

    • 通过浏览器访问

    http://localhost:8070/echo/abc

    • 通过Nacos控制台查看

    注册异常

    服务消费者Consumer

    搭建服务

    • 项目名:nacos-consumer-2.1

    • 添加依赖

      org.springframework.boot spring-boot-starter-web
          
          
              com.alibaba.cloud
              spring-cloud-starter-alibaba-nacos-discovery
          
      
          
          
              org.springframework.cloud
              spring-cloud-starter-openfeign
          
      
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
    • 创建配置文件

    #server.port=8071
    #spring.application.name=service-consumer
    #spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
    #端口号
    server:
      port: 8071
    
    spring:
      application:
        name: service-consumer          #服务名
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848   #nacos服务地址
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    创建服务

    • 创建启动类

    package com.czxy;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    
    
    @SpringBootApplication
    @EnableDiscoveryClient  //服务发现
    public class TestNacosConsumerApplication {
        public static void main(String[] args) {
            SpringApplication.run(TestNacosConsumerApplication.class, args );
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 远程调用配置类

    package com.czxy.config;
    
    import org.springframework.cloud.client.loadbalancer.LoadBalanced;
    import org.springframework.context.annotation.Bean;
    import org.springframework.stereotype.Component;
    import org.springframework.web.client.RestTemplate;
    
    
    @Component
    public class RestTemplateConfig {
        @LoadBalanced   //负载均衡
        @Bean
        public RestTemplate restTemplate() {
            return new RestTemplate();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 处理类

      package com.czxy.nacos.controller;

      import org.springframework.web.bind.annotation.PathVariable;
      import org.springframework.web.bind.annotation.RequestMapping;
      import org.springframework.web.bind.annotation.RequestMethod;
      import org.springframework.web.bind.annotation.RestController;
      import org.springframework.web.client.RestTemplate;

      import javax.annotation.Resource;

      @RestController
      public class TestRestController {
      @Resource
      private RestTemplate restTemplate;

      @RequestMapping(value = "/echo/{str}", method = RequestMethod.GET)
      public String echo(@PathVariable String str) {
          return restTemplate.getForObject("http://service-provider/echo/" + str, String.class);
      }
      
      • 1
      • 2
      • 3
      • 4

      }

    查询服务

    • 通过浏览器访问

    http://localhost:8071/echo/abc

    通过Nacos控制台查看

  • 相关阅读:
    前端无法获取Django自定义响应头 Response Header
    The First项目报告:Stargate Finance重塑跨链金融的未来
    Sip多按键对讲分机,洁净室专用对讲终端
    async await
    如何使用固定公网地址SFTP远程传输文件至安卓Termux本地目录?
    为什么我们提供了新的公共镜像库
    混淆技术研究笔记(四)反篡改介绍
    Redis主从复制基础概念
    C++模板总结
    AC自动机
  • 原文地址:https://blog.csdn.net/m0_54853503/article/details/126053345