什么是以太网链路聚合?如何配置链路聚合?为啥说链路聚合是网络稳定性的秘密武器?_网络工程链路聚合配置-程序员宅基地

技术标签: 链路聚合  网络技术  以太网  

你好,这里是网络技术联盟站。

以太网链路聚合,也被称为端口聚合、链路捆绑、以太通道和多链路聚合,是一种用于将多个以太网连接并行使用,提高通信速度和冗余的方法。链路聚合可以将多个物理链路组合成一个逻辑链路,提供更高的带宽和更高的可用性。

本文瑞哥将带着大家详细学习一下以太网链路聚合,介绍链路聚合涉及的技术点,同时文章末尾还会给大家带来链路聚合配置文档,涉及华为和思科厂商。

下面就直接开始吧!

目录:

一、历史与背景

以太网链路聚合的概念源自20世纪90年代,当时以太网技术正在不断发展,人们需要一种方法来提高网络带宽并提高网络的可靠性。链路聚合技术就是在这样的背景下应运而生的。

1.1 802.3ad协议

链路聚合的标准实现是IEEE 802.3ad协议,该协议于2000年被引入。802.3ad协议定义了一种名为链路聚合控制协议(LACP)的方法,它可以自动将多个链路捆绑在一起,并在一个或多个链路故障时自动重新配置。LACP允许设备发送链路聚合协议数据单元(LACPDUs),以便与对等网络设备协商自动的链路聚合。

二、什么是以太网链路聚合?

以太网链路聚合,通常简称为Eth-Trunk,是一种网络技术,旨在提高网络的带宽和可靠性。它通过将多个物理以太网链路捆绑成一个逻辑链路,使数据可以在这些链路之间进行负载均衡。这意味着数据包可以分布在不同的物理链路上,从而增加了总带宽,加快数据传输速度。

三、以太网链路聚合的目的

以太网链路聚合的主要目的是提升网络带宽和可靠性。以下是具体的目标:

3.1 增加链路带宽

随着网络负载的增加,带宽需求也在不断增加。以太网链路聚合允许将多个物理链路捆绑在一起,形成一个逻辑链路。这个逻辑链路具有多倍于单个物理链路的总带宽。通过这种方式,网络管理员可以在不升级硬件的情况下满足用户对更高带宽的需求。这种方法节省了成本,提高了网络性能。

3.2 提高链路的可靠性

除了增加带宽,以太网链路聚合还通过备份链路的机制提高了链路的可靠性。当一个物理链路发生故障或断开连接时,数据可以自动切换到其他正常工作的链路上,无需人工干预。这种冗余性确保了即使出现链路故障,网络仍然能够正常运行,减少了业务中断的风险。

以下是有关链路聚合的故障恢复能力的一些关键点:

  1. 自动故障检测:链路聚合技术能够自动检测到链路故障。当一个链路出现问题,比如链路断开或链路传输错误率超过阈值,链路聚合系统会立即注意到这个问题。

  2. 快速的切换时间:一旦检测到链路故障,链路聚合系统可以在非常短的时间内(通常是毫秒级别)完成从故障链路到备份链路的切换。这意味着网络中的数据传输可以在用户察觉到问题之前继续进行。

  3. 无缝的流量重定向:链路聚合系统可以确保正在传输的数据流量不会中断。它会自动将流量从故障链路重定向到正常工作的链路,以保持网络的连续性。

  4. 冗余性提高可靠性:通过使用链路聚合,网络管理员可以配置多个备用链路,以提高网络的可靠性。这些备用链路可以立即接管流量,从而减小了单点故障的风险。

  5. 透明性:对于终端用户而言,链路聚合的故障恢复通常是透明的。他们可能根本不会察觉到链路故障,因为网络服务仍在继续运行。

  6. 增强性能:除了故障恢复,链路聚合还可以提供负载均衡功能,将流量均匀分布到多个链路上,从而提高性能和吞吐量。

四、工作原理

Eth-Trunk的工作原理基于两个关键概念:链路捆绑和动态备份。

4.1 链路捆绑

链路捆绑是将多个物理以太网链路绑定成一个逻辑链路的过程。这些物理链路可以连接到不同的交换机或路由器端口,或者连接到同一设备的不同网卡。一旦这些链路被绑定,它们将被视为一个逻辑实体,拥有单一的IP地址和MAC地址。

链路捆绑的关键优势在于提高了带宽。当多个链路被捆绑在一起时,它们的总带宽等于每个链路的带宽之和。例如,如果有四个1 Gbps的链路被捆绑在一起,那么总带宽将达到4 Gbps。

4.2 动态备份

链路聚合不仅仅提高了带宽,还增强了网络的可靠性。这是通过动态备份来实现的。当一个物理链路出现故障时,数据会自动切换到其他可用的链路上,而无需人工干预。这确保了即使在链路故障的情况下,网络仍然可以正常运行。

五、以太网链路聚合核心技术

5.1 以太网链路聚合组(LAG)与链路聚合接口(Eth-Trunk)

链路聚合组(LAG)

又称为链路聚合组,是指将若干条以太链路捆绑在一起所形成的逻辑链路。这个逻辑链路具有多个物理链路的总带宽,可以看作是一个高容量、高带宽的虚拟链路。每个LAG都有一个唯一的标识符,用于区分不同的聚合组。

链路聚合组的工作原理基于链路捆绑的概念。多个物理链路被绑定成一个逻辑链路,形成一个高带宽通道。当数据流入LAG时,根据负载均衡算法,数据会被分发到其中一个物理链路上传输。这确保了数据在各个链路之间均匀分布,提高了整体带宽利用率。

LAG的主要作用是增加网络带宽和提高可靠性。它通过将多个物理链路合并为一个逻辑链路来实现这一目标。这意味着数据可以在多个物理链路之间进行负载均衡,从而提高了网络的整体性能。此外,LAG还具备冗余性,即使其中一个物理链路发生故障,数据仍然可以通过其他链路传输,确保网络的可靠性和连续性。

链路聚合接口(Eth-Trunk)

链路聚合接口(Eth-Trunk),也称为Eth-Trunk接口,是LAG的一种具体实现。每个LAG都对应一个Eth-Trunk接口,这个接口被视为一个逻辑接口,可以像普通以太网接口一样使用。不同的物理链路被绑定到Eth-Trunk接口上,形成一个统一的数据传输通道。

链路聚合接口承担了数据的转发任务。当数据到达Eth-Trunk接口时,Eth-Trunk会根据负载均衡策略选择一个或多个成员接口来传输数据。这个选择是根据成员接口的状态、带宽利用率等因素来确定的。如果其中一个成员接口发生故障,Eth-Trunk会自动将流量切换到其他可用的接口上,确保网络的连续性。

链路聚合接口(Eth-Trunk)与普通以太网接口的主要区别在于数据的传输方式。在转发数据时,Eth-Trunk需要从成员接口中选择一个或多个接口来进行数据转发。这种选择可以基于负载均衡算法,以确保数据在各个物理链路之间均匀分布,充分利用带宽。

5.2 成员接口与成员链路

成员接口

成员接口是组成Eth-Trunk接口的各个物理接口的抽象表示。每个成员接口代表了一个物理以太网接口,通常对应于一个网络设备的物理端口。这些成员接口被捆绑在一起,以形成Eth-Trunk接口。

成员接口在链路聚合中起着关键作用。它们负责传输数据和接收数据,将网络流量分发到不同的成员链路上,以实现负载均衡和增加带宽。成员接口还能够提供冗余性,当某个成员链路出现故障时,其他成员接口可以接管数据传输,确保网络的可靠性。

成员链路

成员链路是与成员接口相对应的物理以太网链路。每个成员接口都连接到一个成员链路,这是通过物理电缆或光纤连接到网络设备的链路。成员链路的特点如下:

  1. 物理连接:成员链路是物理链路,它们通过物理介质(如电缆或光纤)与网络设备相连。

  2. 带宽:每个成员链路具有自己的带宽,通常以位每秒(bps)或兆位每秒(Mbps)来衡量。

  3. 状态:成员链路具有状态,可以是活动(active)或者非活动(inactive)。活动状态表示链路正常工作,可以传输数据;非活动状态表示链路出现故障或被禁用,不能传输数据。

  4. 可用性:成员链路的可用性影响着整个链路聚合的可靠性。如果成员链路故障,整个Eth-Trunk接口可以继续运行,但带宽可能受到影响。

5.3 活动接口与非活动接口

活动接口

活动接口是链路聚合组(LAG)中的成员接口中的一种状态,表示该接口正在转发数据。活动接口承担着数据的传输任务,将网络流量分发到不同的成员链路上,实现负载均衡和提高带宽。

非活动接口

非活动接口是链路聚合组(LAG)中的成员接口中的一种状态,表示该接口当前不在转发数据。非活动接口可能处于故障状态或者被管理员禁用。在非活动状态下,该接口不参与数据传输,但仍然可以用于备份和冗余。

5.4 活动链路和非活动链路

活动链路

活动链路是对应于活动接口的物理以太网链路。这是一个正常工作的物理链路,用于传输数据。活动链路的带宽被纳入链路聚合组(LAG)的总带宽,以提高整体性能。

非活动链路

非活动链路是对应于非活动接口的物理以太网链路。这个链路可能处于故障状态,无法传输数据,或者被管理员禁用以进行维护。非活动链路通常处于闲置状态,但仍然保留在LAG中以备份和冗余。

5.5 活动接口数上限阈值

活动接口数上限阈值是指在一个Eth-Trunk(链路聚合组)中,可以同时激活并用于数据传输的活动接口的最大数量。当活动链路的数量达到或超过这个阈值时,任何额外的成员接口添加到Eth-Trunk中都不会增加活动链路的数量。相反,这些额外的链路状态将被置为非活动(Down),成为备份链路。

设置活动接口数上限阈值的主要目的是在满足带宽需求的同时,提高网络的可靠性。通过将一部分成员接口配置为备份链路,可以在主要活动链路发生故障时,自动切换到备份链路,确保网络的连续性。这种配置策略特别有用,当带宽需求不会持续增长时,但网络可靠性至关重要时,例如在关键业务环境中。

设置活动接口数上限阈值通常需要以下步骤:

  1. 确定带宽需求:首先,需要确定网络中的带宽需求,包括当前和未来的需求。这将有助于确定需要激活的活动链路数量。

  2. 选择上限阈值:根据带宽需求,选择一个合适的活动接口数上限阈值。阈值应该大于或等于实际需要的活动链路数量,以确保足够的冗余性。

  3. 配置Eth-Trunk接口:在网络设备上配置Eth-Trunk接口,并设置活动接口数上限阈值为选择的值。

  4. 添加成员接口:将成员接口添加到Eth-Trunk中。当活动链路的数量达到上限阈值时,额外的成员接口将自动成为备份链路。

  5. 监控和管理:定期监控活动链路和备份链路的状态,确保网络的正常运行。在故障发生时,及时进行故障检测和修复。

5.6 活动接口数下限阈值

活动接口数下限阈值是指在一个Eth-Trunk(链路聚合组)中,必须同时激活并用于数据传输的最小活动接口数量。当活动链路的数量小于或等于这个阈值时,Eth-Trunk接口的状态将被置为非活动(Down)。这个阈值确保了网络具备最小带宽,以满足特定的带宽需求。

设置活动接口数下限阈值的主要目的是确保网络始终具备最小带宽,从而满足特定应用或服务的性能要求。当网络中的活动链路数量小于下限阈值时,确保不会出现带宽不足的情况,从而维护网络的正常运行。

设置活动接口数下限阈值通常需要以下步骤:

  1. 确定最小带宽需求:首先,需要确定特定应用或服务的最小带宽需求。这将有助于确定需要激活的最小活动链路数量。

  2. 选择下限阈值:根据最小带宽需求,选择一个合适的活动接口数下限阈值。阈值应该大于或等于实际需要的最小活动链路数量,以确保满足带宽需求。

  3. 配置Eth-Trunk接口:在网络设备上配置Eth-Trunk接口,并设置活动接口数下限阈值为选择的值。

  4. 添加成员接口:将成员接口添加到Eth-Trunk中,以满足下限阈值的要求。确保活动链路的数量不低于所设定的下限阈值。

  5. 监控和管理:定期监控活动链路的状态,以确保网络一直具备最小带宽,并在需要时进行适当的维护。

5.7 链路聚合模式:手工、LACP

链路聚合模式是指在链路聚合中选择如何管理和协调多个物理链路以形成一个逻辑链路。不同的模式具有不同的特点和适用场景,可以根据网络需求选择合适的模式。

常见的链路聚合模式包括手工模式和LACP模式。

手工模式

手工模式是一种链路聚合模式,也被称为静态模式或固定模式。在手工模式下,管理员必须手动配置哪些物理链路将成为Eth-Trunk(链路聚合组)的一部分,并指定它们的优先级。这意味着管理员对链路的管理和控制具有高度的灵活性和直接性。

手工模式的优点:

  • 精确控制:手工模式允许管理员精确地选择哪些链路参与聚合,并可以设置它们的优先级。这种精确控制可以满足特定网络需求。
  • 简单配置:手工模式的配置相对简单,不需要额外的协议或配置过程。管理员只需明确指定成员接口即可。

手工模式的缺点:

  • 手动干预:手工模式需要管理员手动配置,因此对于大型网络或频繁变更的环境来说,管理工作可能变得繁琐。
  • 不具备动态适应性:手工模式不能自动适应链路状态变化,例如链路故障或新链路的添加。这意味着在这些情况下,管理员需要手动更新配置。
LACP模式

LACP模式是一种链路聚合模式,使用LACP协议来动态管理和协调链路聚合。LACP(Link Aggregation Control Protocol)是一种标准化的协议,允许网络设备自动检测和配置链路聚合,确保链路的一致性和可靠性。

LACP模式的优点:

  • 动态适应性:LACP模式具有动态适应性,可以根据链路状态的变化来调整聚合组。当链路故障或新链路添加时,LACP能够自动进行重新配置,无需管理员干预。
  • 减少人为错误:LACP模式减少了配置错误的可能性,因为它不需要手动指定哪些链路是活动链路。

LACP模式的缺点:

  • 协议复杂性:LACP模式需要支持LACP协议的设备,并且需要在设备之间建立和维护LACP会话。这增加了协议的复杂性。
  • 不适用于非标准设备:某些非标准设备或老旧设备可能不支持LACP,因此无法使用LACP模式。

5.8 设备支持的链路聚合方式

不同设备支持不同的链路聚合方式,这取决于网络的拓扑结构和需求。

一般情况下,支持三种链路聚合方式,分别是同一设备、堆叠设备和跨设备。

同一设备链路聚合

同一设备链路聚合是指在链路聚合组(LAG)中,所有成员接口都分布在同一物理设备上。这种配置方式适用于单台设备上的多个网络接口,将它们捆绑在一起以提高带宽和可靠性。

两种应用:

  • 服务器连接:在服务器中,可以使用同一设备链路聚合将多个以太网接口捆绑在一起,以提供更高的带宽和冗余性,增强服务器的性能。
  • 路由器接口:在路由器中,可以配置同一设备链路聚合以增加路由器的接口带宽和可靠性,特别是对于连接到互联网或其他网络的关键接口。
堆叠设备链路聚合

堆叠设备链路聚合是指在堆叠设备的环境下,成员接口分布在堆叠的各个成员设备上。堆叠设备通常由多个物理设备组成,它们通过专用堆叠连接相互连接。

两种应用:

  • 分布式网络:在分布式网络中,各个设备可能位于不同的位置,但需要实现链路聚合以提高带宽和可靠性。堆叠设备链路聚合可以用于将这些设备连接到一个逻辑链路上。
  • 企业级交换机堆叠:在企业级网络中,堆叠交换机是常见的,它们通过堆叠链路将多个交换机连接在一起,以实现高带宽、高可用性和灵活的网络架构。
跨设备链路聚合

跨设备链路聚合是指以太网链路聚合技术的扩展,能够实现多台设备之间的链路聚合。这通常基于标准的LACP协议(Link Aggregation Control Protocol)进行扩展,使多台设备能够协同工作,实现链路捆绑。

两种应用:

  • 数据中心互连:在大型数据中心中,通常有多台交换机和路由器相互连接,以提供高性能和冗余性。跨设备链路聚合可以用于跨多台设备实现高带宽连接。
  • 多厂商设备协同:在网络中使用多个不同厂商的设备时,跨设备链路聚合可以让这些设备之间协同工作,提供更好的性能和互操作性。
优缺点对比
优点
  • 同一设备链路聚合

    • 简单配置,适用于单台设备上的链路聚合。
    • 高性能,适用于服务器和路由器等设备。
  • 堆叠设备链路聚合

    • 适用于分布式网络和企业级交换机堆叠,提供高带宽和可靠性。
    • 灵活性强,可以根据网络需求添加或删除堆叠设备。
  • 跨设备链路聚合

    • 适用于数据中心互连和多厂商设备协同,实现高带宽和设备互操作性。
    • 提供了跨多台设备的链路聚合,增加了网络的可扩展性。
缺点
  • 同一设备链路聚合

    • 限于单台设备,无法实现设备之间的链路聚合。
  • 堆叠设备链路聚合

    • 需要堆叠设备,不适用于单独的设备。
    • 管理和配置相对复杂。
  • 跨设备链路聚合

    • 需要设备之间支持LACP或其他跨设备协议。
    • 需要更复杂的配置和管理。

六、以太网链路聚合的优势

以太网链路聚合技术带来了多方面的优势,使其成为网络管理员的首选解决方案:

6.1 经济高效

相对于更换高速设备来提高带宽,以太网链路聚合是一种经济高效的方法。它不需要大规模的硬件升级,从而降低了成本。

6.2 灵活性

链路聚合技术非常灵活,可以适应不同的网络环境和需求。管理员可以根据需要添加或删除物理链路,而不会中断网络。

6.3 提高可靠性

通过备份链路的机制,以太网链路聚合提高了网络的可靠性。即使一个链路故障,数据仍然可以通过其他链路传输,减少了网络中断的风险。

七、以太网链路聚合的应用场景

以太链路聚合有多种应用场景,包括交换机之间直连、交换机之间跨传输设备、交换机与传输设备、交换机与服务器、交换机与堆叠系统、以及通过E-Trunk实现跨设备的链路聚合。

7.1 交换机之间直连

在直连场景中,多个交换机之间通过链路聚合直接相连,形成一个高带宽的连接通道。这种配置方式通常用于构建高性能的核心或汇聚层网络,以满足大量数据的传输需求。

应用场景:

  • 数据中心核心交换:在数据中心核心交换层,通常需要高容量的连接来支持服务器之间的数据流量。直连链路聚合可以提供更多的带宽和冗余性,确保数据中心网络的高可用性和性能。
  • 大型企业网络:在大型企业网络中,可能有多个交换机需要直接相连以满足业务需求。直连链路聚合可以简化网络拓扑,并提供高带宽的连接。

7.2 交换机之间跨传输设备

在跨传输设备场景中,多个交换机之间的链路聚合跨越了传输设备(如路由器或光传输设备)。这种配置方式通常用于连接不同物理位置的设备,以建立高容量的广域网连接。

应用场景:

  • 分布式网络:在分布式网络中,多个交换机位于不同的地理位置,但需要高带宽的广域网连接。跨传输设备链路聚合可以用于构建可靠的广域网连接。
  • 跨数据中心连接:对于大型企业或云服务提供商,可能需要连接不同数据中心的交换机。跨传输设备链路聚合可用于建立高性能的数据中心互连。

7.3 交换机与传输设备

交换机与传输设备之间的链路聚合是一种特殊的配置,用于连接交换机和传输设备(如光纤传输设备或光传送网设备)。这种配置允许交换机通过高容量的传输链路连接到广域网或长距离网络。

应用场景:

  • 接入互联网:ISP(互联网服务提供商)通常需要将多个交换机连接到互联网核心。通过交换机与传输设备的链路聚合,可以提供高速、可靠的互联网接入。
  • 远程办公:对于分布式组织或远程办公场景,可能需要将远程交换机连接到总部网络。这种配置方式可以确保远程办公场所具备足够的带宽,以支持远程用户的数据访问和通信。

7.4 交换机与服务器

交换机与服务器之间的链路聚合是一种常见的配置,用于连接服务器与网络交换机,以提供更高的带宽和冗余性。这种配置方式通常用于数据中心或企业网络中,以支持大量的服务器和应用程序。

应用场景:

  • 数据中心服务器连接:在大型数据中心中,可能有数百台甚至数千台服务器需要连接到网络。通过交换机与服务器的链路聚合,可以提供高带宽连接,确保数据中心的性能。
  • 虚拟化环境:在虚拟化环境中,服务器虚拟机可能会生成大量网络流量。链路聚合可以确保服务器之间的通信具备足够的带宽,同时提供冗余性。

7.5 交换机与堆叠系统

在堆叠系统中,多个网络交换机被物理堆叠在一起,形成一个逻辑单元。链路聚合可以用于连接不同的交换机单元,以提供高带宽和冗余性。

应用场景:

  • 企业级网络堆叠:在大型企业网络中,可能需要堆叠多个交换机以实现高性能和冗余性。通过交换机与堆叠系统的链路聚合,可以提供堆叠交换机单元之间的高带宽连接,确保网络的可用性。
  • 分布式拓扑:在复杂的网络拓扑中,可能需要连接不同位置的交换机堆叠。链路聚合可以用于连接这些堆叠,并提供高性能的通信通道。

7.6 通过E-Trunk实现跨设备的链路聚合

E-Trunk是一种以太网链路聚合技术的扩展,允许多个设备之间的链路聚合。它通常基于LACP协议(Link Aggregation Control Protocol)进行扩展,使多个设备能够协同工作,实现跨设备的链路捆绑。

应用场景:

  • 数据中心互连:在大型数据中心中,通常有多个网络设备需要连接以支持高性能的应用程序和服务。E-Trunk可以用于跨多个设备建立高带宽连接。
  • 多供应商环境:在使用不同供应商的网络设备时,E-Trunk可以实现这些设备之间的链路聚合,提供更好的性能和互操作性。

八、不止是链路聚合

链路聚合并不是唯一可以提高网络带宽和冗余的技术,而是其中之一。在网络设计和优化过程中,网络管理员可以根据特定需求和资源限制选择不同的方法。以下是链路聚合与其他一些网络技术的关系:

  1. 物理链路增加:增加更多的物理链路是提高带宽的一种方法。这可以通过添加额外的以太网线缆或光纤来实现。然而,这通常需要更多的物理设备和端口,可能导致成本上升和管理复杂性增加。链路聚合可以帮助充分利用已有的物理链路,提供类似的带宽增加,同时减少了硬件成本和复杂性。

  2. 网络升级:升级到更快的网络标准,如从1 Gigabit Ethernet升级到10 Gigabit Ethernet,是提高带宽的有效方法。这种升级通常需要更强大的网络设备和适当的硬件支持,因此成本较高。链路聚合可以用于充分利用现有设备,提供更高的带宽,而无需完全替换硬件。

  3. MPLS(Multiprotocol Label Switching):MPLS是一种在广域网中提供带宽和负载均衡的技术。它通过为数据包添加标签来将数据流量引导到不同的路径上,以实现负载均衡和优化带宽利用。MPLS可以与链路聚合一起使用,以进一步提高网络性能和可靠性。

  4. SD-WAN(Software-Defined Wide Area Network):SD-WAN是一种网络技术,通过智能路由和流量优化来提高广域网的性能。它可以与链路聚合结合使用,以利用多个广域网连接,提供更好的性能和冗余性。

总的来说,以太网链路聚合是一种强大的工具,可以提高网络带宽并增加冗余。通过使用标准的协议如LACP,链路聚合可以在各种设备和网络环境中实现。尽管其配置和管理可能需要一些专业知识,但是其带来的好处,如增加的带宽和更高的网络可用性,使其成为许多网络环境中的理想选择。

九、链路聚合配置文档下载

以上瑞哥详细的介绍了链路聚合的理论知识,本来是想给大家介绍一下如何配置的,但是由于厂商、设备型号的不同,配置命令肯定做不到统一,所以这里瑞哥干脆直接提供配置文档给到大家得了。

  • Fortinet 链路聚合配置文档.pdf
  • H3C 以太网链路聚合配置.pdf
  • 华为交换机特性配置案例.pdf
  • 思科 在 Catalyst 6500、6000 和 Catalyst 4500、4000 之间配置 LACP (802.3ad).pdf
  • 思科200、300系列管理型交换机上的链路聚合组(LAG)配置.pdf
  • 思科Sx500系列堆叠式交换机上的链路聚合控制协议(LACP)配置.pdf

华为的文档在 【3.6.2 链路聚合典型配置】:

下载地址:

链接:https://pan.quark.cn/s/9dacc9834583
提取码:EA1Z

本文完!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43025343/article/details/132838149

智能推荐

获取大于等于一个整数的最小2次幂算法(HashMap#tableSizeFor)_整数 最小的2的几次方-程序员宅基地

文章浏览阅读2w次,点赞51次,收藏33次。一、需求给定一个整数,返回大于等于该整数的最小2次幂(2的乘方)。例: 输入 输出 -1 1 1 1 3 4 9 16 15 16二、分析当遇到这个需求的时候,我们可能会很容易想到一个"笨"办法:..._整数 最小的2的几次方

Linux 中 ss 命令的使用实例_ss@,,x,, 0-程序员宅基地

文章浏览阅读865次。选项,以防止命令将 IP 地址解析为主机名。如果只想在命令的输出中显示 unix套接字 连接,可以使用。不带任何选项,用来显示已建立连接的所有套接字的列表。如果只想在命令的输出中显示 tcp 连接,可以使用。如果只想在命令的输出中显示 udp 连接,可以使用。如果不想将ip地址解析为主机名称,可以使用。如果要取消命令输出中的标题行,可以使用。如果只想显示被侦听的套接字,可以使用。如果只想显示ipv4侦听的,可以使用。如果只想显示ipv6侦听的,可以使用。_ss@,,x,, 0

conda activate qiuqiu出现不存在activate_commandnotfounderror: 'activate-程序员宅基地

文章浏览阅读568次。CommandNotFoundError: 'activate'_commandnotfounderror: 'activate

Kafka 实战 - Windows10安装Kafka_win10安装部署kafka-程序员宅基地

文章浏览阅读426次,点赞10次,收藏19次。完成以上步骤后,您已在 Windows 10 上成功安装并验证了 Apache Kafka。在生产环境中,通常会将 Kafka 与外部 ZooKeeper 集群配合使用,并考虑配置安全、监控、持久化存储等高级特性。在生产者窗口中输入一些文本消息,然后按 Enter 发送。ZooKeeper 会在新窗口中运行。在另一个命令提示符窗口中,同样切换到 Kafka 的。Kafka 服务器将在新窗口中运行。在新的命令提示符窗口中,切换到 Kafka 的。,应显示已安装的 Java 版本信息。_win10安装部署kafka

【愚公系列】2023年12月 WEBGL专题-缓冲区对象_js 缓冲数据 new float32array-程序员宅基地

文章浏览阅读1.4w次。缓冲区对象(Buffer Object)是在OpenGL中用于存储和管理数据的一种机制。缓冲区对象可以存储各种类型的数据,例如顶点、纹理坐标、颜色等。在渲染过程中,缓冲区对象中存储的数据可以被复制到渲染管线的不同阶段中,例如顶点着色器、几何着色器和片段着色器等,以完成渲染操作。相比传统的CPU访问内存,缓冲区对象的数据存储和管理更加高效,能够提高OpenGL应用的性能表现。_js 缓冲数据 new float32array

四、数学建模之图与网络模型_图论与网络优化数学建模-程序员宅基地

文章浏览阅读912次。(1)图(Graph):图是数学和计算机科学中的一个抽象概念,它由一组节点(顶点)和连接这些节点的边组成。图可以是有向的(有方向的,边有箭头表示方向)或无向的(没有方向的,边没有箭头表示方向)。图用于表示各种关系,如社交网络、电路、地图、组织结构等。(2)网络(Network):网络是一个更广泛的概念,可以包括各种不同类型的连接元素,不仅仅是图中的节点和边。网络可以包括节点、边、连接线、路由器、服务器、通信协议等多种组成部分。网络的概念在各个领域都有应用,包括计算机网络、社交网络、电力网络、交通网络等。_图论与网络优化数学建模

随便推点

android 加载布局状态封装_adnroid加载数据转圈封装全屏转圈封装-程序员宅基地

文章浏览阅读1.5k次。我们经常会碰见 正在加载中,加载出错, “暂无商品”等一系列的相似的布局,因为我们有很多请求网络数据的页面,我们不可能每一个页面都写几个“正在加载中”等布局吧,这时候将这些状态的布局封装在一起就很有必要了。我们可以将这些封装为一个自定布局,然后每次操作该自定义类的方法就行了。 首先一般来说,从服务器拉去数据之前都是“正在加载”页面, 加载成功之后“正在加载”页面消失,展示数据;如果加载失败,就展示_adnroid加载数据转圈封装全屏转圈封装

阿里云服务器(Alibaba Cloud Linux 3)安装部署Mysql8-程序员宅基地

文章浏览阅读1.6k次,点赞23次,收藏29次。PS: 如果执行sudo grep 'temporary password' /var/log/mysqld.log 后没有报错,也没有任何结果显示,说明默认密码为空,可以直接进行下一步(后面设置密码时直接填写新密码就行)。3.(可选)当操作系统为Alibaba Cloud Linux 3时,执行如下命令,安装MySQL所需的库文件。下面示例中,将创建新的MySQL账号,用于远程访问MySQL。2.依次运行以下命令,创建远程登录MySQL的账号,并允许远程主机使用该账号访问MySQL。_alibaba cloud linux 3

excel离散度图表怎么算_excel离散数据表格-Excel 离散程度分析图表如何做-程序员宅基地

文章浏览阅读7.8k次。EXCEL中数据如何做离散性分析纠错。离散不是均值抄AVEDEV……=AVEDEV(A1:A100)算出来的是A1:A100的平均数。离散是指各项目间指标袭的离散均值(各数值的波动情况),数值较低表明项目间各指标波动幅百度小,数值高表明波动幅度较大。可以用excel中的离散公式为STDEV.P(即各指标平均离散)算出最终度离散度。excel表格函数求一组离散型数据,例如,几组C25的...用exc..._excel数据分析离散

学生时期学习资源同步-JavaSE理论知识-程序员宅基地

文章浏览阅读406次,点赞7次,收藏8次。i < 5){ //第3行。int count;System.out.println ("危险!System.out.println(”真”);System.out.println(”假”);System.out.print(“姓名:”);System.out.println("无匹配");System.out.println ("安全");

linux 性能测试磁盘状态监测:iostat监控学习,包含/proc/diskstats、/proc/stat简单了解-程序员宅基地

文章浏览阅读3.6k次。背景测试到性能、压力时,经常需要查看磁盘、网络、内存、cpu的性能值这里简单介绍下各个指标的含义一般磁盘比较关注的就是磁盘的iops,读写速度以及%util(看磁盘是否忙碌)CPU一般比较关注,idle 空闲,有时候也查看wait (如果wait特别大往往是io这边已经达到了瓶颈)iostatiostat uses the files below to create ..._/proc/diskstat

glReadPixels读取保存图片全黑_glreadpixels 全黑-程序员宅基地

文章浏览阅读2.4k次。问题:在Android上使用 glReadPixel 读取当前渲染数据,在若干机型(华为P9以及魅族某魅蓝手机)上读取数据失败,glGetError()没有抓到错误,但是获取到的数据有误,如果将获取到的数据保存成为图片,得到的图片为黑色。解决方法:glReadPixels实际上是从缓冲区中读取数据,如果使用了双缓冲区,则默认是从正在显示的缓冲(即前缓冲)中读取,而绘制工作是默认绘制到后缓..._glreadpixels 全黑