Nacos这个单词是由NameServer注册中心和configuration即注册中心,这两个单词的首写字母组成的。至于s是指service指该注册/配置中心都是以服务为核心。
Nacos在这里下载
SpringCloudAlibaba是即插即用的,代码侵入性很小。但是他的导包却对版本有着偏执的要求。
此项目的springBoot版本为2.6.7
更具官方文档描述,我在这里选用对应的springCloud和SpringCloudAlibaba版本。
官方文档地址为
在主POM文件中在子POM文件中com.alibaba.cloud spring-cloud-alibaba-dependencies 2021.0.1.0 pom import org.springframework.cloud spring-cloud-dependencies 2021.0.1 pom import
在这里我们一步到位,也引入远程调用openFeign所需的包
书写配置文件com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery org.springframework.cloud spring-cloud-starter-openfeign org.springframework.cloud spring-cloud-loadbalancer
在application.properties中
#服务名 spring.application.name=ThirdParty #Nacos Server 的地址 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
第一个为自己起的服务名
第二个为nacos的地址和端口号
重启项目@EnableDiscoveryClient
以供Nacos进行扫描和注册
重启项目,在浏览器输入网址。检查是否注册成功
引入远程调用组件openFeign 导包http://192.168.127.1:8848/nacos/index.html#/login
服务列表又数据,既表示注册成功(服务名为自己取得名字)
账号和密码默认为nacos
我们在搭建Nacos时已经导过了就是下图
如果在这里提示找不到这两个包80%的原因是没有在主pom.xml文件中引入
在其中一个子项目中新建feign包,feign包下新建feign接口用于远程调用
package com.zxl.feign;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@Component
@FeignClient(value = "ThirdParty")
public interface DeptFeignService {
@RequestMapping(value = "/phone/sendMessage", method = RequestMethod.GET)
String sendMessage(@RequestParam("phoneNum") String phoneNum);
}
自动注入该接口这里FeignClient后面跟的value是指想被调用的服务名,我们在application.perproties中配置的
第三方服务ThirdParty的名字
在想要远程调用的类中,自动注入该feign接口
源码在GITEE



