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

【微服务~Nacos】Nacos服务提供者和服务消费者_第1张图片

这里是【微服务~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
                
            
        
    


  • 项目目录结构

【微服务~Nacos】Nacos服务提供者和服务消费者_第2张图片

服务提供者Provider

搭建服务

  • 创建项目:nacos-provider-2.1

  • 添加依赖:


        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
    
  • 创建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服务地址

创建服务

  • 启动类

【微服务~Nacos】Nacos服务提供者和服务消费者_第3张图片

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 );
    }
}
  •  处理类controller

【微服务~Nacos】Nacos服务提供者和服务消费者_第4张图片

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;
    }
}

查看服务

  • 通过浏览器访问

http://localhost:8070/echo/abc

【微服务~Nacos】Nacos服务提供者和服务消费者_第5张图片

  • 通过Nacos控制台查看  

【微服务~Nacos】Nacos服务提供者和服务消费者_第6张图片

注册异常

服务消费者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
        

    
  • 创建配置文件

【微服务~Nacos】Nacos服务提供者和服务消费者_第7张图片

#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服务地址

创建服务

  • 创建启动类

【微服务~Nacos】Nacos服务提供者和服务消费者_第8张图片

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 );
    }
}
  •  远程调用配置类

【微服务~Nacos】Nacos服务提供者和服务消费者_第9张图片

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();
    }
}
  •  处理类
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);
    }
}

查询服务

  • 通过浏览器访问

http://localhost:8071/echo/abc

【微服务~Nacos】Nacos服务提供者和服务消费者_第10张图片

通过Nacos控制台查看

【微服务~Nacos】Nacos服务提供者和服务消费者_第11张图片

【微服务~Nacos】Nacos服务提供者和服务消费者_第12张图片 

你可能感兴趣的:(云原生,云原生,原力计划,微服务,Nacos,spring,cloud)