您的位置:首页 > 编程语言 > Java开发

01-SpringCloud 理论

2021-08-16 23:40 387 查看

聊聊SpringCloud

先聊一下什么是SpringCloud?

  SpringCloud是一套完整的分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶

为什么要出SpringCloud?

  因为微服务概念的推出

微服务是什么?

  微服务是一种架构风格,一个应用,应该拆分为一组小型服务,每个服务运行在自己的进程内,也就是可以独立部署和升级,服务之间使用轻量级HTTP协议交互

  服务应该围绕业务功能拆分,

  可以由全自动部署机制独立部署

  去中心化, 服务自治,服务可以使用不同语言编写,使用不同的存储技术

那微服务应该如何实现呢? 它又应该满足那些落地维度?支撑起这些维度的技术具体是什么?

  应为微服务的庞大,所以导致了它的落地维度非常之多

  落地维度:

    服务治理: 就是服务的注册与发现

    服务调用: 就是服务之间的调用

    服务降级: 就是服务在崩溃之后的补救方案

    服务熔断: 就是服务在高并发情况下,服务报错次数过多的熔断机制

    负载均衡: 就是在微服务中坑定不能出现单点故障问题,所以每个服务应该部署一个集群,那么它该如何实现负载调用,它的策略是什么

    服务消息队列: 就是服务之间通信的消息

    服务网关: 就是因为大量服务,不可能直接被外界调用,所以需要统一的入口,并且需要在网关上做一些限流,鉴权,防刷等

    配置中心管理: 就是这么多微服务,那么它的配置文件也需要有统一化的管理

    服务监控: 服务的健康状态,内存等设备的使用状态,都需要实时监控,防止出现服务宕机问题

    全链路追踪: 服务之间调用关系复杂,需要通过监控查看每次的调用全链路

    服务定时任务: 分布式定时任务的处理

    自动化构建部署: 在微服务中每个服务都是部署在容器上的,容器概念大家可以百度一下,可以通过流水线自动从Git获取代码打包遍历并自动发布到容器上

    调度操作: 容器的调度,在容器内存不够后,可以通过容器调度,自动复制容器,增加副本数,并挂载负载均衡,实现动态扩缩容,

具体技术(这里只写一些关于SpringCloud的落地维度实现,其他的喜欢微服务的小伙伴可以自己百度一下,或者等我之后的文章)

  服务治理

    Eureka: 停止更新,但是在写文章中,我还是使用这个,但是会写使用别的技术替换它,在写SpringCloudAlibaba之前都会用Eureka

    Zookeeper: 分布式协调中心,它可以作为Eureka的代替,用于做服务治理

    Consul: Eureka的代替,提供了健康检查等好多好用的功能

    Nacos: Alibaba的

  服务调用(负载均衡)

    Ribbon : 非常优秀的负载均衡调用技术

    LoadBalancer: 代替Ribbon的技术,但是没有代替了,现在一般都是结合Ribbon使用

    Feign: 封装了Ribbon的技术

    OpenFeign : 觉得Feign不好用,又封装了一层,现在一般都是用这个

  服务降级/熔断/限流

    Hystrix: 非常强大的服务保护组件,现在也停更了

    resilience4j: 国内用的不多,国外用的多

    sentienl: Alibaba的

  服务网关

    Zuul : 停更了

    Zuul2: 应为内部矛盾,出不来了,出来也用的不多了,

    gateway: SpringCloud 自主研发的,现在一般都用这个

  服务配置(分布式配置中心)

    Config: Springcloud 的

    Nacos: Alibaba 的

  消息总线

    Bus: Spring Cloud 的

    Nacos: Alibaba 的

都是自己的理解,可能有些地方不对,有不同想法的可以评论区,评论,互相学习,相互进步

作者:彼岸舞

时间:2021\08\16

内容关于:Spring Cloud H版

本文属于作者原创,未经允许,禁止转发

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: