使用spring cloud alibaba-使用Feign

继续上一个项目,在创建一个与nacos2一样的服务,只修改一下端口号一样,这个操作与springcloud类似,创建多个实例组集群。

然后在创建一个server-one,用来消费。

还是创建springboot,然后引入必要依赖

使用spring cloud alibaba-使用Feign_第1张图片

相比于之前的多一个feign

 

因为feign属于springcloud,所以需要在pom中设置springcloud 的版本库



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.2.8.RELEASE
         
    
    com.cloudalibaba
    server-one
    0.0.1-SNAPSHOT
    server-one
    Demo project for Spring Boot

    
        1.8
        2.2.1.RELEASE
        Hoxton.SR6
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        

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

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

    
        
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                ${spring-cloud-alibaba.version}
                pom
                import
            
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


我使用的是Hoxton.SR6,版本与springboot的对应关系可以百度一下。

然后feign的依赖就会下载对应的版本。

因为spring-cloud-alibaba.version中没有feign,所以不设置会报错,由于后来会用到springcloud中别的东西,所以就设置统一版本号。

设置yml,与之前的没什么差异

server:
  port: 8001
spring:
  application:
    name: server-one
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
        #命名空间
        #namespace: b7d26021-28b5-42d1-b36d-737a818a2146

然后创建一个controller和一个feign

使用spring cloud alibaba-使用Feign_第2张图片

feign如下,指向nacos-server

/**
 * @author wqy
 * @version 1.0
 * @date 2020/7/22 18:52
 */
@FeignClient(value = "nacos-server")
public interface NacosFeign {

    @RequestMapping(value = "/hello")
    String hello();

}

controller就是调用feign,

/**
 * @author wqy
 * @version 1.0
 * @date 2020/7/22 18:51
 */
@RestController
public class Test {

    @Autowired
    private NacosFeign nacosFeign;

    @RequestMapping(value = "/hello")
    public String hello(){

        return nacosFeign.hello();

    }

}

然后在nacos-server的两个服务中分别创建一个controller

nacos的controller如下

 
/**
 * @author wqy
 * @version 1.0
 * @date 2020/7/22 18:19
 */
@RestController
public class Test {

    @RequestMapping(value = "/hello")
    @ResponseBody
    public String hello(){

        return "hello world!";

    }

}

nacos2,controller如下

/**
 * @author wqy
 * @version 1.0
 * @date 2020/7/22 18:19
 */
@RestController
public class Test {

    @RequestMapping(value = "/hello")
    @ResponseBody
    public String hello(){

        return "hello world这里是2!";

    }

}

 

然后在server-one启动类加上启动注解,然后启动

使用spring cloud alibaba-使用Feign_第3张图片

然后在nacos中看到两个服务,nacos-server有两个实例

 

访问server-one中的controller

使用spring cloud alibaba-使用Feign_第4张图片

使用spring cloud alibaba-使用Feign_第5张图片

然后就发现feign已经完成了,并且实现了类似robbin的轮询。

你可能感兴趣的:(spring,cloud,alibaba)