【Spring Cloud Alibaba】服务注册与发现+远程调用
在Spring Cloud Alibaba中,服务注册与发现通过Nacos实现,远程调用通过OpenFeign实现。以下是一个简单的例子:
- 引入依赖(pom.xml):
<dependencies>
<!-- Spring Cloud Alibaba Nacos Discovery -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- Spring Cloud Alibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- Spring Cloud OpenFeign -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
- 配置application.properties或application.yml:
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 # Nacos Server 地址
config:
server-addr: 127.0.0.1:8848 # Nacos Server 地址
file-extension: yaml # 配置文件后缀名
- 启动类添加注解:
@EnableDiscoveryClient
@SpringBootApplication
public class NacosProviderApplication {
public static void main(String[] args) {
SpringApplication.run(NacosProviderApplication.class, args);
}
}
- 创建Feign客户端接口:
@FeignClient("service-provider") // 服务提供者名称
public interface EchoService {
@GetMapping("/echo/{str}")
String echo(@PathVariable("str") String str);
}
- 使用Feign客户端:
@RestController
public class TestController {
@Autowired
private EchoService echoService;
@GetMapping("/echo/{str}")
public String echo(@PathVariable String str) {
return echoService.echo(str);
}
}
以上代码展示了如何在Spring Cloud Alibaba项目中使用Nacos作为服务注册中心,以及如何使用Feign客户端进行远程调用。在实际应用中,你需要配置Nacos Server的地址,并确保Nacos Server正常运行。同时,你需要定义服务提供者的接口,并使用@EnableFeignClients
注解开启Feign客户端的支持。
评论已关闭