SpringCloud整合Feign及Nacos搭建一个简单微服务工程

概述

在之前的微服务项目中注册中心可能用的多的是Eureka整合SpringCloud,最近看了下阿里开源的Nacos,个人感觉蛮好用的。它自带的配置中心可以让开发者更加轻松的搭建一个微服务环境。Nacos环境搭建也非常简单,前面我已经关于Nacos环境搭建做了很详细的介绍,这里我就不在重复描述了
Nacos环境搭建

工程搭建

1.首先我们先用SpringBoot创建2个工程,我这里就叫:provider,consumer.
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第1张图片
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第2张图片
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第3张图片
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第4张图片
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第5张图片
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第6张图片
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第7张图片
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第8张图片
到这里我已经设置好一个provider服务,后我我会再搭建一个消费者服务,由于操作步骤和上面一样,我就不在重复了
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第9张图片
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第10张图片
到这里我已经搭建好2个服务工程,点击apply,点击ok,工程搭建完毕
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第11张图片

服务配置

provider服务配置

1.provider代码如下和配置文件(新建的工程默认是application.properties,但是再工作中用的比较多的是yml格式,所以这里我把properties改成了yml格式)如下图
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第12张图片
2.ProviderController代码如下:

@RestController
public class ProviderController {

    @Value("${providerName}")
    private String name;

    @GetMapping("send")
    public String send(){
        return name;
    }
}

SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第13张图片
3.application.yml配置如下:

server:
  port: 8080
    
#自定义参数
providerName: provider   

4.provider注册到nacos

生产者注册到nacos注册中心,步骤:
添加依赖:spring-cloud-starter-alibaba-nacos-discovery及springCloud
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第14张图片


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

        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        

        
        
            org.springframework.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            0.9.0.RELEASE
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                Greenwich.SR2
                pom
                import
            
        
    

在 application.yml 中配置nacos服务地址和应用名

server:
  port: 8080

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

#自定义参数
providerName: provider

启动服务,然后登陆Nacos服务查看,结果如下
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第15张图片

consumer服务配置

1.首先按照我上面的引入maven依赖。
2.由于配置基本和上面一样我这里就把我代码部分例举出来
代码:

@RestController
public class ConsumerController {

    @GetMapping("consumer")
    public String send(){
        return "Consumer";
    }

}

yml配置

server:
  port: 8081

spring:
  application:
    ## 应用名
    name: consumer
  ## nacos服务地址
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

启动服务
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第16张图片

整合Feign实现远程调用

1.先引入feign相关依赖

 
            org.springframework.cloud
            spring-cloud-starter-openfeign
 

2.在ConsumerApplication类上添加@EnableFeignClients注解:
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第17张图片
3.编写feignClient:
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第18张图片

@FeignClient("provider")
public interface ProviderFeign {

    @RequestMapping("send")
     String send();
}

在Controller中使用feignClient:

@RestController
public class ConsumerController {

    @Autowired
    private ProviderFeign providerFeign;

    @GetMapping("consumer")
    public String send(){
        String send = providerFeign.send();
        return "Consumer" + send;
    }

}

测试访问:
SpringCloud整合Feign及Nacos搭建一个简单微服务工程_第19张图片

总结

至此一个简单的微服务工程已经搭建完毕。其实操作很简单,大家可以动手试试。后面我会把我这个简单的项目上传到github,大家可以参考一下

git地址:https://github.com/gph397244702/nacos-demo

你可能感兴趣的:(SpringCloud整合Feign及Nacos搭建一个简单微服务工程)