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

  • 相关阅读:
    2016/05/16 thinkphp3.2.2 验证码使用
    2016/05/16 UEditor 文本编辑器 使用教程与使用方法
    2016/05/15 ThinkPHP3.2.2 表单自动验证实例 验证规则的数组 直接写在相应的控制器里
    DropzoneJS 使用指南
    MVC设计模式
    Smarty 配置文件的读取
    会话控制
    JS中的call和apply
    CSS选择器
    XML
  • 原文地址:https://www.cnblogs.com/jingtyu/p/8745647.html
Copyright © 2011-2022 走看看