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

  • 相关阅读:
    3com1100、3300未知故障升级软件后消失
    俺去测量去了,每天更新图片!!
    windows Installer出错的解决方法
    Gmail的POP3设置
    SharePonit 相关连接收集
    路由器默认密码
    今天dudu说区域很重要,我去读了一下
    CAD画任意角度线的方法
    修改动网新闻.net
    多条语句连续insert into 报ora00911解决方法
  • 原文地址:https://www.cnblogs.com/jingtyu/p/8745647.html
Copyright © 2011-2022 走看看