栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringCloud Nacos 服务消费

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringCloud Nacos 服务消费

废话

大致流程其实跟SpringCloud + Eureka没太大区别,主要的坑就在于内嵌的负载均衡需要从默认的Ribbon升级为Loadbalancer

准备工作

1、搭一个Nacos

https://nacos.io/zh-cn/docs/quick-start.html

直接按照上方链接的官网教程安装一个单机版的Nacos,具体过程不在赘诉。

需要注意的是,安装Maven的时候,记得将数据源切换成阿里云的或者其他国内云的镜像地址,不然的话在构建的时候有可能有些包找不到。

//打开maven根目录的conf文件夹,打开settings.xml文件,在合适的地方加上下面这一段
        
        
            alimaven
            central
            aliyun maven
            http://maven.aliyun.com/nexus/content/repositories/central/
        

2、准备两个SpringCloud项目

一个做服务提供者,一个做消费者

开搞

1、导包

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

        
            org.springframework.boot
            spring-boot-starter-freemarker
        

        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            2021.1
            
            
                
                    org.springframework.cloud
                    spring-cloud-starter-netflix-ribbon
                
            
        

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

        
            org.springframework.cloud
            spring-cloud-loadbalancer
        

2、application.yml配置,两者之间的区别就在于服务名称

spring:
  application:
    #name: test-server #服务提供者
    name: test-service #消费者
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.2.200:8848
    loadbalancer:
      ribbon:
        enabled: false #禁用ribbon

3、入口Application类加上注解

@EnableDiscoveryClient
@EnableFeignClients
@ComponentScan(basePackages = ("com.xx.xx.*"))//自己改成你的包名
@SpringBootApplication

4、编写一个服务提供接口(服务提供者端)

@RestController
public class TestController {

    @RequestMapping(value = "/test", method = {RequestMethod.POST, RequestMethod.GET})
    @ResponseBody
    public String test(String str) {
        log.error("服务者:"+str);
        return "测试接口:" + str;
    }
}

5、新建一个消费接口(消费者端)

微服务消费服务主要有三种方式(WebClient、RestTemplate、Feign),我这里用的是Feign,感觉这个用起来舒服点,至于这三个东西的性能方面有没有区别,我也不知道,如果你知道,请告诉我一声。

@Component
@FeignClient(value = "test-server")  //对应服务提供者的ID
public interface TestService {
    @GetMapping(value = "/test")
    String test(@RequestParam(name = "str") String str);
}

6、新建一个接口消费服务(消费者端)

@Slf4j
@RestController
public class TestController {

    @Autowired
    TestService testService;

    @RequestMapping(value = "/test", method = {RequestMethod.POST, RequestMethod.GET})
    @ResponseBody
    public String test(String str) {
        log.error("消费者:" + str);
        return testService.test(str);
    }
}

完事,自行调一下消费者端的test接口即可。

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

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

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