HttpClient+微服务+Zookeeper+Eureka

HttpClient

  • 支持Http协议的编程工具包

面试题:HttpClient是跨域请求吗?

答:不是,就是远程过程调用

HttpClient+微服务+Zookeeper+Eureka_第1张图片

微服务:

SOA思想(面向服务的架构)

  • 将程序的不同功能单元(服务)进行拆分,将服务之间定义的共同接口和协议联系起来,接口采用中立的方式进行定义。
  • 核心理念:服务松耦合

RPC:

  • 远程过程调用(Remote Procedure Call)

  • 不同的服务器之间的调用就是RPC

微服务的调用思想

  • 将程序按照分布式思想进行拆分,并且可以自动实现故障迁移,无需认为干预
  • 注册中心,心跳检测,全网广播,服务动态感知

HttpClient+微服务+Zookeeper+Eureka_第2张图片

微服务调用步骤:

  • 服务启动时,会链接注册中心,将服务数据(服务名称|IP|端口)写入注册中心

  • 注册中心接收服务数据后,动态维护服务列表

  • 消费者启动时,链接注册中心,之后将服务列表缓存到本地(消费者内存中),方便下次调用

  • 当用户调用服务消费者时,服务消费者根据当前服务列表的信息,进行负载均衡,挑选一个服务进行访问

  • 注册中心为了保证服务列表的正确性,通过心跳检测机制,实时监控所有服务生产者,如果服务器宕机,注册中心将第一时间更新服务列表,并且全网广播,通知所有的消费者,更新服务列表

    优点:用户每次访问,几乎可以保证访问的服务器都是正确的

两大注册中心:Zookeeper和eureka

传统方式的调用

  • 缺点:每次增加/减少服务时,都需要编辑conf配置文件,不能自动实现故障迁移,不够智能
  • 服务器之间进行RPC调用都必须经过Nginx服务器,Nginx压力很高。

HttpClient+微服务+Zookeeper+Eureka_第3张图片

HttpClient+微服务+Zookeeper+Eureka_第4张图片

HttpClient在Java代码中是万能的请求方式(SpringCloud底层实现)

前后端调用的方式都称之为远程过程调用

zookeeper集群

  • 最小单位3台
  • 从容灾性和经济性来看,搭建奇数台最好
  • 选举采用myid最大值优先原则

你可能感兴趣的:(HttpClient+微服务+Zookeeper+Eureka)