微服务核心技术梳理

学习本文前,请确保你了解并搭建过至少一个简单的微服务应用。对微服务的设计理念及编程思想有一定的了解。

当我们需要自己从零开始设计或搭建微服务项目的时候,由于缺乏经验及高人指点,心中难免有些惶恐。我们要如何去搭建我们的微服务项目?如果不能一步到位的话,我们该如何逐步去实施?微服务系统会存在哪些常见问题?有哪些风险点需要去关注?微服务的边界在哪里,哪些东西可以用微服务来实现,哪些不能?

那么本文讲从易到难、从浅到深、逐步实现从实用到四高的相关技术梳理(高可能、高性能、高并发、高智能)。让你在微服务项目的各个阶段都能够不慌不忙,胸有成竹的构建及完善我们的微服务项目

1.微服务最少组件

当我们对微服务的四高没什么要求的时候,仅仅是想将项目拆分成多个团队并行开发,那我们要如何去搭建我们的微服务项目呢?

以dubbo微服务框架为例:
我们至少需要有api网关、zk、provider、consumer

2.微服务编排

当我们对微服务项目进行拆分的时候,该如何下手,怎么拆分才是正确的? 有没有统一的标准?

目前业内对微服务的拆分并没有统一的规范及标准,拆分的时候必须根据具体的业务及开发团队现状来确定。下面我们以一个旅游微服务系统平台实例来进行说明:

RPC依赖关系图

从上图我们不难看出一些基本的编排规则:

  1. 微服务不能交叉调用,否则上线的时候可能会出现服务不可用的问题
  2. 微服务可以是独立的、不依赖其他任何服务的
  3. 微服务必须进行分层,低层级的不能调用高层级的微服务
  4. 微服务的交互方式,必须提前设计好,是同步还是异步?
    比如: 消息通知最好用MQ异步来实现,否则会影响诸如订单主流程的运行

3.微服务排障

当我们在线运行的微服务项目频繁出现Bug,又无法快速准确的定位的时候,我们需要对微服务项目进行哪些升级改造?

以Dubbo微服务框架为例,常见的使用zipkin来进行调用链的跟踪:


zipkin

在zipkin的图形管理界面上,很容易能看到调用链故障环境
ELK日志系统通过对日志的监控及分析,也可以帮我们快速定位故障


ELK日志监控界面

4.微服务的高并发

当微服务项目在线运营一段时间后,总会迎来流量的高峰,那我们应该提前做好哪些准备来应对高并发的用户场景呢?

  1. 利用Nginx进行前后端分离,请静态资源部署在NG上
  2. 接入云存储,把图片、视频、app安装包等发布到云存储上
  3. 把云存储、静态资源全部接入CDN,并做好相应的策略
  4. 充分利用Redis等缓存层,减轻数据库的压力

5.微服务高可用

当个别微服务偶尔出现问题影响用户体验的时候,比如偶尔用户无法下单、无法支付,又或者我们需要频繁升级的时候,我们应该采取什么样的措施?

  1. 负载比较高的服务,相同的开启多个
  2. 上线发布的时候,采用灰度发布的方式
  3. 打开错误重试机制,dubbo默认重试3次

6.微服务的高性能

当一个项目用户越来越多、业务越来越复杂、我们该如何保证在复杂的业务场景下,实现对用户请求的快速响应?

  1. 数据库开启一主多从,把查询量大的微服务单独分配到从库上
  2. 利用Mycat等服务中间件,实现对数据库主从自动切换
  3. 利用MapReduce算法,都任务进行分片处理,统一结果汇总
  4. 利用多库进行数据库水平拆分,也就是我们常说的分库分表
  5. 把查询量大的服务采用NoSQL数据库(例如:ES)进行部署

7.微服务的分布式事务

当多个微服务同时处理一个用户请求的时候,比如用户下单需要同时调用权限系统、商品管理系统、进销存系统、支付系统等微服务,如果保证数据的一致性?而且失败的时候还必须同时回滚?

常见的分布式事务有2种

  1. 补偿机制,利用定时任务检查数据是否需要回滚
  2. 强事务,利用mysql的xa事务(也可以使用各种中间件:比如阿里的FESCAR)
#mysql实现XA事务的SQL语句
XA START 'xatestx','XXXXXXXXXXXXXXXXXXXXXXXX';
INSERT INTO suoron_test (id,name) VALUES(21,'试试');
XA END 'xatestx';
XA PREPARE 'xatestx';
#大家都准备好了,一块提交
XA COMMIT 'xatestx';
XA ROLLBACK 'xatestx';
XA RECOVER;

8.微服务服务治理

当我们团队越来越大的时候,我们需要把系统交付给运维的兄弟进行维护,我们该如何帮忙他们制定专门的运维管理的规则?

微服务治理

常见的服务治理框架有:

  1. Dubbo的Admin -- 服务管理
  2. Spring cloud 的hystrix -- 熔断
  3. zabbix -- 微服务监控及巡检
  4. apollo -- 携程配置管理(后期服务器配置全由运维负责)

9.微服务的高智能

当系统出现问题,或者资源不够的时候,每次需要手工去维护显然不现实,人工处理的响应速度太慢,恢复一个故障可能需要长达几个小时的时间,那我们该如何实行系统的智能运行?

必须充分利用容器集群及容器调度系统(例如:Kubernetes)
比如:微服务出现严重故障时,容器能够自动重启
当请求流量增大的时候自动开启新的微服务
当流量减少时,自动释放资源,用于资源消耗严重的报表统计等

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容

  • 地图 5 皮肤 5 种子 2 材质 1 插件 2
    Lopo阅读 339评论 0 0
  • 我的第一套标配护肤品➡✨美智恩6件套 美智恩前身是专门为韩国新加坡等国家的高端美容院提供专业院线皮肤修复产品的品牌...
    目目了阅读 373评论 0 0
  • 读一篇脍炙人口的名作, 去邂逅一份古典与优雅。 春江潮水连海平,海上明月共潮生。 滟滟随波千万里,何处春江无月明。...
    洪华阅读 1,682评论 13 41
  • 春阳正暖,海风飒然却也还温柔。极目之处,远山依然如黛,水面波光灿灿。近点儿,一只只渔船整齐列队,旗帜招展。有海鸥...
    犹俏阅读 406评论 0 0