mirror of
https://github.com/zhwei820/learn.lianglianglee.com.git
synced 2025-11-17 14:43:43 +08:00
fix img
This commit is contained in:
@@ -203,7 +203,7 @@ function hide_canvas() {
|
||||
<li>去云厂商上买台云服务器运行站点,为了解决高可用的问题又买了负载均衡服务和多个服务器;</li>
|
||||
<li>采用静态站点方式,直接由对象存储服务(如 OSS)支持,并使用 CDN 回源 OSS。</li>
|
||||
</ul>
|
||||
<p><img src="assets/2020-07-27-022836.jpg" alt="2.JPG" /></p>
|
||||
<p><img src="assets/2020-07-27-022836.jpg" alt="png" /></p>
|
||||
<p>这三种方式由云下到云上,由管理服务器到无需管理服务器,即 Serverless。这一系列的转变给使用者带来了什么变化呢?前两种方案需要预算,需要扩展,需要实现高可用,需要自行监控等,这些都不是马老师当年想要的,他只想去展示信息,让世界了解中国,这是他的业务逻辑。Serverless 正是这样一种理念,最大化地让人去专注业务逻辑。第三种方式就是采用了 Serverless 架构去构建一个静态站点,它有其它方案无法比拟的优势,比如:</p>
|
||||
<ul>
|
||||
<li>可运维性:无需管理服务器,比如操作系统的安全补丁升级、故障升级、高可用性,这些云服务(OSS,CDN)都帮着做了;</li>
|
||||
@@ -225,7 +225,7 @@ function hide_canvas() {
|
||||
<li>是否可以通过函数来实现轻量级微服务,依赖函数计算提供的负载均衡、自动伸缩、按需付费、日志采集、系统监控等能力;</li>
|
||||
<li>基于 Spring Cloud、Dubbo、HSF 等实现的微服务应用是否需要自己购置服务器部署应用,管理服务发现,负载均衡,弹性伸缩,熔断,系统监控等,还是可以将这些工作交给诸如 Serverless 应用引擎服务。</li>
|
||||
</ul>
|
||||
<p><img src="assets/2020-07-27-022839.jpg" alt="4.JPG" /></p>
|
||||
<p><img src="assets/2020-07-27-022839.jpg" alt="png" /></p>
|
||||
<p>上图右侧的架构引入了 API 网关、函数计算或者 Serverless 应用引擎来实现计算层,将大量的工作交给了云服务完成,让用户最大程度上专注实现业务逻辑。其中系统内部多个微服务的交互如下图所示,通过提供一个商品聚合服务,将内部的多个微服务统一呈现给外部。这里的微服务可以通过 SAE 或者函数实现。</p>
|
||||
<p><img src="assets/2020-07-27-5.JPG" alt="img" /></p>
|
||||
<p>这样的架构还可以继续扩展,比如如何支持不同客户端的访问,如上图右侧所示。现实中这种需求是常见的,不同的客户端需要的信息可能是不同的,手机可以根据位置信息做相关推荐。如何让手机客户端和不同浏览器都能受益于 Serverless 架构呢?这又牵扯出了另一个词——Backend for fronted(BFF),即为前端定做的后端,这受到了前端开发工程师的推崇,Serverless 技术让这个架构广泛流行,因为前端工程师可以从业务角度出发直接编写 BFF,而无需管理服务器相关的令前端工程师更加头疼的事情。更多实践可以参见:<a href="https://yq.aliyun.com/articles/752780">基于函数计算的 BFF 架构</a>。</p>
|
||||
@@ -233,7 +233,7 @@ function hide_canvas() {
|
||||
<p>前面提到的动态页面生成是同步请求完成的,还有一类常见场景,其中请求处理通常需要较长时间或者较多资源,比如用户评论中的图片和视频内容管理,涉及到如何上传图片和处理图片(缩略图、水印、审核等)及视频,以适应不同客户端的播放需求。</p>
|
||||
<p><img src="assets/2020-07-27-6.JPG" alt="img" /></p>
|
||||
<p>如何对上传多媒体文件实时处理呢?这个场景的技术架构大体经历了以下演变:</p>
|
||||
<p><img src="assets/2020-07-27-022842.jpg" alt="7.JPG" /></p>
|
||||
<p><img src="assets/2020-07-27-022842.jpg" alt="png" /></p>
|
||||
<ul>
|
||||
<li>基于服务器的单体架构:多媒体文件被上传到服务器,由服务器处理,对多媒体的显示请求也由服务器完成;</li>
|
||||
<li>基于服务器的微服务架构:多媒体文件被上传到服务器,服务器处理转存到 OSS,然后将文件地址加入消息队列,由另一组服务器处理文件,将处理结果保存到 OSS,对多媒体的显示请求由 OSS 和 CDN 完成;</li>
|
||||
@@ -262,7 +262,7 @@ function hide_canvas() {
|
||||
<p>事件触发能力是 FaaS 服务的一个重要特性,这种 Pub-Sub 事件驱动模式不是一个新的概念,但是在 Serverless 流行之前,事件的生产者、消费者以及中间的连接枢纽都是用户负责的,就像前面架构演进中的第二个架构。</p>
|
||||
<p>Serverless 让生产者发送事件,维护连接枢纽都从用户职责中省略了,而只需关注消费者的逻辑,这就是 Serverless 的价值所在。</p>
|
||||
<p>函数计算服务还集成其它云服务事件源,让你更方便地在业务中使用一些常见的模式,如 Pub/Sub、事件流模式、Event Sourcing 模式。关于更多的函数组合模式可以参见:<a href="https://yq.aliyun.com/articles/722461">函数组合的 N 种方式</a>。</p>
|
||||
<p><img src="assets/2020-07-27-8.JPG" alt="8.JPG" /></p>
|
||||
<p><img src="assets/2020-07-27-8.JPG" alt="png" /></p>
|
||||
<h3>场景 4: 服务编排</h3>
|
||||
<p>前面的商品页面虽然复杂,但是所有的操作都是读操作,聚合服务 API 是无状态、同步的。我们来看一下电商中的一个核心场景——订单流程。</p>
|
||||
<p><img src="assets/2020-07-27-9.JPG" alt="img" /></p>
|
||||
|
||||
Reference in New Issue
Block a user