1、为什么要使用微服务?

要说为什么要使用微服务,我们要先说下传统的企业架构模式-垂直架构/单块架构模式,简单点说:我们一般将系统分为三层架构,但是这是逻辑上的三层,而非物理上的三层,这就意味着经过编码后,我们需要将这三层的代码打包部署,最终还是运行在同一台机器的同一个进程中。即单块架构模式就是功能集中,代码数据集中,一个发布包、部署运行在同一个进程中的应用程序,重点是同一个进程。

这种架构存在自己的优势也有弊端,优势是:易于开发,易于测试,易于部署,易于水平伸缩。

弊端:维护成本高,修改一处代码就需要重新部署;持续交付周期长;信任培养周期长;技术选型成本高,可扩展性差。

正是因为有了这些弊端,后期出现了SOA(面向服务的架构),但是SOA是粗粒度的服务模式,后面又出现了MSA,所以微服务是SOA的一个子集,是SOA的一个细化,是细粒度的服务。

2、什么是微服务?

这个没有什么明确的定义,可以这么理解:微服务是一种架构模式,将单一的应用程序划分成多个小组服务,这些小组服务互相协调,互相配合,最终完成整个项目。这些小的服务可以根据上下文选用自己适合的语言、工具来进行实现,实现了高度自治。个人认为:类似于中国有56个民族,这56个民族构成了中国整个大国,但是每个民族有自己的语言自己的风俗习惯,实现了民族自治。

3、微服务有哪些优势?

对比传统的单一架构模式,我们可以看到微服务的不同,分布式的服务模式,每个模块独立自治。所以这出现了它的优势:

(1)服务作为组件。这个组件可以这样理解:比如汽车由不同的零部件构成,当某个零部件出问题的时候,我们只要修理这个零部件即可,每个零部件都是可以独立升级独立替换的。

所以可以认为每个小服务是一个组件。

(2)围绕业务组织团队:根据不同的业务来组织团队,实现敏捷开发。

(3)关注产品而非项目

(4)技术的多样性,由于服务的自治性,每个业务可以采用不同的技术实现。

(5)业务数据独立:比如一个CRM系统,对于数据较多,更新又比较频繁的我们可以使用文档型的数据库mongoDB,对于用户访问系统时产生的会话信息,我们使用redis存储,而对于结构性强,数据比较多,但变化不大的我们可以采用关系型数据库。

(6)基础实施自动化:这里主要使用云来快速构建系统资源,DevOps的运维。(这个暂时不太清楚)

(7)演进式架构

4、微服务有哪些缺点?

每个事物都有两面性,有优点也有缺点:

(1)分布式系统的复杂度:

    性能方面:由于采用了分布式,服务间的通信需要考虑网络延迟以及带宽的影响。

    可靠性:有可能出现单点故障

    数据的一致性:分布式的事务管理需要跨多个节点,因此这个数据一致性是一个问题。

 (2)运维成本

配置、部署、监控和警告、日志收集的成本升高。

(3)部署自动化:微服务的每个服务单元很多,由于系统迭代很快,我们需要多次更新,而现在还需要人工部署审查这些,所以部署的自动化就面临着挑战。

(4)服务间的依赖测试:测试每个服务间的正常通信量加大,测试面临挑战。

总结:微服务强调的是一种独立开发、独立测试、独立部署、独立运行的高度自治的架构模式,也是一种更灵活、更开发、更松散的演进式架构。

ps:本文转载,原链接:https://www.cnblogs.com/fengli9998/p/6680828.html

MAS(转)的更多相关文章

  1. APPCAN MAS接口之SOAP

    APPCAN MAS接口中使用webservice接口形式,示例代码如下:  1 var MEAP=require("meap");  2   3 function run(Par ...

  2. APPCAN MAS接口之AJAX

    1.打开APPCAN IDE,文件→新建→MAS服务 2.新建MAS项目 3.新建MAS接口,访问地址http://mobile.163.com/special/chuangye/ 4.修改if_cy ...

  3. MAS 移动业务整合系统

    AppCan MAS是基于高性能NODEJS架构开发的企业移动后端整合系统,内置各种标准协议组件,统一移动业务前后端标准开发技术:同时通过基于策略配置的数据缓存机制,聚合业务数据并发连接不同的后端业务 ...

  4. 基于AppCan MAS系统,如何轻松实现移动应用数据服务?

    完成一个移动应用开发,前端提供页面展示,当它要与一些业务系统进行交互,又该如何实现呢?2016AppCan移动开发者大会上,AppCan前端开发经理杨庆,分享了AppCan轻松实现移动应用数据服务的方 ...

  5. 通过移动的Mas接口发送短信

    1. 首先,需要移动公司提供的用户名.密码.服务ID.接口Url等信息. 2. 将短信信息整理成XML格式的字符串,再转为byte数组,通过POST的方式,将短信发往Mas接口.需要引用"M ...

  6. 移动 云MAS 发短信 .net HTTP 请求

    本人开发移动云MAS .net Http 请求  代码如下 using Newtonsoft.Json.Linq; using System; using System.Collections.Gen ...

  7. noi.ac309 Mas的童年

    题目链接 题面 题目描述 \(Mas\)完成了一天的工作,走在回家的路上,看着路边的景色,他想起来自己的童年. 许许多多的记忆交错,丝丝缕缕的牵扯着\(Mas\). 在回忆的深处,\(Mas\)想起来 ...

  8. 1、背景介绍及移动云MAS平台 --短信平台

    目的: 刚开发完成一套短信平台以及一个Web端短信发送系统,短信平台耗时两个周.短信发送系统耗时两个多月,开发使用的技术没什么高科技含量,在此主要是记录下很多情况的处理方案,希望能让大家提出改善方案和 ...

  9. 【noi.ac】#309. Mas的童年

    #309. Mas的童年 链接 分析: 求$max \{sj + (s_i \oplus s_j)\}$ 因为$a + b = a \oplus b + (a \& b) \times 2$ ...

  10. 玄武短信接口和移动MAS短信接口的API封装

    直接上代码,关键点: 133行的敏感词过滤 176行的6位扩展码写入 using System; using System.Collections.Generic; using System.Linq ...

随机推荐

  1. Java打印流学习

    打印流 打印流的主要功能是用于输出,在整个IO包打印流分为两种类型,打印流可以很方便的进行输出. 1.字节打印流:PrintStream(在字节输出时,可以增强输出功能) 2.字符打印流:PrintW ...

  2. Java中File类重修

    IO流 概述 io流:输入输出流(input/output).流是一组有顺序的,有起点和终点的字节集合,是对各种数据传输的总称或抽象.即数据在两设备之间的传输称为流.流的本质是数据传输. InputS ...

  3. YOLOv1算法理解

    1,YOLOv1算法的简介 YOLO算法使用深度神经网络进行对象的位置检测以及分类,主要的特点是速度够快,而且准确率也很高,采用直接预测目标对象的边界框的方法,将候选区和对象识别这两个阶段合二为一, ...

  4. mssql 动态表名,游标

    ALTER PROCEDURE [dbo].[ken_overtime_check](@p_use_code nvarchar(100),@p_table_name nvarchar(1000)) A ...

  5. vue 项目的运行与 打包

    1.vue init webpack 2.npm install axios 3.npm run dev  运行项目 4.npm run build 打包项目 会生成一个dist 文件夹,我们只需要把 ...

  6. boost compressedPair

    boost::compressed_pair behaves like std::pair. However, if one or both template parameters are empty ...

  7. php explode()函数 语法

    php explode()函数 语法 作用:把字符串打散为数组 语法:explode(separator,string,limit)大理石机械构件 参数: 参数 描述 separator 必需.规定在 ...

  8. element table组件懒加载

    directives : { loadmore : { bind(el, binding) { const selectWrap = el.querySelector('.el-table__body ...

  9. 23-25 October in 614

    Practice sort 给定一系列形如 \(A<B\) 的不等关系,判断前 \(k\) 个不等关系是否即可确定 \(n\) 个元素之间的大小顺序:如果不可确定,判断前 \(k\) 个不等关系 ...

  10. leetcode-解题记录 771. 宝石与石头

    题目: 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石. J 中的字母不重复,J 和 S中的所有字符 ...