微服务架构概念理解及技术栈

微服务框架各模块分析:
在这里插入图片描述

监控 - 发现故障的征兆

在高并发分布式的场景下,故障经常是突然间就雪崩式爆发。所以必须建立完善的监控体系,尽可能发现故障的征兆。
定位问题 - 链路跟踪
在微服务架构下,一个用户的请求往往涉及多个内部服务调用。为了方便定位问题,需要能够记录每个用户请求时,微服务内部产生了多少服务调用,及其调用关系。这个叫做链路跟踪。

分析问题 - 日志分析

日志分析组件应该在微服务兴起之前就被广泛使用了。即使单体应用架构,当访问数变大、或服务器规模增多时,日志文件的大小会膨胀到难以用文本编辑器进行访问,更糟的是它们分散在多台服务器上面。排查一个问题,需要登录到各台服务器去获取日志文件,一个一个地查找(而且打开、查找都很慢)想要的日志信息。

网关 - 权限控制,服务治理

拆分成微服务后,出现大量的服务,大量的接口,使得整个调用关系乱糟糟的。经常在开发过程中,写着写着,忽然想不起某个数据应该调用哪个服务。或者写歪了,调用了不该调用的服务,本来一个只读的功能结果修改了数据……

为了应对这些情况,微服务的调用需要一个把关的东西,也就是网关。在调用者和被调用者中间加一层网关,每次调用时进行权限校验。另外,网关也可以作为一个提供服务接口文档的平台。

服务注册于发现 - 动态扩容

最粗暴的(也是最常用的)故障处理策略就是冗余。一般来说,一个服务都会部署多个实例,这样一来能够分担压力提高性能,二来即使一个实例挂了其他实例还能响应。

冗余的一个问题是使用几个冗余?这个问题在时间轴上并没有一个切确的答案。根据服务功能、时间段的不同,需要不同数量的实例。比如在平日里,可能4个实例已经够用;而在促销活动时,流量大增,可能需要40个实例。因此冗余数量并不是一个固定的值,而是根据需要实时调整的。

熔断

当一个服务因为各种原因停止响应时,调用方通常会等待一段时间,然后超时或者收到错误返回。如果调用链路比较长,可能会导致请求堆积,整条链路占用大量资源一直在等待下游响应。所以当多次访问一个服务失败时,应熔断,标记该服务已停止工作,直接返回错误。直至该服务恢复正常后再重新建立连接。

服务降级

当下游服务停止工作后,如果该服务并非核心业务,则上游服务应该降级,以保证核心业务不中断。比如网上超市下单界面有一个推荐商品凑单的功能,当推荐模块挂了后,下单功能不能一起挂掉,只需要暂时关闭推荐功能即可。
限流
一个服务挂掉后,上游服务或者用户一般会习惯性地重试访问。这导致一旦服务恢复正常,很可能因为瞬间网络流量过大又立刻挂掉,在棺材里重复着仰卧起坐。因此服务需要能够自我保护——限流。限流策略有很多,最简单的比如当单位时间内请求数过多时,丢弃多余的请求。另外,也可以考虑分区限流。仅拒绝来自产生大量请求的服务的请求。

参考:
https://mp.weixin.qq.com/s?__biz=MzI2OTQ4OTQ1NQ==&mid=2247488285&idx=2&sn=7994c2803584993cc7c09d29d569351e&chksm=eaded75ddda95e4b52cfdb94d34ef02a2cbb2bbde355fdd536e9769ce15b21d2ce3101d44bb3&mpshare=1&scene=1&srcid=0413R18FkGugZnT8m3wHIF7z&sharer_sharetime=1586739621776&sharer_shareid=3177188b879205cdaf204a607a1dda00&key=738af3dfc6942ae486ad37f9a64582c21b5d88ad9589aa6634b2a751359e86b071db1bced2bad01ed1fe6d8958b2c8d284faf4add9f9ee307d9d2983dca1886dca553752cea1b03ab047b56688b79820&ascene=1&uin=MjMzMTY4OTI2MQ%3D%3D&devicetype=Windows+10&version=62060739&lang=zh_CN&exportkey=AVptNMhnvwBtZqSpv6tfg18%3D&pass_ticket=ZFTZLojPJKnbKcdSWJyfgcpEeL%2Fca8txfY%2Fz0szvvsZnRDaPyne68N5TTvplLrq%2B

微服务技术栈
大致的技术框架图
在这里插入图片描述
在这里插入图片描述
技术栈参考这个:
https://mp.weixin.qq.com/s?__biz=MzAxMTMxMDQ3Mw==&mid=2660106817&idx=1&sn=7675c0b055ee1e194575a34139765446&chksm=8039a6a7b74e2fb1ec222beaaae9357a70ffe4e499fa0d55a1c2bb0497bf224691bf71a332f2&mpshare=1&scene=1&srcid=0413sGh1WZLg3SMryIvU1KCp&sharer_sharetime=1586770187367&sharer_shareid=3177188b879205cdaf204a607a1dda00&key=f507b9b0259644edfef9dd7029208cb96aedc655151d6266e3926651238ce846f84d819eb51bd76f26f4947b1a0b0a0264030b2bbbcb00c4455facfcc13ce9bcf9e75695d8ed64217fe4e8fe0f1e61a4&ascene=1&uin=MjMzMTY4OTI2MQ%3D%3D&devicetype=Windows+10&version=62060739&lang=zh_CN&exportkey=Af63WMlln810tCLk6SzpjgI%3D&pass_ticket=ZFTZLojPJKnbKcdSWJyfgcpEeL%2Fca8txfY%2Fz0szvvsZnRDaPyne68N5TTvplLrq%2B

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值