Nacos服务注册与发现

打印 上一主题 下一主题

主题 870|帖子 870|积分 2610

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

1.服务消费者先把自己的服务放在注册中心同一进行管理
2.服务消费者在需要服务调用时向注册中心发起申请
3.服务消费者根据负载均衡计谋进行服务的挑选调用
2.主流的注册中心管理工具

  • Eureka:Netflix公司出品,如今被集成在SpringCloud当中,一般用于Java应用
  • Nacos:Alibaba公司出品,如今被集成在SpringCloudAlibaba中,一般用于Java应用
  • Consul:HashiCorp公司出品,如今集成在SpringCloud中,不限制微服务语言
3.Nacos注册中心
由于Nacos是国内产物,中文文档比较丰富,而且同时具备设置管理功能,因此在国内使用较多,以是介绍nacos注册中心管理工具
4.Nacos注册发现
1.导入依靠

点击检察代码
  1.         <dependency>
  2.             <groupId>com.alibaba.cloud</groupId>
  3.             <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  4.         </dependency>
复制代码
2.yaml设置文件

点击检察代码
  1. spring:
  2.   application:
  3.     name: item-service  #注册到Nacos的服务名,不写会报错
  4.   cloud:
  5.     nacos:
  6.       discovery: #服务注册
  7.         server-addr: localhost:8848
复制代码
3.测试

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

点击检察代码
  1.         
  2.         <dependency>
  3.             <groupId>org.springframework.cloud</groupId>
  4.             <artifactId>spring-cloud-starter-openfeign</artifactId>
  5.         </dependency>
  6.         
  7.         <dependency>
  8.             <groupId>org.springframework.cloud</groupId>
  9.             <artifactId>spring-cloud-starter-loadbalancer</artifactId>
  10.         </dependency>
复制代码
2.新建模块处理惩罚远程调用

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

点击检察代码
  1. package com.hmall.api.client;
  2. import com.hmall.api.config.DefaultFeignConfig;
  3. import org.springframework.cloud.openfeign.FeignClient;
  4. import org.springframework.web.bind.annotation.DeleteMapping;
  5. import org.springframework.web.bind.annotation.RequestParam;
  6. import java.util.Collection;
  7. @FeignClient(value = "cart-service",configuration = DefaultFeignConfig.class)
  8. public interface CartClient {
  9.     @DeleteMapping("/carts")
  10.     void deleteCartItemByIds(@RequestParam("ids") Collection<Long> ids);
  11. }
复制代码
日志的设置点击检察代码
  1. package com.hmall.api.config;
  2. import com.hmall.common.utils.UserContext;
  3. import feign.Logger;
  4. import feign.RequestInterceptor;
  5. import lombok.extern.slf4j.Slf4j;
  6. import org.springframework.context.annotation.Bean;
  7. import org.springframework.context.annotation.Configuration;
  8. @Configuration
  9. @Slf4j
  10. public class DefaultFeignConfig {
  11.     @Bean
  12.     public Logger.Level feignLogLevel(){
  13.         return Logger.Level.FULL;
  14.     }
  15. }
复制代码
4.依靠导入创建完成api后打jar包然后回到消费者处pom导入内部依靠

5.引导类加注解

6.调用

发现可以直接注入itemClient

调用成功功能实现

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宝塔山

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表