首页 > 其他分享 >分布式系统关键技术:流量与数据调度

分布式系统关键技术:流量与数据调度

时间:2023-05-19 15:47:03浏览次数:40  
标签:服务 调度 流量 Master 分布式系统 关键技术 数据

1、流量调度与服务治理的关系

服务治理时内部系统的事,流量调度可以是内部的,更是外部接入层的事。服务治理时数据中心的事,而流量调度要做的好,应该是数据中心之外的事,也就是我们常说的边缘计算或者CDN。

 

2、流量调度的主要功能和关键技术

流量调度系统应该主要具备的功能:

  • 依据系统运行的情况,自动地进行流量调度,在无需人工干预的情况下,提升整个系统的稳定性;
  • 让系统应对爆品突发事件时,在弹性计算扩所容的较长时家窗口内或底层资源消耗殆尽的情况下,保护系统平稳运行;
  • 服务流控:服务发现、服务路由、服务降级、服务熔断、服务保护;
  • 流量控制:负载均衡、流量分配、流量控制、异地灾备(多活);
  • 流量管理:协议转换、请求校验、数据缓存、数据计算。

流量调度的关键技术(API Gateway)

  • 高性能:必须具备高性能的技术(如:采用高性能的语言编写);
  • 扛流量:要能抗流量就要使用集群技术,在集群技术中关键技术是要在集群的各个节点进行数据共享,这就需要使用Paxos、Raft、Gossip这样的通讯协议;
  • 业务逻辑:需要具有简单的业务逻辑;
  • 服务化:需要能够通过Admin API来不停机地管理配置变更,而不是通过.conf文件来人肉的修改配置。

 

3、状态数据调度

对于服务调度的场景来说,最难办的就是有状态的服务了(这些服务会保存一些数据,并且这些数据不能丢失,需要随服务一起调度),对于这样的场景,一般来说可以通过“转移问题”的方法来让服务变成“无状态的服务”(把这些有状态的数据存储在第三方服务上,如:Redis、MySQL、ZooKeeper、NFS、Ceph的文件系统中)。于是服务就变成了“无状态服务”,Redis、MySQL则有了状态。

 

 4、分布式事务一致性的问题

如果要让数据服务可以像无状态的服务一一样在不同的机器上进行调度,就需要让数据具有多个副本,多副本的场景下副本的一致性是非常关键的问题,要解决数据副本间的一致性问题时,通常的技术方案有:

  • Master - Slave 方案:Slave一般是Master的备份,读写请求都由Master负责,写请求到Master上后,由Master同步到Slave上(通常是Slave周期的Pull)。
  • Master - Master 方案:指的是在一个系统中存在两个或者多个Master,每个Master购提供read-write服务。数据间同步一版是通过 Master 间异步完成,所以是最终一致性。
  • 两阶段和三阶段提交方案:
  • Paxos方案:

针对以上几种方案的对比:

 

5、思考

1)什么是Scale

Scale 通常指的是规模的扩展性,即系统能够处理更多请求和数据的能力。这意味着分布式系统需要能够轻松地处理更多的用户请求、数据量和交互量,而不会崩溃或变得不可用。

Scale 通常涉及三个方面的扩展:硬件、软件和网络。硬件扩展包括使用更多的计算资源、存储资源和网络带宽,以支持更多的用户和请求。软件扩展包括使用更高级的算法、数据结构和编程语言,以提高系统的性能和可扩展性。网络扩展包括使用分布式缓存、负载均衡和消息传递技术,以提高系统的可用性和可靠性。

Scale 是分布式系统设计中非常重要的一个方面,它决定了分布式系统能够处理大量数据和请求的能力,以及系统的可扩展性和可用性。

 

6、参考文件

1)分布式系统关键技术:流量与数据调度

标签:服务,调度,流量,Master,分布式系统,关键技术,数据
From: https://www.cnblogs.com/hlc-123/p/17414423.html

相关文章

  • 分布式系统关键技术:服务调度
    1、服务关键程度服务关键程度,主要是梳理和定义服务的重要程度。这不是使用技术可以完成的,而是需要细致地管理对业务的理解,才能定义出架构中各个服务的重要程度。 2、服务依赖关系梳理出服务间的依赖关系,这点也非常重要。我们常说,“没有依赖,就没有伤害”。这句话的意思就是说......
  • 考虑柔性负荷的综合能源低碳经济调度 调度模型参考第
    考虑柔性负荷的综合能源低碳经济调度调度模型参考第一篇文献碳交易模型参考第二篇考虑三种场景并用cplex求解场景一调度结果如图所示本代码可改写能力强ID:49150696224502280......
  • 分布式系统的技术栈
    构建分布式系统的目的是增加系统容量,提高系统的可用性。说白了就是干两件事。一是提高整体架构的吞吐量,服务更多的并发和流量,二是为了提高系统的稳定性,让系统的可用性更高。1、如何提高整体架构的吞吐量,服务更多的并发和流量?1)提高系统性能的常用技术缓存系统:在分布式系统......
  • 分布式系统架构的问题和解决思路
    1、亚马逊做分布式服务架构,遇到了哪些问题,如何解决的?1)采用分布式系统架构后出现的问题:一个线上故障的工单会在不同的服务和不同的团队中转过来转过去;每个团队都可能成为一个潜在的DDoS攻击者,除非每个服务都要做好配额和限流;监控和查错变得更为复杂。除非有非常强大的监......
  • go语言调度gmp原理(3)
    go语言调度gmp原理(3)调度循环调度器启动之后,go语言运行时会调用runtime.mstart和runtime.mstart1,前者会初始化g0的stackguard0和stackguard1字段,后者会初始化线程并调用runtime.schedule进入调度循环funcschedule(){ mp:=getg().m ifmp.locks!=0{ throw("schedul......
  • go语言调度gmp原理(2)
    go语言调度gmp原理(2)创建goroutine通过runtime.newproc函数调用,runtime.newproc的入参是参数大小和表示函数的指针funcval,它会获取goroutine以及调用方的程序计数器,然后调用runtime.newproc1函数获取新的goroutine、结构体、将其加入处理器的运行队列,并在满足条件时调用runtime......
  • 火山引擎DataLeap数据调度实例的 DAG 优化方案 (二):功能设计
    针对上面存在的问题以及对需求的分析,我们可以进行如下的功能实现与设计:首先是渲染方案的替换,将svg的渲染方案替换成canvas渲染,通过减少页面中DOM的数量,提高前端渲染性能。其次是不同场景的功能设计,通过上面的需求分析,火山引擎DataLeap研发人员设计了不同的功能模式以满足......
  • Matlab,风光火储网综合能源系统优化调度。 包括热电厂热
    Matlab,风光火储网综合能源系统优化调度。包括热电厂热电机组(11台,电出力上下限受热出力的影响)、热电厂纯凝机组(4台),储能,储热,电转热设备(考虑与风电、热电厂出力配合的启停策略)风电光伏等机组。考虑经济性指标,cplex求解ID:5199677508760810......
  • MATLAB代码:基于两阶段鲁棒优化算法的微网经济调度 关键词:经济
    MATLAB代码:基于两阶段鲁棒优化算法的微网经济调度关键词:经济调度微网两阶段鲁棒规划仿真平台:MATLABYALMIP+CPLEX主要内容:代码主要做的是一个微网中电源容量优化配置的问题,即风电、光伏、储能以及燃气轮机的容量规划问题,程序考虑了不确定性,采用两阶段鲁棒优化方法进行优化,一阶......
  • matlab复现,考虑综合需求响应和阶梯型碳交易机制的综合能源系统优化调度策略。
    matlab复现,考虑综合需求响应和阶梯型碳交易机制的综合能源系统优化调度策略。关键词,综合能源系统,碳交易机制,综合需求响应。matlab复现,考虑综合需求响应和阶梯型碳交易机制的综合能源系统优化调度策略。关键词,综合能源系统,碳交易机制,综合需求响应。YID:4280669326294816......