让有状态的节点变成无状态的节点才能更好的应对高并发

author author     2022-12-07     314

关键词:

让有状态的节点变成无状态的节点才能更好的应对高并发

上篇文章我们对什么Serverless做了简单的介绍,并介绍了它的重要组件FaaS为什么响应这么快,得益于它的三层架构,这篇文章我们将继续深入分析一下FaaS,了解一下它的两种进程以及对高并发是怎么进行应对的。

FaaS的两种进程模型

FaaS有两种进程模式,一种是用完就销毁的,一种是常驻进程。函数在执行后函数实例就销毁的就是用完销毁型,函数在执行之后实例不会销毁,而是等待下一次的调用,对于常驻进程的云厂商计费方式是按CPU的计算时间算的,所以我们也没有必要担心常驻内存一直运行着是否会一直在扣钱的问题。。

高并发来了怎么办

随着业务量的增加,高并发是我们必须面临的一个问题,FaaS也在这方面有自己的方案。当高并发来了的时候,我们通常使用横向扩容和纵向扩容,堆机器就是横向扩容,增加单个机器的cpu核数就是纵向扩容,堆机器是我们经常使用的一种手段,它更加可控。在进行扩缩容的时候通常面临一个问题,那就是需要重启服务器,对于无状态的服务,这无关紧要,它不存储任何的数据,而有状态的节点存储数据,像数据库这样的节点,对应数据库的访问,FaaS使用云服务商提供的BaaS服务来操作数据库而不是直接连接数据库进行增删改查操作,因为这不放面FaaS模块的扩缩容,还会让FaaS的性能降低,BaaS服务让后端应用转换为不需要运维的数据接口,它是Serverless中的一个重要模块。

总结

这篇文章我们讲了FaaS的两种类型的进程,并介绍了在面临高并发的时候,通过横向扩容和纵向扩容来应对,横向扩容是我们经常使用的方法,它更加可控,最重要的是将有状态的节点变成无状态的节点,因此在FaaS和数据库节点中间引入BaaS服务。

❤️ 感谢大家

如果你觉得这篇内容对你挺有有帮助的话:

  1. 欢迎关注我❤️,点赞

    单个节点上的 Service Fabric 无状态服务部署

    】单个节点上的ServiceFabric无状态服务部署【英文标题】:ServiceFabricStatelessServiceDeploymentonIndividualNodes【发布时间】:2020-02-1200:29:47【问题描述】:我想在集群中的各个节点上部署我的ServiceFabric无状态服务(后台服务)的多个实... 查看详情

    jstree中想要选中子节点,父节点就会变成选中状态,需要如何修改。

    现在是选中了子节点会有个方块的状态,要全选才会是选中状态。新手看不太懂js源码,求jstree大神打救。我用的是jstree4.1.0,方块状态的父节点用get_checked获取不了,只能获取子节点id。我要的是只要有选中子节点,子节点和父... 查看详情

    案例二(构建双主高可用haproxy负载均衡系统)

    ...因为在一主一备的Keepalived环境中,只有主节点处于工作状态,而备用节点则一直处于空闲等待状态,仅当主节点出现问题时备用节点才能开始工作。对于并发量比大的Web应用系统来说,主节点可能会非常繁忙,而备用节点则十... 查看详情

    高性能高并发网站架构,教你搭建redis5缓存集群

    ...luster集群采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。为了保证数据的高可用性,加入了主从模式,一个主节点对应一个或多个从节点,主节点提供数据存取,从节点则是从主节点拉取... 查看详情

    并发队列(代码片段)

    ...于高并发场景下的队列,通过无锁的方式,实现了高并发状态下的高性能,通常ConcurrentLinkedQueue性能好于BlockingQueue,它是一个基于链接节点的无界线程安全队列。该队列的元素遵循先进先出的原则。头是最先加入的,尾是最近... 查看详情

    线程学习--queue

    ...于高并发场景下的队列,通过无锁的方式,实现了高并发状态下的高性能,通常ConcurrentLinkedQueue性能好于BlockingQueue。它是一个基于链接节点的无界线程安全队列。该队列的元素遵循先进先出的原则。头是最先加入的,尾是最近... 查看详情

    高并发线程的生命周期其实没有我们想象的那么简单!!(代码片段)

    ...文中,我们简单介绍了线程的生命周期和线程的几个重要状态,并以代码的形式实现了线程是如何进入各个状态的。今天,我们就结合操作系统线程和编程语言线程再次深入探讨线程的生命周期问题,线程的生命周期其实没有我... 查看详情

    聊聊高并发(十三)实现几种自旋锁

    ...列已经获得节点可是还没有增加工作队列时超时,把节点状态能够直接改成FREE给兴许线程使用,然后返回false就可以3.第三步 查看详情

    es集群分片unassigned

    参考技术A由于启动的问题导致了集群状态为yellow出现分片UNASSIGNED(应该是所谓的出现了脑裂)关闭主节点后,重新选择了之前的主节点之后,数据没这么乱,稍微好点部分分片一直处于INITIALIZING,并且分片不均衡,节点1上之前有... 查看详情

    并发编程------并发quene

    ...于高并发场景下的队列,通过无锁的方式,实现了高并发状态下的高性能,通常ConcurrentLinkedQueue性能好于BlockingQueue。它是一个基于链接节点的无界线程安全队列。  该队列的元素遵循先进先出的原则,头是最先加入的,尾是... 查看详情

    keepalived高可用(代码片段)

    ...型中的所有节点中,某一时刻只允许有一个节点处于MASTER状态,其他节点均为BACKUP状态。工作中只有MASTER节点会接受请求,BACKUP状态的节点处于闲置状态。只有在MASTER出现故障的时候,BACKUP节点才会重新选举出新的节点进入MASTER... 查看详情

    架构高可用高并发系统的设计原则

    ...结果取决于20%的原因系统设计遵循的原则1.高并发原则无状态无状态应用,便于水平扩展有状态配置可通过配置中心实现无状态实践:Disconf、Yaconf、Zookpeer、Consul、Confd、D 查看详情

    coreldraw形状工具有啥

    ...有“转换为直线”和“转换为曲线”两个图标按钮,灰色状态为当前状态,也可以选中一个节点,点击“转换为直线”,图形就变成如 查看详情

    oauth2.0认证模式

    ...存储的高可用问题又来了,简直就是套娃式困局。既然有状态服务出现瓶颈,大佬们开始提出无状态服务,就是使用token验证方式替代较重的session,token就是一个字符串,只要服务根据约定好的算法解析出的结果跟预期一致就可... 查看详情

    storm面试小题(代码片段)

    ...eeper建立的    2)主节点和工作节点的具体状态都保存在zookeeper中,主节点通过查看工作节点的状态文件是否存在判断工作节点的连接状态    3)主节点和工作接待点之间通过zookeeper集群进行协调,... 查看详情

    redis读写分离支撑读请求超过百万

    ...扩展的读高并发架构。1.redis采用异步方式复制数据到slave节点;2.一个master节点可以配置多个slave节点;3.slave节点也可以连接其他slave节点;4.slave节点复制的时候,不会blockmaster节点的正常工作;5.slave节点复制时也不会block对自... 查看详情

    hdfs高可用使用quorumjournalmanager(qjm)

    ...个分开的NameNode.在任何时刻,有且仅有一个NameNode是Active状态,并且另一个是Standby状态.Active的节点负责集群内所有client的操作,而Standby节点则简单扮演一个slave,保持足够的同步状态用来在必要的时候提供快速的故障恢复。为... 查看详情

    负载均衡lbloadbalance

    ...可用而设计的,专门用来监控集群系统中各个服务节点的状态。如果某个服务节点出现异常,或工作出现故障,Keepalived将检测到,并将出现故障的服务节点从集群系统中剔除,也就是替LVS做了对后端realserver的健康状态监测。而... 查看详情