作者回复: 赞,看的很仔细,这个问题提的很好,正好是万亿级的流量转发了,一般我们使用的云厂商的触发器等,都要经过这一层,比如BFE这种。但我们同时也有两个点得明确一下哦,一个是账号和并发度在函数上的并发受限,第二是在集群中部署的调度组件,比如通过HPA也是具备扩缩容能力的。
作者回复: 好问题,通常两个地方,一个是消息触发器,这里的平台需要在用户创建之时以Consumer Group 方式消费配置的消息,需要有鉴权验证,有的云厂商平台如果涉及VPC ,需要跨VPC 操作,这里可以到时候看第九小节,消息的访问平台通常有用户授权特权模式打通,第二个是内部的消息处理,这里跟我们之前处理微服务的架构就差不多了,但不同的是我们需要考虑资源的利用和闲置,如果是因为历史的原因采用了非存算分离的消息队列,可以在后续的架构中考虑引入类似pulsar ,Rocket MQ Serverless 形态的中间件集成。除此之外呢,在日志收集等地方也会用到,参考微服务处理方式就行。欢迎交流哦
作者回复: 👍,赞,很不错哦,可以结合第五讲连起来看
作者回复: 从部署上来说,其实我们更多的还是考虑如何让使用Serverless 技术或者产品的开发者能有一个平滑过渡的体验,保持和原来更接近的开发部署体验,才更有利于工程师转型或者探索。那么在运行态,最主要的是Serverless 平台自动伸缩的特性,使得在新的实例上有一个拉取镜像启动运行的时间,下节课开始会逐步聊这块。
作者回复: 看的很仔细👍,都是自己按照云厂商的标准来实现,或者如果你是平台侧,你得实现类似这样的能力,让你的业务方来开发,类似我们平时做一个框架一样,然后按照框架规范来实现一个server 即可
作者回复: 开发者,自定义镜像是开发者自己实现的一个Http server 或者一个任务服务等
作者回复: 1. 预留实例,预留buffer ,异步调用,预测预取,抢占等都是常用的手段,看你具体是业务方还是平台方,平台方还要考虑底层资源准备情况,看你是用vm 还是容器实例了,可以找极客助理加微信具体来聊聊哈2.我倒是建议直接用自定义镜像或者层依赖,还不如使用SAE 这种托管服务,具体可以参考服务选型一节哦
作者回复: 你好,不一定云厂商,私有化部署也可以,这里的FaaS平台指的是函数计算的中控调度模块,具体可以设计成2个子模块(即异步接收消息暂存和消息处理); 子模块1,假设叫eventProc,用于接收消息的请求,并发往消息队列;子模块2,假设叫MsgProc,用户处理消息队列的请求,并同步调用函数来做处理,如果云函数没有资源否则处理出错,会做一层异步重试策略,或者按照消息的及时性,直接返回错误信息,写到用户配置的日志服务中存储,供用户查阅。或者按照用户配置的异步队列或者异步函数进行转发供用户进一步统计用。