栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

SpringCloudAlibaba Nacos案例及feign远程调用

SpringCloudAlibaba Nacos案例及feign远程调用

1、创建两个工程:nacos-provider、nacos-consumer

创建生产者

略(消费者创建和生产者类似)

最终结构图

2、生产者代码

(1)ProviderController代码如下:   

@RestController
public class ProviderController {

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

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

(2)application.yml配置如下:

server:
  port: 18070
myName: nacos

(3)生产者注册到Nacos

1》添加依赖


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

   
        com.alibaba.cloud
        spring-cloud-starter-alibaba-nacos-discovery
   

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

       

   



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

       
            com.alibaba.cloud
            spring-cloud-alibaba-dependencies
            2.1.0.RELEASE
            pom
            import
       

   

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

myName: nacos
server:
  port: 18070
spring:
  application:
    name: nacos-provider
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

3》通过Spring Cloud原生注解 @EnableDiscoveryClient 开启服务注册发现功能

@SpringBootApplication
@EnableDiscoveryClient
public class NacosProviderApplication {

    public static void main(String[] args) {
        SpringApplication.run(NacosProviderApplication.class, args);
    }

}

效果如下:

 注意细节:

重启了电脑后,可能会出现Nacos连接不上的情况,原因是电脑ip发生了改变,而Nacos缓存了之前的ip地址.

 

重启Nacos命令:

cd nacos/bin

sh shutdown.sh

sh startup.sh -m standalone

注意!!!  1.若还不好用,删除data目录后重启电脑! 2.删除data目录有可能会删掉下文"配置中心"配置的文件,所以删除后应确认页面中的配置中心是否需要重新添加!

3、消费端代码

(1)ConsumerController代码

@RestController
public class ConsumerController {

    @GetMapping("hi")
    public String hi() {
        return "hi provider!";
    }
}

(2)application.yml

 server:
  port: 18080

(3)消费者注册到Nacos

  1》添加依赖:同生产者

  2》在application.yml中配置nacos的服务名及服务地址:同生产者(application:name值由nacos-provider改为nacos-consumer)

  3》在引导类(NacosConsumerApplication.java)中添加@EnableDiscoveryClient注解:同生产者

效果如下:

 4、使用feign调用服务

1》在nacos-consumer模块的pom.xml文件中 引入依赖

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

2》在NacosConsumerApplication类上添加@EnableFeignClients注解:

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class NacosConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(NacosConsumerApplication.class, args);
    }

}

3》编写feignClient

@FeignClient("nacos-provider")
public interface ProviderClient {

    @RequestMapping("hello")
    public String hello();
}

4》在Controller中使用feignClient

@RestController
public class ConsumerController {

    @Autowired
    private ProviderClient providerClient;

    @GetMapping("hi")
    public String hi() {
        return providerClient.hello();
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/582228.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号