protobuf / Consul / 边缘计算 / MEC / CDN / Serverless / GraphQL / 微服务 / 网关 / 云原生 / Serverless (真能造概念啊!!!)
技术概念层出不穷,学吧!记录下自己多这些概念的理解
protobuf: 数据结构而已,类比XML, JSON
consul 解决的只是微服务里的服务注册与发现,健康检查等。
边缘计算:可以理解为是指利用靠近数据源的边缘地带来完成的运算程序。邻近计算或者接近计算,预处理数据,自处理数据,加工数据。减少数据传输量和云计算压力。边缘计算更准确的说应该是对云计算的一种补充和优化!(计算节点更靠近数据生产方,所以可以预测,在物联网里会应用非常广泛,那么多的传感器数据...传到远端的云计算中心还不得堵死)
Serverless: 无服务架构,简单粗暴的理解为不需要管理服务端运维的事情了,服务以函数和API接口的方式对前端提供。云数据库,云函数概念,云公共服务等都是Serverless 概念的一种表现形式。
微服务:把传统的单体服务拆分成多个服务,服务之间相互调用,独立部署,独立性强,部分服务异常不会影响全局。微服务尽量遵循单一职责原则。
网关:API聚合层,在这里处理权限,API聚合(调用N个服务组装数据提供给前端调用)
MEC:移动边缘计算(据说核心是:边缘计算网关),通信领域的概念。将计算能力下沉到分布式基站,在无线网络侧增加计算、存储、处理等功能,将传统的无线基站升级为智能化基站。(更低延时,减少网络阻塞,所以在5G时代肯定会应用的很广泛)->>>>华为有个神类比,章鱼比较好的回答
CDN:内容分发网络,CDN就是扮演者护航者和加速者的角色,更快准狠的触发信息和触达每一个用户,带来更为极致的使用体验。实现就近访问,一个字:快!CDN的本质上是将媒体资源,动静态图片(Flash),HTML,CSS,JS等等内容缓存到距离你更近的IDC,从而让用户进行共享资源,实现缩减站点间的响应时间等等需求,而网游加速器的本质则是通过建立高带宽机房,架设多节点服务器来为用户进行加速。-》(把CDN理解为只是缓存静态资源这些有点狭隘了)
GraphQL: 官网解释:是一种用于 API 的查询语言也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。新的数据交互模式,相对于传统的RestFul API 灵活性更大,对前端调用更友好,亲自尝试过,感觉很厉害,一个接口几乎可以拿到所有的后端数据。
云原生(CNCF): 是一些概念和合集
- 应用容器化
- 面向微服务架构
- 应用支持容器的编排调度
云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。
Serverless:无服务器部署,CFS(云函数是最好的案例)
分布式链路追踪:微服务系统架构逐步演进时,后期形态往往是一个平台由很多不同的服务、组件构成,用户请求过来后,可能会经过其中多个服务。出问题时往往很难排查,如整个请求变慢、偶尔报错、不可用等,我们很难得知具体是由哪一个或哪些服务引起的,通常开发同学都会互相甩锅,最后不得不花大量时间人肉 tracing项目初期时,可以简单处理,通过生成唯一 request_id
,在各个方法记录日志,方便排查问题。中后期系统拆分为各个子服务时,要么继续推进原有的 request_id
方式到各个服务,要么换用成熟的追踪系统,如zipkin,jaeger。记录追踪整个请求链路
边缘计算,微服务这些其实都有一个隐藏的概念:分布式服务
理解这些概念的时候不要心急,多看,多揣摩,哪一天突然觉悟了...我也是感觉在今天(2019.6.27)早上突然领悟的时候用这篇文章记录下来的。当然了,做好的理解方式是实践,没机会实践就多看概念和示例吧