面向大规模队列,百万并发的多优先级消费系统设计

原创 阿里云视频云 2022-11-27 11:27


大规模队列的核心诉求,不仅需要「快」,还需要兼顾「公平」。

01 引言

HTTP是一种常用的通信协议,除了常见网站访问、上传下载,HTTP协议还经常被用在消息推送场景上。


设想你搭建了一个电商平台,有很多大型商家入驻了该电商平台并售卖各类商品,在消费者购买某个商品后,平台会通过HTTP协议将消费者购买商品的信息通知商家,商家则会在后台接收平台推送过来的消息。


一般情况下,所有的系统都正常工作。但突然有一天,A商家出现了爆款产品,使得销售量迅速上升,由于A商家的后台服务处理能力是有限的,便会出现平台一直在给A商家推送商品售卖信息,而将其他商家的消息都排在后面,这便导致大量其他商家不能及时知道商品的售卖情况。


这种情况也会发生在某个大客户系统异常、响应急剧变慢,导致平台推送能力下降影响其他客户。因此,实现不同客户消息推送的隔离与控制就显得十分重要。


除了消息推送场景,类似的需求也发生在平台型的任务处理场景资源调度场景


在任务处理场景,很多客户会使用平台来处理任务,比如:通过通信平台发送语音通知,每个客户都有大量的语音通知业务请求需要处理。

由于资源是有限的,所以需要给每个客户配额一定的处理能力,当客户提交的请求大于配额的时候,平台会按最高配额的处理速度来处理客户的请求,并将超过配额的部分积压延后处理,这样会避免因为某些头部客户的请求量过大导致其他客户的请求长时间无法处理的情况。


在资源调度场景,假设平台有很多资源用于处理客户的请求,虽然每个资源都能处理某些类型的任务,但是资源的实时处理能力是受限的。


比如:资源只能实时处理100QPS的请求,这时需要建立一套机制,将对应资源能处理的任务选择出来,并按资源的实际处理能力提交给对应的资源进行处理,保证所有资源都能满负荷运行。

02 问题分析

上面三个场景看似不同,但背后其实隐藏的是同样的问题模型:


| 系统处理能力受限,或者系统能承诺处理能力受限。

| 实际的请求量可能在某个时间点远大于系统的处理能力

| 个体与个体之间是独立且存在差异的,平台上有不同的客户,不同客户对时效的要求是不一样的,不同客户的任务规模也是不一样的。

| 超高的并发,比如十万甚至百万QPS的HTTP消息推送请求。


对于这种类型的问题,我们如何解决呢?


其实,不管是资源还是客户,都可以抽象为一个实时处理能力受限的队列。


对于消息推送场景,可以为每个客户建立一个队列,把需要推送的消息放到对应的客户队列里,并按客户最大配置流量轮流进行推送。


对于任务接收场景,每个客户都可以被当作是一个队列,只要能控制每个队列的最大消费速度,就能保证不会因为头部客户的突发流量导致其他客户被影响。


对于资源调度场景,可以为每个资源建立一个队列,然后将对应资源能处理的任务放在队列里面,再按照队列的实时处理能力,消费里面的数据。


此外,即使同个客户或者同个资源里,业务内部也是有优先级的,所以队列内部也需要支持业务的优先级


因此,这类队列模型于普通的生产消费者模型存在显著的区别:


队列数量非常多,队列的消费速度需要满足上限,支持优先级。


如何构建这类面向百万并发、支持优先级的大规模队列的生产消费系统?

03 技术选型

提到生产消费模型,很自然会想到一些成熟的消息中间件,如METAQ,KAFKA等。但是经过调研发现:当队列数量的量级非常大,达到千级甚至万级的时候,这些中间件还是存在较大瓶颈的。


以METAQ为例,由于METAQ是一个线程池模式,一个TOPIC就有一个线程池,所以当TOPIC非常多的时候,机器上需要开非常多的线程,这显然是不可能的。通过分析发现,METAQ的问题主要是实现机制的问题,所以另一个思路是:基于开源的METAQ源代码,对其消费端进行二次开发。


但这也会存在一系列的问题……


首先,METAQ的代码本身非常庞大,熟悉里面的细节就需要投入非常大的成本。此外,METAQ的设计思路与面向大规模队列的场景有着本质区别,METAQ核心设计思路是“快”


然而,大规模队列的核心诉求不仅需要“快”,还需要兼顾"公平",即保证所有的队列都能达到自己的性能目标。


这就导致METAQ里面有大量的逻辑其实并不匹配大规模队列的生产消费模型。同时,考虑到后续METAQ的版本迭代等的稳定性风险也是非常难以控制的。


不管是METAQ还是KAFFA,在队列优先级的支持上比较弱,这些中间件在设计的时候,并非主要面向多优先级的消息。因此,支持这个特性也非常难,改造的成本也非常高。


通过综合评估,基于分布式基础队列进行自建会更稳定、可靠、可落地。通过系统调研发现阿里云的LINDORM和REDIS都提供基础的队列操作,LINDORM提供的STRONG CONSISTENCY(SC)级别的数据一致性能力,可以支持数据写入后100%被立即读出。而REDIS主要采用的是一种异步备份的机制,所以从数据的高可靠考虑,选择LINDORM是更可靠的方案。


LINDORM是一个支持多模型的NOSQL系统,兼容HBASE/CASSANDRA、OPENTSDB、SOLR、SQL、HDFS等多种开源标准接口,支持的模型包括:KV,WIDECOLUMN,TABULAR和队列模型等,这里使用的就是它的队列模型。


虽然LINDORM也叫队列模型,但是它跟METAQ消息队列不一样,他核心的主要只有两个操作接口: 一个是PUT,把数据放入到某个队列的队尾,成功后会返回消息对应的偏移,另一个是GET(I),从某个偏移地址获取对应的数据,且单队列最大只支持150QPS。


到这里便可以发现理想与现实的巨大鸿沟,我们生产消费系统的目标是要支持十万、百万并发,并且希望能自动解决消费进度管理、异常的恢复等问题,以LINDORM目前的状况来看都是没有的。

04 大规模队列生产消费系统总体设计

通过前文分析发现LINDORM只提供了插入数据及获取数据两个基础操作,单队列只支持150QPS,而且没有消费进度管理和异常灰度机制,这些问题该如何解决?


这里将构建百万并发、支持多优先级的大规模队列生产消费系统称为EMQ(ENORMOUSE SCALE MESSAGE QUEUE )。EMQ系统主要分为6个模块:队列拆分、队列分配、队列消费、容量控制、消费进度管理、容错机制

  • 队列拆分

为了便于理解,将之前提到的客户对应的队列及资源对应的队列统一称之为逻辑队列,将LINDORM的队列称之为物理队列。

LINDORM单队列只支持150QPS,且任何物理队列都存在容量限制。但是,我们系统设计的目标是一百万QPS(尽管这个一百万QPS是所有逻辑队列的总和)。


单个逻辑队列超过1000QPS在实际情况中非常常见,且从设计角度来讲,逻辑队列的QPS也十分难控制。因此,必须把逻辑队列拆分成一个个150QPS以内的物理队列。

  • 队列分配

在队列拆分完后,系统需要消费这些物理队列,因此需要把队列合理的分配到应用集群的机器上。

每台机器上需要启动对应的客户端去消费各队列里面的数据,因为把一个支持1000QPS的队列拆分成了20个小的物理队列,所以每个队列支持50QPS。


这里通过单队列容量50QPS乘以总的物理队列数等于1000QPS来实现逻辑队列支持1000QPS的目标,但是从逻辑上如果存在数据倾斜的时候,会存在总容量不满1000PQS的情况。


考虑到该系统主要面向的是一个海量数据场景,因此从概率上来讲,这是可以接受的。

  • 队列消费

队列分配完后,还需要构建一个支持高性能的消费客户端。该客户端的高性能主要表现在:实现避免网络IO访问导致的性能下降;能快速处理本台机器上的所有队列,保证既不会轮不到,又能满负荷处理;同时,在消费完消息后能快速的执行业务系统的任务。

  • 容量控制

当完成队列消费后,仍需要构建一个消费进度的管理模块,即管理当前队列生产的点位和已经消费的数据的点位,这样子才能清楚地知道下一个需要消费的数据以及队列的积压量。

  • 容错机制

系统的容错机制主要包括三个方面:首先,如果某个偏移量没有数据的时候,需要能发现并跳过对应的偏移;其次,因为消费完的数据需要提交各业务层进行处理,如果业务层处理失败后我们应该有一定的异常恢复机制,如果业务层持续失败的时候我们需要有一定的兜底机制;此外,当机器因为异常宕机的时候,在原来机器上消费的队列需要平滑迁移到其他机器,从而实现无损恢复。

05 EMQ集群模型

  • 队列模型

如下图为EMQ的队列模型:

ROOT节点下分两个节点:一是ONLINE节点,主要是面向生产环境,二是SANBOX,主要面向生产前的测试,这能保证系统在更新某个功能的时候可以先进行充分的测试然后再同步到生产环境。


在ONLINE节点下面是一个个TOPIC,这里的TOPIC就是我们之前说的逻辑队列,也就是分配给客户的队列或者为每个资源分配的队列(后文使用TOPIC代指逻辑队列)。每个TOPIC有一定的容量,也就是我们说的QPS。


每个TOPIC下有若干个GROUP,每个GROUP有独立的容量,其值为TOPIC的容量除以总的GROUP数,并且要求这个值需要小于LINDORM物理队列支持的最大QPS。


每个TOPIC下面有分优先级的QUEUE,该设计主要是为了支持优先级能力设计的。本文为了描述方便,会以高中低三个优先级为例介绍。这三个优先级的QUEUE是共享GROUP的容量,也就是说如果GROUP支持50QPS,那么三个QUEUE的总QPS是50。这里QUEUE才是真正对应LINDORM的物理队列,这也是为什么要求GROUP的容量需要小于LINDROM物理队列支持的最大QPS。


对于资源调度场景,假设有一个资源的QPS是500QPS。那么,他会对应一个TOPIC,这个TOPIC下面有10个GROUP,每个GROUP有3个优先级,也就是它会生产3*10 = 30个LINDORM队列。

  • 队列分配模型

假设每个GROUP的QPS为50,那么对于100万并发的系统将有约6万个物理队列,如何将这么大数量级的队列分配到机器上去?队列分配应该满足哪些原则?


首先,尽可能将队列平均分配到每台机器上,避免出现某个机器消费队列数据量太多产生性能问题;其次,当机器下线、宕机或置换的时候,机器上消费的队列尽可能不要发生大面积的迁移;最后,当队列新增或者删除的时候,机器上消费的队列也尽可能得不要发生大面积的迁移。


基于这些原则,设计了如下图所示的队列分配模型。

首先,引入一个ZOOKEEPER集群,在主节点下面建立两个节点,一个是RUNNING节点,用于保存机器的心跳信息,在机器上线的时候会创建一个以机器IP为名字的临时节点,在机器下线的时候会销毁对应节点。二是SERVERLIST节点,该节点保存的是所有消费的机器IP为名字的子节点,而在子节点里保存的是机器消费的所有队列。


现在有一个队列结集合和有一个机器列表集合,需要把队列尽可能平均的分配到机器上。一个简单的方法就是取所有的队列除以机器总数,平均分配到所有机器。这看似简单又完美的方法其实存在一些问题,当机器下线的时候,这个计算的过程就要重新来一把,可能导致大量的机器消费的队列迁移。


如果不重新计算而是在第一次取平均,即在机器下线的时候把这个机器上的队列平均分配到其他机器,机器上线的时候把其他机器上队列抽取一部分过来,这种方案在逻辑上是可行的。


但是,如果有队列新增的时候要执行队列的配置,在队列删除的时候要重新平衡机器的消费队列,这个无疑是非常复杂的。最为重要的是,这种增量变更的方式如果在其中某次分配存在问题,那么后面可能一直无法挽回。

综合考虑下,采用了一致性HASH的方案,考虑到一致性HASH的平衡性,能保证所有机器分配的队列数较为接近,同时,由于一致性HASH的单调性,不管是机器变更或者队列变更,不会导致大量的队列机器关系发生变化。


在引入一个中心计算任务后,当机器发生变化或消费的队列发生变化时,都会全量的重新计算每台机器消费的队列。如果机器消费的队列有新增,那么它会新增消费对应的队列,如果有减少,就会取消对应队列的消费。

06 EMQ单机模型

经过前面的一系列设计,已经完成了队列的拆分,并且将队列分配到集群机器上。那还有最重要的一件事情,就是构建一个高效可靠消费客户端


保证能准确无误高性能地消费队列的里面的数据,保证在队列有数据的情况下按队列配额的最大容量进行消费,以及当队列里的数据比较少的时候所有数据都快速被消费。


在原型机验证环节,设计目标按照在8核16G的机器上,单机3000队列的时候支持1000QPS并发的处理。如下图,是EMQ的单机模型图,主要包括分布式物理队列、远程数据拉取模块、本地缓冲处理模块、缓冲队列分发&速度控制模块、消息任务处理模块以及消费进度管理模块。

  • 分布式物理队列

分布式物理队使用的是LINDORM的队列模型,考虑到后续的扩展,通过对LINDORM的操作做了一层抽象,只要实现适配层的方法,便可以快速支持其他基础队列模型,比如:SWIFT,REDIS等。

  • 远程数据拉取模块

远程数据拉取模块主要包括IO任务孵化器,核心是一个线程池会周期性地孵化一些任务,将远端队列里面的数据拉取到本地,保障本地队列缓冲区里面的数据达到一定阈值。它的结束条件是本地缓冲区里的数据满足未来一段时间内的处理要求,或者所有远端的数据都已经拉取到本地缓冲区。

  • 本地缓冲区

本地缓冲区是一系列的本地队列,与这台机器上消费的LINDORM上物理队列是一一对应的。也就是说:在远端这台机器有多少要消费的LINDORM队列,本地就有多少个对应的队列。

  • 缓冲队列分发&速度控制

缓冲队列分发与速度控制主要包括一个缓冲任务孵化器,它的核心职责是孵化一些队列任务以及消费本地缓冲区里面的数据,直到到达当前队列的QPS上限设置,或者缓冲区的数据空了。

  • 消费进度管理

当消费完成一个新的数据之后,会更新对应通道的消费进度的点位,下次再消费的时候从新的点位开始消费,这样保证消费进度不断向前推移。同时,还会将消费进度的信息周期性的实例化到数据库,保证如果机器发生异常或者迁移的时候,能重新恢复之前的消费点位开始消费,因为这个备份是异步且有延时的,这便于所有的消息中间件一样,一个消息是可能重推的,需要业务处理的时候支持幂等操作。


这里再重点介绍一下,消费速度控制,要单机消费几千个队列,但是每台机器的线程是有限的,所以一定采用的是线程池的方案,如下图:

每个队列都有一个独立的消费计数器,每秒钟会执行若干个LOOP,每个LOOP会为每个队列生成一个消费的任务,这个任务包含目标队列和消费的最大的任务数。


每次执行拉取的时候会先对当前队列的消费计数器加一,提前预占,然后去消费队列里面的数据,如果成功了,那么流程结束,如果失败了会将计数器减一,实现回滚的操作。当越到后面的时候,有些队列的当前秒需要拉取的数据已经足够了,就无需再继续拉取了。

07 优先级控制

在完成EMQ集群模型和单机模型的设计之后,已经能够实现面向大规模队列百万并发的生产消费系统能力,但是在很多业务场景下我们的任务都是存在一定优先级的。


比如以短信发送场景为例,短信分为通知业务、营销业务、验证码业务,一个资源如果既能处理通知业务,也能处理营销和验证码业务,在正常情况我们肯定是希望验证码的任务能优先被处理,然后再处理通知业务,最后才去处理去处理营销业务。


也就是在资源调度场景,我们为每个资源建立了一个逻辑队列,在EMQ里面也就是一个TOPIC,这个队列是需要能支持优先级调度的,如果验证码的任务最后进入到队列,它里面已经堆积了大量的营销业务请求,我们也希望这个验证码的请求能优先于其他营销类型的请求被处理。


如果对应通用的队列机制是不现实的,通用的队列核心的逻辑就是先进先出。


那我们现在要实现优先级抢占,必须要在队列设计上做文章,如下图:

我们需要将一个队列拆分成N个队列,N是需要支持的优先级个数。以三个优先级为例,我们会构建高,中,低三个优先级的队列,这个三个优先级队列组成一个GROUP,共享这个GROUP的容量。也就是说如果这个GROUP的QPS是50,那么在一秒钟消费高中低三个优先级队列的总QPS不能超过50。


在消费队列消息的时候,会先消费高优先级的队列里面的数据,然后再消费中优先级队列里面的数据,最后才消费低优先级队列里面的数据。这样子就保证,高优先级里面的数据一定会先于中优先级里面的数据被处理。中优先级里面队列的数据也会先于低优先级里面的数据被处理。


本文重点介绍了如何快速、低成本地构建面向百万并发多优先级的大规模队列生产消费系统。在拥有基础能力以后,在上面做各种复杂的业务能力设计便十分容易。比如:文章最开始提到的HTTP推送场景,那么假设某个客户突然有超10万QPS的消息需要推送,系统只支持10万QPS推送能力,如果按先进先出,那么可能其他客户的消息都无法推送了。但是,如果基于EMQ构建生产者消费者模型,为每个客户(或客户组)建立一个队列,并且配置这个队列支持的上限推送的QPS,消息在发送前先推送到EMQ队列,按配置的限额消费。那么,即使客户瞬间有很大的信息推送请求,也不会影响到其他客户的正常业务处理。

阿里云视频云 「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领
评论
  • 数字隔离芯片是现代电气工程师在进行电路设计时所必须考虑的一种电子元件,主要用于保护低压控制电路中敏感电子设备的稳定运行与操作人员的人身安全。其不仅能隔离两个或多个高低压回路之间的电气联系,还能防止漏电流、共模噪声与浪涌等干扰信号的传播,有效增强电路间信号传输的抗干扰能力,同时提升电子系统的电磁兼容性与通信稳定性。容耦隔离芯片的典型应用原理图值得一提的是,在电子电路中引入隔离措施会带来传输延迟、功耗增加、成本增加与尺寸增加等问题,而数字隔离芯片的目标就是尽可能消除这些不利影响,同时满足安全法规的要
    华普微HOPERF 2025-01-15 09:48 177浏览
  • 电竞鼠标应用环境与客户需求电竞行业近年来发展迅速,「鼠标延迟」已成为决定游戏体验与比赛结果的关键因素。从技术角度来看,传统鼠标的延迟大约为20毫秒,入门级电竞鼠标通常为5毫秒,而高阶电竞鼠标的延迟可降低至仅2毫秒。这些差异看似微小,但在竞技激烈的游戏中,尤其在对反应和速度要求极高的场景中,每一毫秒的优化都可能带来致胜的优势。电竞比赛的普及促使玩家更加渴望降低鼠标延迟以提升竞技表现。他们希望通过精确的测试,了解不同操作系统与设定对延迟的具体影响,并寻求最佳配置方案来获得竞技优势。这样的需求推动市场
    百佳泰测试实验室 2025-01-16 15:45 224浏览
  • 晶台光耦KL817和KL3053在小家电产品(如微波炉等)辅助电源中的广泛应用。具备小功率、高性能、高度集成以及低待机功耗的特点,同时支持宽输入电压范围。▲光耦在实物应用中的产品图其一次侧集成了交流电压过零检测与信号输出功能,该功能产生的过零信号可用于精确控制继电器、可控硅等器件的过零开关动作,从而有效减小开关应力,显著提升器件的使用寿命。通过高度的集成化和先进的控制技术,该电源大幅减少了所需的外围器件数量,不仅降低了系统成本和体积,还进一步增强了整体的可靠性。▲电路示意图该电路的过零检测信号由
    晶台光耦 2025-01-16 10:12 95浏览
  • 80,000人到访的国际大展上,艾迈斯欧司朗有哪些亮点?感未来,光无限。近日,在慕尼黑electronica 2024现场,ams OSRAM通过多款创新DEMO展示,以及数场前瞻洞察分享,全面展示自身融合传感器、发射器及集成电路技术,精准捕捉并呈现环境信息的卓越能力。同时,ams OSRAM通过展会期间与客户、用户等行业人士,以及媒体朋友的深度交流,向业界传达其以光电技术为笔、以创新为墨,书写智能未来的深度思考。electronica 2024electronica 2024构建了一个高度国际
    艾迈斯欧司朗 2025-01-16 20:45 136浏览
  • 近期,智能家居领域Matter标准的制定者,全球最具影响力的科技联盟之一,连接标准联盟(Connectivity Standards Alliance,简称CSA)“利好”频出,不仅为智能家居领域的设备制造商们提供了更为快速便捷的Matter认证流程,而且苹果、三星与谷歌等智能家居平台厂商都表示会接纳CSA的Matter认证体系,并计划将其整合至各自的“Works with”项目中。那么,在本轮“利好”背景下,智能家居的设备制造商们该如何捉住机会,“掘金”万亿市场呢?重认证快通道计划,为家居设备
    华普微HOPERF 2025-01-16 10:22 170浏览
  • 百佳泰特为您整理2025年1月各大Logo的最新规格信息,本月有更新信息的logo有HDMI、Wi-Fi、Bluetooth、DisplayHDR、ClearMR、Intel EVO。HDMI®▶ 2025年1月6日,HDMI Forum, Inc. 宣布即将发布HDMI规范2.2版本。新规范将支持更高的分辨率和刷新率,并提供更多高质量选项。更快的96Gbps 带宽可满足数据密集型沉浸式和虚拟应用对传输的要求,如 AR/VR/MR、空间现实和光场显示,以及各种商业应用,如大型数字标牌、医疗成像和
    百佳泰测试实验室 2025-01-16 15:41 155浏览
  • 日前,商务部等部门办公厅印发《手机、平板、智能手表(手环)购新补贴实施方案》明确,个人消费者购买手机、平板、智能手表(手环)3类数码产品(单件销售价格不超过6000元),可享受购新补贴。每人每类可补贴1件,每件补贴比例为减去生产、流通环节及移动运营商所有优惠后最终销售价格的15%,每件最高不超过500元。目前,京东已经做好了承接手机、平板等数码产品国补优惠的落地准备工作,未来随着各省市关于手机、平板等品类的国补开启,京东将第一时间率先上线,满足消费者的换新升级需求。为保障国补的真实有效发放,基于
    华尔街科技眼 2025-01-17 10:44 117浏览
  • 故障现象 一辆2007款法拉利599 GTB车,搭载6.0 L V12自然吸气发动机(图1),累计行驶里程约为6万km。该车因发动机故障灯异常点亮进厂检修。 图1 发动机的布置 故障诊断接车后试车,发动机怠速轻微抖动,发动机故障灯长亮。用故障检测仪检测,发现发动机控制单元(NCM)中存储有故障代码“P0300 多缸失火”“P0309 气缸9失火”“P0307 气缸7失火”,初步判断发动机存在失火故障。考虑到该车使用年数较长,决定先使用虹科Pico汽车示波器进行相对压缩测试,以
    虹科Pico汽车示波器 2025-01-15 17:30 95浏览
  • 全球领先的光学解决方案供应商艾迈斯欧司朗(SIX:AMS)近日宣布,与汽车技术领先者法雷奥合作,采用创新的开放系统协议(OSP)技术,旨在改变汽车内饰照明方式,革新汽车行业座舱照明理念。结合艾迈斯欧司朗开创性的OSIRE® E3731i智能LED和法雷奥的动态环境照明系统,两家公司将为车辆内饰设计和功能设立一套全新标准。汽车内饰照明的作用日益凸显,座舱设计的主流趋势应满足终端用户的需求:即易于使用、个性化,并能提供符合用户生活方式的清晰信息。因此,动态环境照明带来了众多新机遇。智能LED的应用已
    艾迈斯欧司朗 2025-01-15 19:00 78浏览
  • 实用性高值得收藏!! (时源芯微)时源专注于EMC整改与服务,配备完整器件 TVS全称Transient Voltage Suppre,亦称TVS管、瞬态抑制二极管等,有单向和双向之分。单向TVS 一般应用于直流供电电路,双向TVS 应用于电压交变的电路。在直流电路的应用中,TVS被并联接入电路中。在电路处于正常运行状态时,TVS会保持截止状态,从而不对电路的正常工作产生任何影响。然而,一旦电路中出现异常的过电压,并且这个电压达到TVS的击穿阈值时,TVS的状态就会
    时源芯微 2025-01-16 14:23 148浏览
  • 随着智慧科技的快速发展,智能显示器的生态圈应用变得越来越丰富多元,智能显示器不仅仅是传统的显示设备,透过结合人工智能(AI)和语音助理,它还可以成为家庭、办公室和商业环境中的核心互动接口。提供多元且个性化的服务,如智能家居控制、影音串流拨放、实时信息显示等,极大提升了使用体验。此外,智能家居系统的整合能力也不容小觑,透过智能装置之间的无缝连接,形成了强大的多元应用生态圈。企业也利用智能显示器进行会议展示和多方远程合作,大大提高效率和互动性。Smart Display Ecosystem示意图,作
    百佳泰测试实验室 2025-01-16 15:37 165浏览
  • 食物浪费已成为全球亟待解决的严峻挑战,并对环境和经济造成了重大影响。最新统计数据显示,全球高达三分之一的粮食在生产过程中损失或被无谓浪费,这不仅导致了资源消耗,还加剧了温室气体排放,并带来了巨大经济损失。全球领先的光学解决方案供应商艾迈斯欧司朗(SIX:AMS)近日宣布,艾迈斯欧司朗基于AS7341多光谱传感器开发的创新应用来解决食物浪费这一全球性难题。其多光谱传感解决方案为农业与食品行业带来深远变革,该技术通过精确判定最佳收获时机,提升质量控制水平,并在整个供应链中有效减少浪费。 在2024
    艾迈斯欧司朗 2025-01-14 18:45 132浏览
  • 随着消费者对汽车驾乘体验的要求不断攀升,汽车照明系统作为确保道路安全、提升驾驶体验以及实现车辆与环境交互的重要组成,日益受到业界的高度重视。近日,2024 DVN(上海)国际汽车照明研讨会圆满落幕。作为照明与传感创新的全球领导者,艾迈斯欧司朗受邀参与主题演讲,并现场展示了其多项前沿技术。本届研讨会汇聚来自全球各地400余名汽车、照明、光源及Tier 2供应商的专业人士及专家共聚一堂。在研讨会第一环节中,艾迈斯欧司朗系统解决方案工程副总裁 Joachim Reill以深厚的专业素养,主持该环节多位
    艾迈斯欧司朗 2025-01-16 20:51 106浏览
  • 一个易用且轻量化的UI可以大大提高用户的使用效率和满意度——通过快速启动、直观操作和及时反馈,帮助用户快速上手并高效完成任务;轻量化设计则可以减少资源占用,提升启动和运行速度,增强产品竞争力。LVGL(Light and Versatile Graphics Library)是一个免费开源的图形库,专为嵌入式系统设计。它以轻量级、高效和易于使用而著称,支持多种屏幕分辨率和硬件配置,并提供了丰富的GUI组件,能够帮助开发者轻松构建出美观且功能强大的用户界面。近期,飞凌嵌入式为基于NXP i.MX9
    飞凌嵌入式 2025-01-16 13:15 184浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦