> 文档中心 > 【微服务~Nacos】Nacos服务提供者和服务消费者

【微服务~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            
  • 项目目录结构

服务提供者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: 8070spring:  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 );    }}
  •  处理类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;@RestControllerpublic 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

注册异常

服务消费者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     
  • 创建配置文件

#server.port=8071#spring.application.name=service-consumer#spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848#端口号server:  port: 8071spring:  application:    name: service-consumer   #服务名  cloud:    nacos:      discovery: server-addr: 127.0.0.1:8848   #nacos服务地址

创建服务

  • 创建启动类

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

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;@Componentpublic 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;@RestControllerpublic 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控制台查看