微服务的基本框架知识总结

微服务

演变

从一个单体应用单个服务器,tomact+serverlet+jsp +DB,加一个数据库缓存,加一个服务器,加Nginx,反向代理负载均衡,到前后端分离,各个服务分布在不同的服务器,相同的服务如数据库分布在不同服务器形成集群,都是互联网越来越发达,访问量越多,一个tomact 只能1000个,redis可以10万个

概念:把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。即把大型单体应用按照业务拆分成多个(十个百个)微服务部署在不同的服务器上

特点

  1. 一系列独立的服务组成系统
  2. 每个服务可以单独部署
  3. 每个服务为独立的业务开发
  4. 分布式管理

流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FAZp1IMX-1667381449688)(F:\Download\第二阶段\18.springcloud\笔记\SpringCloud技术栈.png)]

RESTful和RPC的区别

1、从本质区别上看,RPC是基于TCP实现的,RestFul是基于HTTP来实现的
2、从传输速度上来看,因为HTTP封装的数据量更多所以数据传输量更大,所以RPC的传输速度是比RestFul更快的。
3、因为HTTP协议是各个框架都普遍支持的。在toC情况下,因为不知道情况来源的框架、数据形势是什么样的,所以在网关可以使用RestFul利用http来接受。而在微服务内部的各模块之间因为各协议方案是公司内部自己定的,所以知道各种数据方式,可以使用TCP传输以使各模块之间的数据传输更快。所以可以网关和外界的数据传输使用RestFul,微服务内部的各模块之间使用RPC
4、RestFul的API的设计上是面向资源的,对于同一资源的获取、传输、修改可以使用GET、POST、PUT来对同一个URL进行区别,而RPC通常把动词直接体现在URL上

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kUqGlPUM-1667381449692)(C:\Users\谢顺\AppData\Roaming\Typora\typora-user-images\image-20220723145311201.png)]

Zuul和GateWay 的区别

相同点:底层都是servlet,都是web网关,处理的是http请求

不同点:zuul只支持同步,gateway 支持异步,gateway功能更强大,内部实现了限流,负载均衡等,但是只适用于Spring Cloud 套件,和其他组件兼容,zuul 可以兼容其他微服务框架,但内部没有限流,负载均衡等功能

微服务框架

  1. Spring Cloud

    1. Spring Cloud Gateway网关

    2. Spring Cloud OpenFeign 远程服务调用(重点)

    3. Spring Cloud Security 授权认证 Oauth2认证

    4. Spring Cloud Bus

    5. Spring Cloud Stream

    6. Spring Cloud Config 配置中心 (网非的)

    7. Spring Cloud Sleuth (链路追踪)

  2. Spring Cloud Netflix 网非

    1. Zuul2 网关
    2. Eureka(注册中心)
    3. Hystrix(降级熔断)
  3. Spring Cloud Alibaba

    1. Nacos:(重点) 注册中心和配置中心

    2. Dubbo(重点) 远程调用,调用的业务层service 类上注解@DubboService 需要提供暴露的接口 是RPC风格 @DubboService相当于service @DubboReference相当于Resource

    3. Sentinel 限流(qps请求数,线程数) 降级(fallback,返回空或默认值,提示等) 熔断(慢调用比例,异常比例,异常数) 熔断时长就是有问题的服务器断开连接停止使用多少时间后恢复运行

      注解在消费者的启动类多加 @EnableFeignClients 控制层类上远程调用 @FeignClient(value = “sentinel-provider”, path = “/provider”, fallback = ProviderApiFallback.class) Restful 风格,调用的是控制层,类上注解@FeignClient

    其他非spring cloud组件 Zookeeper 注册中心

    用于解决分布式事务

    RocketMQ:一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。

    Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。

Ribbon负载均衡

技术栈

1.Ribbon

2.Load Blance

分类:

1.服务端负载均衡(Nginx)

2.客户端的负载均衡

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MUujz5gR-1667381449694)(C:\Users\谢顺\AppData\Roaming\Typora\typora-user-images\image-20220723152008110.png)]

  • 分布式

    系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上

  • 集群

    一个特定领域的软件部署在多台服务器上并作为一个整体提供一类服务,这个整体称为集群。如Mysql中的Master和Slave分别部署在多台服务器上,共同组成一个整体提供集中配置服务。在常见的集群中,客户端往往能够连接任意一个节点获得服务,并且当集群中一个节点掉线时,其他节点往往能够自动的接替它继续提供服务,这时候说明集群具有高可用性

  • 高可用

    系统中部分节点失效时,其他节点能够接替它继续提供服务,则可认为系统具有高可用性

  • 负载均衡

    请求发送到系统时,通过某些方式把请求均匀分发到多个节点上,使系统中每个节点能够均匀的处理请求负载,则可认为系统是负载均衡的

  • 反向代理

    系统内部要访问外部网络时,统一通过一个代理服务器把请求转发出去,在外部网络看来就是代理服务器发起的访问,此时代理服务器实现的是正向代理;当外部请求进入系统时,代理服务器把该请求转发到系统中的某台服务器上,对外部请求来说,与之交互的只有代理服务器,此时代理服务器实现的是反向代理。简单来说,正向代理是代理服务器代替系统内部来访问外部网络的过程,反向代理是外部请求访问系统时通过代理服务器转发到内部服务器的过程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值