zoukankan      html  css  js  c++  java
  • 微服务简介

     

    1.软件架构的进化

    1. 什么是软件架构:有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。是在软件内容,经过综合各种因素的考量,权衡,选择特定的技术,将系统划分成不同部分,并使用这些部分相互分工,彼此协作,为用户提供需要的价值。
    2. 相关因素:业务需求,技术栈,成本,组织架构,可扩展性,可维护性。
    3. javaweb的进化之路:一层架构,MVC(ssh,ssm),dubbo
    4. 单体架构:功能,业务集中在一个发布包里,部署运行在同一个进程中。优势(易于开发,易于测试,易于部署,易于水平伸缩),劣势(代码膨胀,难以维护,构建成本大,持续交付周期长,新人上周周期长,创新困难,可扩展性差)

    2.什么是微服务

    1. 使用一套小服务来开发单个应用的方式,每个服务运行在独立的进程里,一般采用轻量级的通讯机制互联,并且他们可以通过自动化方式部署。
    2. 如何拆分最小服务单元(不是固定的量化,是一种设计思路)
    3. 微服务特征:单一职责,轻量级通讯,隔离性,业务数据独立,技术多样性。
    4. 微服务诞生背景:互联网的快速发展,敏捷开发,精益方法,容器技术的成熟。

    3.微服务架构图

    1. 业务场景:登录注册,发送邮件或者短信,获取课程列表
    2. 单体架构图: 

       

    3.  微服务架构图:

             

    4.微服务架构优势,劣势

    1. 优势:独立性,敏捷性,技术栈灵活,高效团队。
    2. 劣势:额外的工作,数据一致性,沟通成本。

    5.微服务间如何通讯

    1. 通讯模式:

       

    2. 通讯协议:REST API,RPC(IO/线程调用模型,序列化方式,多语言支持,服务治理(dubbo,dubbox,thrift,motan,grpc)),MQ
    3. 流行的RPC框架对比

    6.微服务发现

    1. 传统服务“发现”

       

    2. 微服务发现(客户端发现) 
    3. 微服务发现(服务器端发现)

    7.微服务部署,更新,扩容

    1.  服务编排:mesos,docker swarm,kubernetes

  • 相关阅读:
    A1052. Linked List Sorting (25)
    A1032. Sharing (25)
    A1022. Digital Library (30)
    A1071. Speech Patterns (25)
    A1054. The Dominant Color (20)
    A1060. Are They Equal (25)
    A1063. Set Similarity (25)
    电子码表
    矩阵键盘
    对象追踪、临时对象追踪、绝对坐标与相对坐标
  • 原文地址:https://www.cnblogs.com/jingtyu/p/8745647.html
Copyright © 2011-2022 走看看