前奏

上一篇中我们理解了微服务的基本概念 && Eureka-Server集群的搭建. 当然,有了服务注册中心还远远不够,我们还得有服务消费者,这样服务注册才有存在的价值,在Spring-Cloud中我们称消费者为Eureka-Client.好了,让我们愉快的撸起代码~

搭建服务消费者Project

  1. 创建Spring项目

  2. 填写maven坐标

  3. 注意:因为我们是Eureka-Client端,勾选Discovery(词典中语义为:发现,发觉)

  4. 我们创建好项目之后因为要以web形式运行,所以我们还需要添加spring-boot-web包依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
复制代码
  1. 和Eureka-Server一样,作为Eureka-Client的客户端我们需要在启动类上标注@EnableDiscoveryClient 注解, 标识为Client
@SpringBootApplication
@EnableDiscoveryClient
public class EurekaClientApplication {public static void main(String[] args) {SpringApplication.run(EurekaClientApplication.class, args);}
}
复制代码
  1. 配置Eureka-Client,这里我们Cient的名字起为order(以下配置内容已经在Eureka-Server中说过, 这里不再累赘)
eureka:client:service-url:defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/,http://localhost:8763/eureka/server:port: 8090spring:application:name: order
复制代码
  1. 启动项目观察日志, 204表示已经注册:

  2. 访问注册中心localhost:8761, 发现订单服务已经注册上来

图解注册中心

  1. 在没有注册中心的时候我们服务A调用服务B需要直接连接Ip去调用或者通过Proxy, 但是我们的服务会不断的扩容 && 缩减或者服务下线(比如图中灰色的服务B),这时候就需要我们手动去扩缩绒或者下线服务
  1. 有了注册中心之后我们的调用的关系发生了转变, 图中红色箭头,服务B只需要将自己 己注册到服务中心,并且有心跳检测,当服务A需要调用服务B时只需要从注册中心去查找即可, 这样服务B的扩缩容 || 服务下线,注册中心会感知到,这样服务A调用服务B的时候就会只从存活的服务B中查找并且调用
  1. 当服务A拿到了服务B可用列表之后,就会采用一个负载均衡策略进行查找服务调用,在服务发现中一般有两种机制,1) 客户端发现,Spring-Cloud Ribbon 就是采用客户端发现机制,后续在Spring-Cloud Ribbon文章中会说到 2)服务端发现, 比如我们的代理Proxy, Nginx...

总结

  1. Eureka-Server && Eureka-Client之间存在心跳检查来观察Eureka-Client是否还存活
  2. 注册中心Server往往是服务中比较重要的部分, 所以我们需要高可用, 生产尽量两台以上
  3. Spring-Cloud Eureka 是客户端发现机制, 服务端发现机制有Nginx, Zookeeper等

结尾

好了, Spring Cloud 注册中心我们已经完成,下一节来学习Spring-Cloud Feign

转载于:https://juejin.im/post/5c3c8440f265da614b1234ce

Spring-Cloud 从0开始(二) Eureka-Client相关推荐

  1. Spring Cloud 2022.0.0 M1 发布:需Java 17、兼容Spring Boot 3

    各位小伙伴们,复工第一天,DD祝大家新年快乐!这个新年真的是好好休息了一下,文章也没有更,新闻也没怎么看.所以,新年第一篇就先带大家一起回顾下春节期间的一些新动态.从Spring官方信息看,这几天主要 ...

  2. Spring Cloud 2020.0.5 发布

    来源 | 公众号「Java架构日记」 Spring Cloud 2020.0.5 正式发布,这是错误修正版本.兼容 Spring Boot 2.4.x and 2.5.x, 不支持 2.6.x (请使 ...

  3. Spring Cloud 2020.0.0 正式发布,对开发者来说意味着什么?

    作者 | YourBatman 在线教育领域资深架构师,Spring Framework 开源贡献者 冷冷 云集架构师.开源项目 pig 负责人.Spring Cloud Alibaba Commit ...

  4. Spring Cloud源码分析之Eureka篇第三章:EnableDiscoveryClient与EnableEurekaClient的区别(Edgware版本)

    在基于SpringCloud做开发的时候,EnableDiscoveryClient和EnableEurekaClient这两个注解我们并不陌生,今天就来聊聊它们的区别,和网上更早期的类似文章不同的是 ...

  5. Spring Cloud 2020.0.4 发布!

    作者 | 冷冷 来源 | https://mp.weixin.qq.com/s/ugyP_6s8XJxLk_2L9e_8PA Spring Cloud 2020.0.4 正式发布,这是错误修正版本.兼 ...

  6. 极客日报第 37 期:苹果官网出现价格 Bug;大众 CEO点评“苹果造车”;Spring Cloud 2020.0 正式发布

    文章目录 一.互联网快讯 二.程序员专属 三.Github 每日精选 四.CSDN 社区优质博文精选 一.互联网快讯 1.阿里云量子模拟平台"太章 2.0"正式开源 阿里巴巴发布阿 ...

  7. Spring Cloud 2021.0.1 发布

    来源:JAVA架构日记 Spring Cloud 2021.0.1 正式发布,这是 Spring Cloud 2021 的第一个错误修正版本. 支持 2021.0.0 平稳升级 目前已经可以从中央仓库 ...

  8. springcloud分布式事务_Spring Cloud学习资源一网打尽!Awesome Spring Cloud v1.0

    公正.公平.尊重原创.不夹带私人恩怨的Spring Cloud学习资源列表. TIPS: •本文链接较多,为了更好的阅读体验,建议翻到文章末尾,点击"扩展链接",排版相对好很多. ...

  9. Spring Cloud 2022.0.0正式发布:OpenFeign稳得很全面迈向GraalVM

    本文已被https://yourbatman.cn收录:女娲Knife-Initializr工程可公开访问啦:程序员专用网盘https://wangpan.yourbatman.cn:技术专栏源代码大 ...

  10. 【方向盘】Spring Cloud 2021.0.0正式发布,FeignClient调用结果可一键缓存

    盛年不重来,一日难再晨. 本文已被https://yourbatman.cn收录:女娲Knife-Initializr工程可公开访问啦:程序员专用网盘https://wangpan.yourbatma ...

最新文章

  1. 七基于Fourinone实现MQ demo
  2. find命令以及管道的简单使用技巧
  3. 提升 Node.js 应用性能的 5 个技巧
  4. windows下flink示例程序的执行
  5. 第8章4节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-启动 8
  6. 辩论计算机未来不能取代书本的问题,电脑不能取代书本辩论会材料.doc
  7. kafka 同步提交 异步_详解Kafka设计架构核心——Kafka副本机制详解
  8. 一、TensorFlow的简介和安装和一些基本概念
  9. 80X86CPU独立编址方式的两种寻址方式——直接寻址直接写和间接寻址DX
  10. 原来蒋先生才是中国互联网启蒙第一人!
  11. docker常用功能操作记录5
  12. MySQL卸载干净检查_MySQL数据库卸载干净处理
  13. Snort 中文手册
  14. 任正非,马云,马化腾:真正顶级厉害的人,都有一个共同特点
  15. androidx指纹验证
  16. 高等数学基础06:方向导数
  17. MATLAB拟合函数使用说明
  18. proxmark3模拟amiibo速通
  19. [附源码]计算机毕业设计JAVA校园超市进销存管理系统
  20. python聊天小程序支持私聊和多人_Python实现多人在线匿名聊天的小程序

热门文章

  1. Linux tree命令
  2. linux下单节点oracle数据库间ogg搭建
  3. AJAX 跨域请求 - JSONP获取JSON数据
  4. JavaScript replace() 方法
  5. 上海有线通共享上网设置(解决大部分局域网问题)
  6. 网申时遇到“补充信息”这一栏,填还是不填?
  7. 浅谈“领域驱动设计”
  8. Java两种简单的获取页面源码的方法
  9. maven项目的常用依赖
  10. BZOJ 1040 骑士