nacos使用方法:
在docker容器中创建nacos
docker run -d \ --name nacos \ --env-file ./nacos/custom.env \ -p 8848:8848 \ -p 9848:9848 \ -p 9849:9849 \ --restart=always \ nacos/nacos-server:v2.1.0-slim
网址为ip:8848/nacos,账号密码都是nacos
服务注册:
在pop.xml中引入依赖
<!--nacos 服务注册发现--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
在application.yml中加入
spring: application: name: nacos-service # 服务名称 cloud: nacos: server-addr: 192.168.77.101:8848 # nacos地址
服务发现:
做服务注册相同操作
使用openfeign调用服务:
引入依赖:
<!--openFeign--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <!--负载均衡器--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency>
在启动类中加入@EnableFeignClients注解
@EnableFeignClients(basePackages = "com.hmall.api.client") @MapperScan("com.hmall.item.mapper") @SpringBootApplication public class ItemApplication { public static void main(String[] args) { SpringApplication.run(ItemApplication.class, args); } }
在api模块中定义一个远程调用类
@FeignClient("item-service") public interface ItemClient { @GetMapping("/items") List<ItemDTO> queryItemByIds(@RequestParam("ids") Collection<Long> ids);
}
来看看Controller的方法
@GetMapping
public List<ItemDTO> queryItemByIds(@RequestParam("ids") List<Long> ids){
return itemService.queryItemByIds(ids);
}
是不是很像呢~都是是调用接口完成,但本质上两者是截然不同的
使用时只要将在pom中引入api模块的坐标即可使用
如此,远程调用和服务注册&发现就配置完了
标签:服务,openfeign,spring,nacos,ids,8848,cloud From: https://www.cnblogs.com/changeyi/p/18487338