学习微服务日记一

57 阅读1分钟

学习微服务日记一:

1、Eureka 和 Nacos 的区别

共同点:

  • 都支持服务注册和服务拉取;
  • 都支持服务提供者的心跳检测机制;

区别:

  • nacos支持服务提供端的主动检测,临时实例提供的是心跳检测,非临时实例提供的是主动检测机制;
  • 临时实例心跳不正常会被移除实例列表,非临时则不会;
  • Nacso支持服务列表的消息推送模式的变更,推送小心会更加及时;
  • Nacos集群采用的是AP方式,当非集群模式中存在非临时实例则是CP模式,而EureKa采用的是AP模式;

2、Eureka 和 Nacos 之负载均衡

NacosRule:

  • 优先调用namespace服务集群内的轮询列表
  • 本地集群找不到,则去别的集群找,并且会发送报警信息
  • 确定了可以的实例后,再采用随机的机制挑选

EurekaRule:

image.png image.png

3、微服务的远程调用

  1. RestTemplate调用:

String url = "http://{服务名称}/{调用路径}" + 请求参数 Object obj = restTemplate.getForObject(url,Object.class);

存在问题:

  • 代码阅读性差,编码不规范,容易造成代码的冗余
  • 参数复杂,难以维护
  1. Feign 调用
  • 引入Feign的依赖
  • 启动类上配置@EnableFegianClients
  • 自定义一个接口 调用过程如下:
   @FegianClient(“{需要调用的接口的服务名称}”)
    public interface ObjectInterface {
     @GetMapping("/getById/{id}")
     Object getObjectById(@PathVariable Long id)
    }