项目学习笔记

HTTP网络协议:
  • 演化过程:HTTP1.x——Google2012年提出SPDY(核心:多路复用、服务端推送)——HTTP2.0(核心:二进制解析、SPDY优化)

    详细资料参考:HTTP1.x与HTTP2.0对比

  • 具体实现:Java8不支持HTTP2.0,需要借助springboot实现,并且Tomcat从8.5开始才支持HTTP/2,并且集成比较麻烦,undertow更方便。

服务间通信:

演化过程:TCP协议出现前(需要开发人员自己编程处理网络丢包等问题)——TCP协议出现(网络问题下沉,与业务代码分离)——分布式系统的发展导致业务代码新增处理负载均衡等问题的代码——spring cloud等分布式框架将处理分布式问题的代码下沉,开发者又可以专注于业务开发

总结:宏观上微服务化

微服务:

含义:区别与单体应用,将系统中的多个服务剥离开,可以单独部署每个服务
主流架构:Spring Cloud、Dubbo、Service Mesh

核心问题:服务发现负载均衡
服务发现:由于每个服务可以单独部署,如何使客户端找到每个服务即为服务发现。

  • 第一种:集中式管理(服务端)
    在这里插入图片描述
    服务发现与负载均衡均由中间代理Gateway实现

  • 第二种:客户端嵌入式
    在这里插入图片描述

    代理 (包括服务发现和负载均衡逻辑)以客户库的形式嵌入在应用程序中。这种模式一般需要独立的服务注册中心组件配合,服务启动时自动注册到注册中心并定期报心跳,客户端代理则发现服务并做负载均衡。
    Netflix 开源的 Eureka(注册中心) 和 Ribbon(客户端代理)是这种模式的典型案例,国内阿里开源的 Dubbo也是采用这种模式。
    参考:微服务机构基础之ServiceMesh

  • 第三种:主机独立进程
    在这里插入图片描述
    以Buoyant公司linkerd产品为例,这种做法是上面两种模式的一个折中,代理既不是独立集中部署,也不嵌入在客户应用程序中,而是作为独立进程部署在每一个主机上,一个主机上的多个消费者应用可以共用这个代理,实现服务发现和负载均衡,如图所示。

    所有的SideCar就组成了一个服务网格,再通过一个统一的地方与各个SideCar交互,就能控制网格中流量的运转了,这个统一的地方就在Sevice Mesh中就被称为Control Plane(图中的service discovery),新增Control Plane的称为第二代ServiceMesh,以Istio为代表。该模式同样遵循控制与数据分离
    参考:ServiceMesh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值