微服务入门(一) | 微服务概述

发布时间:2023-09-19 19:30

目录

定义

目的

单体应用存在的问题

微服务的优势

实现原理

微服务架构的主要问题

技术选型

Spring Cloud NetFlix(停止维护)

Apache Dubbo Zookeeper

Spring Cloud Alibaba

Reference


  • 定义

微服务是一种软件开发技术,面向服务的体系结构(SOA)架构样式的一种变体,将应用程序构造为一组松散耦合的服务。

在微服务体系结构中,服务是细粒度的,协议是轻量级的。

  • 目的

解决单体应用带来的问题。

    • 单体应用存在的问题

      • 复杂性逐渐变高:单体应用各个模块之间区别比较模糊,逻辑比较混乱,代码越多复杂性越高,越难解决遇到的问题。
      • 部署速度逐渐变慢:单体架构模块非常多,代码量非常庞大,导致部署项目所花费的时间越来越多。
      • 阻碍技术创新:由于单体应用各个模块之间有着千丝万缕的联系,代码量大,逻辑不够清楚,如果现在想用新技术来重构旧技术写的项目将是非常困难的,付出的成本将非常大,这就阻碍了技术的创新。
      • 无法按需伸缩:有些模块是CPU密集型的模块,有些模块是IO密集型的模块,假如我们要提升IO密集型模块的性能,比如加大内存、增加硬盘,但是由于所有的模块都在一个架构下,因此我们在扩展模块的性能时不得不考虑其它模块的因素,因为我们不能因为扩展某个模块的性能而损害其它模块的性能,从而无法按需进行伸缩。
    • 微服务的优势

      • 单体架构所有的模块全都耦合在一块,代码量大,维护困难,微服务每个模块就相当于一个单独的项目,代码量明显减少,遇到问题也相对来说比较好解决。
      • 单体架构所有的模块都共用一个数据库,存储方式比较单一,微服务每个模块都可以使用不同的存储方式(比如有的用redis,有的用mysql等),数据库也是单个模块对应自己的数据库。
      • 单体架构所有的模块开发所使用的技术一样,微服务每个模块都可以使用不同的开发技术,开发模式更灵活。
  • 实现原理

    • 微服务架构的主要问题

      • 客户端应该如何访问不同服务? 

                        API网关

      • 服务之间如何通信? 

                        HTTP / RPC通信

      • 如何治理各个服务? 

                        服务注册与发现

      • 某服务挂了怎么办?

                        断路器(熔断机制)

    • 技术选型

      • Spring Cloud NetFlix(停止维护)

        • 一站式解决方案
        • api网关:zuul
        • 通信:Feign -> HttpClient (Http:同步通信,存在阻塞问题)
        • 服务注册与发现:Eureka
        • 断路器:Hystrix
      • Apache Dubbo Zookeeper

        • 半自动解决方案
        • api网关:没有,需要找第三方组件或者自己实现
        • 通信:Dubbo(RPC:异步非阻塞)
        • 服务注册与发现:Zookeeper(分布式服务框架,是Apache Hadoop 的一个子项目 ,简单来说zookeeper=文件系统+监听通知机制)
        • 断路器:没有,需要找第三方组件或者自己实现
      • Spring Cloud Alibaba

        • 一站式解决方案
        • api网关:Dubbo PROXY
        • 通信:Dubbo(RPC:异步非阻塞)
        • 服务注册与发现:Nacos
        • 断路器:Sentinel
  • Reference

  • 一文详解微服务架构

https://www.cnblogs.com/skabyy/p/11396571.html

  • 大话微服务:(三)Spring Cloud Netflix 和Spring Cloud alibaba服务技术架构

https://blog.csdn.net/zhongzk69/article/details/105095834/

  • 【狂神说Java】SpringCloud最新教程IDEA版

https://www.bilibili.com/video/BV1jJ411S7xr

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号