加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

大规模微服务场景下的十大痛点问题定位与优化

发布时间:2019-09-18 11:35:34 所属栏目:业界 来源:云技术
导读:副标题#e# 今天我的主题是在微服务场景下的一个性能问题的定位优化,那么今天会讲一个我们其实出现的一个真实的一个场景,然后其实还是花了蛮长时间,然后把这个东西才定位到一个具体的问题。 现在云原生微服务架构特别的火,有非常多的优势,比如说这里面

接下来,我们来解析一个微服务场景下的问题定位过程。

大规模微服务场景下的十大痛点问题定位与优化

为什么说在微服务场景下,我们发现定位问题的时候,我们会觉得它特别的复杂,往往需要架构师牵头协调各个部门一块去定位某个问题。

首先第一个复杂度就是,从顶层到底层这个层次是实在是太多了,我们能想到就是任何一个比如说我们发现请求比较慢的时候,我们首先会想到整个层次中,最上面的应用是不是出了问题,应用这一层本身就比较复杂,图中密密麻麻的线是double服务之间的一个调用关系,它的复杂度已经十分高了,然后中间一旦出现了慢请求,这时候其实很难定位到一哪一个点,哪个服务集群调用哪个服务集群。

应用层下面这就是容器层,容器下面其实是openstack的云网络,我们采取方式是kubernetes和openstack整合的一个方式。因为kubernetes对于容器的发布,运行十分友好,对于网络尤其是多机房高可用横向扩展的vpc网络特性相对弱一些,那么正好云在VPC这方面相对比较强一些,例如浮动ip,跨机房高科用,专线等。容器层或者云网络层,都可能产生问题,例如容器网卡吞吐量受限制,或者ovs吞吐量受限制,都会造成性能问题。

再往下是物理网络,因为牵扯到多机房了,那么可能每机房还有多高可用区,那么整个机房的拓扑结构逻辑也会很复杂。

这时候就可以想象说当一个服务的多个副本构成一个业务集群,当从一个业务集群到另一个业务集群时延高,每个层次都其实都有可能出现问题是吧?然后我们就需要层层的去排查这个事情。

大规模微服务场景下的十大痛点问题定位与优化

另外一个相对比较头疼的一个事,是从前端到后端的层级也是挺多的。问题往往是在压测的时候会发现,那么压测的时候,我们是在我们公有云上去压真实线上的业务,所以其实是走公有网络的。

我们可以想象,从前端到后端经历的环节实在是太多了,你比较难判断他会慢在什么地方。

一开始进入机房,有边界路由器,然后有核心汇聚交换机,这是网管部去管的。

接下来就进入了虚拟的云网络网关,由云计算部门维护。

云网关进来后,会有一层负载均衡,这个负载均衡是可以适配多机房的负载均衡,可以做跨机房浮动IP漂移。

再往里面会有个API网关作为接入层,然后再往后就是服务层了。服务层分业务服务层和基础服务层,之间会引入注册发现机制,比如说用dubbo管理他们之间的相互调用。由于微服务规模比较大,就像刚才图中展示的一样,复杂度很高。

业务之间调用完毕之后,最终肯定是要落库的,这时候会涉及到缓存的访问,缓存后面是数据库。

有时候还涉及到调用云外的系统,因而需要经过云网络的网关。比如说外部的一些支付系统,安全检测系统,包括大数据等,都是云外的。这两次网关其实是不一样的,前面网关是DNAT网关,后面网关是SNAT网关。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读