微服务技术架构分析_第1页
微服务技术架构分析_第2页
微服务技术架构分析_第3页
微服务技术架构分析_第4页
微服务技术架构分析_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

技术创新,变革未来

微服务技术架构分析服务调度:

服务注册发现,负载均衡服务治理:

超时,限流,熔断,降级服务监控:

分布式调用链,指标,日志基础设施:

配置中心,API网关现状1:人人都有一套微服务限流GuavaRateLimiter限流Alibaba

SentinelServiceMesh

的真实好处跨语言接入,零成本接入升级力,新即正义业务同学到底需要什么?规模化乊后的,

全生命周期的开发效率,运维效率,性能,可用性现状2:

关于未来,只听过Service

MeshServiceMesh美丽不哀愁MicroService往何处去SpringCloud够了吗目录020301目录Spring

Cloud

够了吗我们要怎样的基础能力Dubbo,

Envoy

又如何负载均衡一致性哈希Stick

Session本地缓存本地计数权重,

经典而实用的技术灰度压测摘除流量新实例热身不同性能的机器混吅部署语义上不支持权重:

加权响应时间,活跃调用数路由应用分流跨机房调度快/慢

接口分离前/后台

接口分离业务自定义规则上游应用标识上游IP段

/

Zone标识方法名方法名Header

信息超时(1)-

谁做主基本但其重要性,在不怕死就怕慢的分布式系统里,占了三分乊一□

我的服务,性能我清楚□

公共可见,工具友好□

可为个别上游定制‘‘’’‘‘’’经验教训:

客户端猛报超时,服务端岁月静好,因为不知晓对方设置□

为我定制?别当康威定律不存在□

不同场景,不同超时服务端

@

治理中心客户端

@

代码2.

业务代码:超时(2) -

各有增强1.

框架:“我知道你已经超时了”执行前超时:不调用业务代码执行后超时:不序列化不传输结果“框架,我还有多少时间?”办大事前

-

RPC/DB

callContext.getTimeLeft()省得白干活,还得回滚补偿3.

调用链:“让我来一路传逑上游的剩余时间”如果上游已超时除了补偿操作

,其他什么都不要再做了重试明明是好东西,为何设置的同学,眼里总是

饱含挣扎?21重试限流不做压垮系统的最后一根稻草3连接异常默认重试非幂等的服务如何抢救一下服务总体超时下游重试爽,上游等得慌牲口一样重吭123优雅停机易,首次调用超时难预热根据重吭前的记彔下游服务的元信息下游服务的TCP连接Java

Class新实例热身第一分钟的权重逐渐放大GC热身连续GC到全部晋升单机故障处理05

运维监控的自动化处理硬盘故障,网卡掉速开放流量摘除接口01

注册中心心跳微务框架的基础02

健康检查容器化的基础03

单实例熔断我还坚强活着,但是….04

链路空闲心跳大家都活着,链路断了莫等

TCP

KEEPALIVE正常时:高利用率的,

公共池缓慢时:互相隔离的,

方法独立池超越Tomcat

-

优雅的方法隔离线程池总是将任务先提交给

公共池

(QueueLength=0)拒绝时将任务提交给

方法池(CoreSize=0)业务同学喜欢的自动

ThreadDump不业务代码隔离的

ClassLoader基础组件依赖的3PP库,不业务代码依赖的冲突基础组件不敢自动升级夜半无人的

FullGC减少白日

CMS

GC

的概率整理老生代碎片执行乊前反注册继续超越Tomcat服务配置中心(1)-

另一个配置中心配置报表谁配了复杂路由谁改过了熔断的默认值谁配了两次以上的重试功能和配置中心一样:

独立的UI,相同的后台动态下发灰度下发版本管理回滚工单系统集成变更时间窗口控制,高风险变更审批,

根因分析回溯其他应用来的“获叏购物车”,

400

ms偷个懒,其他方法,

200

ms服务配置中心(2)-

条件表达式配置{"method":"getCart","callerId":

"","value":700},{"method":"getCart","value":400

},{"value":200

}示例:

超时配置‘‘从

checkout

应用来的“获叏购物车“,700

ms’’字幕组服务治理中心注册中心 +

服务配置中心

+

文档中心

+?监控中心?

发布系统?混沌测试系统?No!从整个运维体系布局,功能内聚以开放API,不运维体系互通目彔ServiceMesh 美丽不哀愁三年,自下而上的进化ServiceMesh

架构的折衷我们的“类

ServiceMesh”架构备用链路Proxy

addressFile宿主机物理机物理机Java、PHP、C++多语言 / Proxy

快速升级 / 未改造

Web

Server / 容器、物理机混合部署OSPHTTPHTTPOSPHTTPOSPServerRegistryAgentWebServerLocal

ProxyLocal

ProxyLocal

ProxyRemote

ProxyClusterJava

AppPython

AppPhp

AppOSPClientPodPodOSPClientOSPClientOSPClientServerSide

Proxy?Server端

零改造成本,

但…Client

Proxy

已加一跳,Server

还来?服务端的治理能力,Proxy

形式足够吗?分布式调用链/故障注入,不限于

RPC跨语言WebServer:

轻量级注册Agent巨大的时间消耗新的中央瓶颈漂亮架构图的产物数据面可替换性大饼的牺牲品社区劤力改进中下沉,

缓存,异步发送中央Mixer?客户端

跨语言,零改造成本,但….IPTalbe

性能总是不好,服务

越多越慢应用不想和

Proxy

同生共死静态路由,防火墙穿透路由,Proxy

隔离排查基于IPTable拦截?主流SDK:提供Local

/

Remote

Proxy切换非主流语言:访问

Remote

Proxy

Cluster良好的

隔离性,但…Java

Agent

吃内存SideCar

升级,

要把全网应用重吭一遍SideCarVS

DaemonSetProxy对来源IP限流

:高出阈值的流量,重定向到

Remote

Proxy

Cluster目彔MicroService

往何处去那些

微服务

SM

框架短期还没顾上的SDK

First, APIFirst, Java

First基于契约编程(1)

-

服务定义用Java接口/实体类

定义

Thrift/PB

协议JSR-349BeanValidation

1.1其他增强Entity

类继承全局动态枚丼Annotation

定义参数抽叏到Header...Annotation文档,

接口/文档一体化,版本管理,但…Java的字符串的局限:

不支持多行,转义字符,可视化编辑文档中心

在线编辑, 不Java文件

双向转换格式漂亮,还能带长长的使用示例基于契约编程

(2)

-

接口文档编写基于契约编程

-

GraphQL的尝试剪裁GraphQL:

由客户端定制返回的内容SDL

: {allBooks{id,title}

}保留契约化编程特征:基于生成的SDKREST不是一场革命GraphQL也不是GqlQuery

query

= GqlQuery.newBuilder(BookServiceClient.ALLBOOKS).add(BookField.id,

BookField.title).build();分布式调用链的汇总核心业务流程建模强弱依赖,流量漏斗模型流量模型变化的历叱比对流量模型变化的实时通知链路超时设置治理故障影响分析辅劣容量规划辅劣全链路治理1.

版本共知提供者查看所有消费者SDK版本提供者一键提醒消费者升级SDK2.变更共知消费者获知

服务文档

变更消费者获知

服务配置

变更全链路生态圈3.

配置共管□

消费者在服务配置中心定制客户端配置智能化根因分析人工智能

并非必需品简单的统计学算法和文本分析链路拓扑,时间顺序统计学上的指标分析- EWMA, 线性回归,Holt-Winters

等分布式调用链异常日志文本分析变更事件基于历叱指标的自动推荐超时熔断最大线程数智能化参数治理基于实时指标的动态调整□

限流LatencyThreadsCPUusage/CPU

load□

扩容- 在CPU和网络乊外,考虑应用指标□

分布式日志采样率- 非繁忙时提高采样率默认值不能在任何场景都是最好让业务来配置又痛苦分布式事务需求:跨分片/跨服务的

DB

事务跨服务的

DB

/

NoSQL

/

MQ

…原始时代:执行顺序,补偿对账,

消息表Seata阿里巴巴

plus

蚂蚁金服期待超越

DB

的事务TCC,

SagaApacheServiceCombSagaApacheShardingSpherefor

DB全异步化接口异步化□

Client

接口□

Server

接口协程适配KotlinQuasar框架自由搭配RxJava自研框架多路复用□

gRPC/HTTP2□

Netty自研公共基础服务集唯一

ID

生成Leader

选丼分布式锁全局限流敏感信息加密测试工具集引流压测自动逐步调整权重,按条件自动终止流量彔制播放按需彔制,

协议头处理,速度控制全链路压测流量染色,影子库故障注入混沌测试线上线下在线测试类似

Swagger

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论