• 【一】什么是微服务


    微服务体系

    什么是微服务?

    什么是单体架构?

      单体架构的问题?  

        1.复杂性高

          1.1 代码难以理解,复用性低

          1.2 难以理解导致代码质量低,复杂性进一步增加

          1.3 代码难以被修改和重构

        2.伸缩性差

          2.1 单体只能按整体横向扩展,无法分模块垂直扩展

          2.2 IO密集型模块和CPU密集型模块无法独立升级和扩容

        3. 可靠性差

          3.1 一个bug有可能引起整个应用的崩溃

        4. 阻碍技术创新

          4.1 受技术栈限制,团队成员使用同一框架和语言,模块得不到拆分,不能使用新的语言和框架

          4.2 升级和变革技术框架变得困难,当有符合业务场景的新技术产生或者新版本时,升级和变革技术框架所带来的重构成本和风险很高

          4.3 想尝试新的语言也变得很困难,因为开发成本的上升,重构和新需求迭代无法协调,所哟最终只能是妥协继续使用原来的框架和语言

    什么是服务化?

      服务化就是把传统的单机应用中的本地方法调用,改造成通过接口产生的远程方法调用

      通过服务化,可以解决单体应用膨胀,团队开发耦合度高,协作效率低下的问题

    微服务定义

      服务拆分粒度更细

      服务对立部署

      服务对立维护

      服务治理能力要求高

    微服务的有点

      易于开发与维护

      独立部署

      伸缩性强

      与组织结构相匹配

      技术异构型

    微服务和Docker

    服务拆分

      什么时候应该拆分单体应用?

      服务化拆分具体该如何实施呢?

      服务拆分的两种方式:纵向拆分(业务),横向拆分(公共功能,发邮件,文件管理)

     

    单体架构--微服务的问题

      如何定义服务

      如何发布和订阅服务

      如何治理服务

      如何定位

      如何监控服务

    服务治理

      服务治理可以说是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册与发现

      在微服务架构中,过多的服务会出现的问题:

        1. 需要配置N个服务的网络位置,加大配置的复杂性

        2.服务的网络位置变化,都需要改变每个调用者的配置

        3.集群的情况下,难以做负载

      服务注册和发现

        1. 在服务发现框架中,通常都会构建一个注册中心,服务提供者(就是提供服务的一方)按照一定格式的服务描述,向注册中心注册服务,声明自己能够提供哪些服务以及服务的地址是什么,完成服务发布

        2.  服务消费者(就是调用服务的一方)请求注册中心,查询所需要调用服务的地址,然后以约定的通信协议向服务提供者发起请求,得到请求结果后再按照约定的协议解析结果

        3.注册中心的工作流程是:

          服务提供者启动:向注册中心注册自己提供的服务

          消费者启动,向注册中心订阅自己需要的服务

          注册中心返回服务提供者的列表给消费者

          消费者从服务提供者列表中,按照负载均衡算法,选择一台发起请求

    Consul 服务发现与配置

     

    Node.js的文章,与其相关的
  • 相关阅读:
    REP开发技巧
    css grid栅格布局
    flex学习, 尝试布局一个计算器
    sublime text html插件emmet
    flex布局
    SQL Server为字段添加默认值
    windows和linux文件输
    python eric6 IDE
    git撤销修改
    pyQt5
  • 原文地址:https://www.cnblogs.com/boyYu/p/13155166.html
Copyright © 2020-2023  润新知