HttpClient+微服务+Zookeeper+Eureka

HttpClient

    支持Http协议的编程工具包

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

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

微服务:

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

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

RPC:

    远程过程调用(Remote Procedure Call) 不同的服务器之间的调用就是RPC

微服务的调用思想

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

微服务调用步骤:

    服务启动时,会链接注册中心,将服务数据(服务名称|IP|端口)写入注册中心 注册中心接收服务数据后,动态维护服务列表 消费者启动时,链接注册中心,之后将服务列表缓存到本地(消费者内存中),方便下次调用 当用户调用服务消费者时,服务消费者根据当前服务列表的信息,进行负载均衡,挑选一个服务进行访问 注册中心为了保证服务列表的正确性,通过心跳检测机制,实时监控所有服务生产者,如果服务器宕机,注册中心将第一时间更新服务列表,并且全网广播,通知所有的消费者,更新服务列表 优点:用户每次访问,几乎可以保证访问的服务器都是正确的

两大注册中心:Zookeeper和eureka

传统方式的调用

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

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

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

zookeeper集群

    最小单位3台 从容灾性和经济性来看,搭建奇数台最好 选举采用myid最大值优先原则
经验分享 程序员 微信小程序 职场和发展