1.基本原理概述
在微服务调用过程中主要是两个角色一个是服务的消费者,一个是服务的提供者
服务提供者:提供接口供其它微服务访问
服务消费者:调用其它微服务提供的接口
大型微服务项目中,服务提供者的数量会非常多,为了管理这些服务,就需要注册中心来对这些服务进行一个统一管理,服务消费者,服务提供者,注册中心三者关系:

1.服务消费者先把自己的服务放在注册中心统一进行管理
2.服务消费者在需要服务调用时向注册中心发起申请
3.服务消费者根据负载均衡策略进行服务的挑选调用
2.主流的注册中心管理工具
3.Nacos注册中心
由于Nacos是国内产品,中文文档比较丰富,而且同时具备配置管理功能,因此在国内使用较多,所以介绍nacos注册中心管理工具
4.Nacos注册发现
1.导入依赖

com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
2.yaml配置文件

spring:
application:
name: item-service #注册到Nacos的服务名,不写会报错
cloud:
nacos:
discovery: #服务注册
server-addr: localhost:8848
3.测试

可以发现已经注册成功
5.服务调用
这里我使用的是openFeign来进行远程服务的调用
1.导入依赖

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

在这里我新建了一个hm-api的模块
3.建立client接口

package com.hmall.api.client;
import com.hmall.api.config.DefaultFeignConfig;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Collection;
@FeignClient(value = "cart-service",configuration = DefaultFeignConfig.class)
public interface CartClient {
@DeleteMapping("/carts")
void deleteCartItemByIds(@RequestParam("ids") Collection ids);
}
package com.hmall.api.config;
import com.hmall.common.utils.UserContext;
import feign.Logger;
import feign.RequestInterceptor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@Slf4j
public class DefaultFeignConfig {
@Bean
public Logger.Level feignLogLevel(){
return Logger.Level.FULL;
}
}
建立完成api后打jar包然后回到消费者处pom导入内部依赖

5.引导类加注解

6.调用

发现可以直接注入itemClient

调用成功功能实现
登录查看全部
参与评论
手机查看
返回顶部