zoukankan      html  css  js  c++  java
  • 01-SpringCloud 理论

    聊聊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 的

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

    作者:彼岸舞

    时间:2021816

    内容关于:Spring Cloud H版

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

  • 相关阅读:
    java測试网络连接是否成功并设置超时时间
    php BC高准确度函数库
    Snail—Hibernate各种异常
    js中()()问题
    Servlet 是否线程安全 看完便知
    Flask的flask-sqlalchemy
    SQLALchemy之介绍,基本使用
    SQLALchemy之创建表,删除表
    SQLALchemy之ORM操作
    我为什么从python转向go
  • 原文地址:https://www.cnblogs.com/flower-dance/p/15150486.html
Copyright © 2011-2022 走看看