CLI举例:上下行连接路由器(路由引流)

CLI举例:上下行连接路由器(路由引流)

介绍了集群设备,上下行连接路由器的配置举例。

组网需求

如图1所示,上行网络使用BGP,下行网络使用OSPF,多数据中心统一通过路由器R4接入Internet。

希望本数据中心的流量优先由本数据中心FW承担。当某台FW故障时,流量能切换到其他FW上进行。

同时配置路由引流,实现业务组和路由协议联动:当下行流量切换时,路由协议根据业务组的状态调整发布路由的Cost值,使上行流量也同步切换。

图1 上下行连接路由器组网图

数据规划

项目

数据

说明

FW_A

  • GE1/0/1:10.1.2.1/24
  • GE1/0/2:10.2.2.1/24
  • Eth-Trunk1:10.1.5.1/24,加入接口:GE1/0/3和GE1/0/4
  • Eth-Trunk2:10.1.6.1/24,加入接口:GE1/0/5和GE1/0/6
  • Eth-Trunk3:10.1.7.1/24,加入接口:GE1/0/7和GE1/0/8
  • Tunnel1:10.1.10.1/24
  • Tunnel2:10.1.11.1/24
  • 业务组1:优先级100,绑定OSPF进程1
  • 业务组2:优先级80,绑定OSPF进程2
  • 业务组3:优先级90,绑定OSPF进程3
  • Eth-Trunk1:作为集群协商通道
  • Eth-Trunk2:作为集群备份通道
  • Eth-Trunk3:作为集群转发通道
  • 业务组1:对应DC1的业务
  • 业务组2:对应DC2的业务
  • 业务组3:对应DC3的业务
  • Tunnel1:与R2建立GRE通道,对端IP地址是10.1.10.2
  • Tunnel2:与R3建立GRE通道,对端IP地址是10.1.11.2

FW_B

  • GE1/0/1:10.1.3.1/24
  • GE1/0/2:10.2.3.1/24
  • Eth-Trunk1:10.1.5.2/24,加入接口:GE1/0/3和GE1/0/4
  • Eth-Trunk2:10.1.6.2/24,加入接口:GE1/0/5和GE1/0/6
  • Eth-Trunk3:10.1.7.2/24,加入接口:GE1/0/7和GE1/0/8
  • Tunnel1:10.1.12.1/24
  • Tunnel2:10.1.13.1/24
  • 业务组1:优先级90,绑定OSPF进程1
  • 业务组2:优先级100,绑定OSPF进程2
  • 业务组3:优先级80,绑定OSPF进程3
  • Eth-Trunk1:作为集群协商通道
  • Eth-Trunk2:作为集群备份通道
  • Eth-Trunk3:作为集群转发通道
  • 业务组1:对应DC1的业务
  • 业务组2:对应DC2的业务
  • 业务组3:对应DC3的业务
  • Tunnel1:与R1建立GRE通道,对端IP地址是10.1.12.2
  • Tunnel2:与R3建立GRE通道,对端IP地址是10.1.13.2

FW_C

  • GE1/0/1:10.1.4.1/24
  • GE1/0/2:10.2.4.1/24
  • Eth-Trunk1:10.1.5.3/24,加入接口:GE1/0/3和GE1/0/4
  • Eth-Trunk2:10.1.6.3/24,加入接口:GE1/0/5和GE1/0/6
  • Eth-Trunk3:10.1.7.3/24,加入接口:GE1/0/7和GE1/0/8
  • Tunnel1:10.1.14.1/24
  • Tunnel2:10.1.15.1/24
  • 业务组1:优先级80,绑定OSPF进程1
  • 业务组2:优先级90,绑定OSPF进程2
  • 业务组3:优先级100,绑定OSPF进程3
  • Eth-Trunk1:作为集群协商通道
  • Eth-Trunk2:作为集群备份通道
  • Eth-Trunk3:作为集群转发通道
  • 业务组1:对应DC1的业务
  • 业务组2:对应DC2的业务
  • 业务组3:对应DC3的业务
  • Tunnel1:与R1建立GRE通道,对端IP地址是10.1.14.2
  • Tunnel2:与R2建立GRE通道,对端IP地址是10.1.15.2

操作步骤
  1. 完成网络基本配置。包括配置接口IP地址、接口加入安全区域和路由。

    以下配置需要在每个集群成员上执行。下面给出FW_A上的配置,FW_B/C的配置请参考。

    # 配置各接口的IP地址。
    
    <FW_A> system-view 
    [FW_A] interface GigabitEthernet 1/0/1
    [FW_A-GigabitEthernet1/0/1] ip address 10.1.2.1 24
    [FW_A-GigabitEthernet1/0/1] quit 
    [FW_A] interface GigabitEthernet 1/0/2
    [FW_A-GigabitEthernet1/0/2] ip address 10.1.1.1 24
    [FW_A-GigabitEthernet1/0/2] quit
    [FW_A] interface Eth-Trunk 1
    [FW_A-Eth-Trunk1] ip address 10.1.5.1 24
    [FW_A-Eth-Trunk1] trunkport GigabitEthernet 1/0/3 to 1/0/4
    [FW_A-Eth-Trunk1] quit
    [FW_A] interface Eth-Trunk 2
    [FW_A-Eth-Trunk2] ip address 10.1.6.1 24
    [FW_A-Eth-Trunk2] trunkport GigabitEthernet 1/0/5 to 1/0/6
    [FW_A-Eth-Trunk2] quit
    [FW_A] interface Eth-Trunk 3
    [FW_A-Eth-Trunk3] ip address 10.1.7.1 24
    [FW_A-Eth-Trunk3] trunkport GigabitEthernet 1/0/7 to 1/0/8
    [FW_A-Eth-Trunk3] quit
    # 将各接口加入相应的安全区域。
    
    [FW_A] firewall zone trust
    [FW_A-zone-trust] add interface GigabitEthernet 1/0/2
    [FW_A-zone-trust] quit
    [FW_A] firewall zone dmz
    [FW_A-zone-dmz] add interface Eth-Trunk 1
    [FW_A-zone-dmz] add interface Eth-Trunk 2
    [FW_A-zone-dmz] add interface Eth-Trunk 3
    [FW_A-zone-dmz] add interface Tunnel 1
    [FW_A-zone-dmz] add interface Tunnel 2
    [FW_A-zone-dmz] quit
    [FW_A] firewall zone untrust
    [FW_A-zone-untrust] add interface GigabitEthernet 1/0/1
    [FW_A-zone-untrust] quit
    # 配置GRE隧道。
    
    [FW_A] interface Tunnel 1
    [FW_A-Tunnel1] ip address 10.1.10.1 255.255.255.0
    [FW_A-Tunnel1] tunnel-protocol gre
    [FW_A-Tunnel1] source 10.2.2.1
    [FW_A-Tunnel1] destination 10.2.3.2
    [FW_A-Tunnel1] quit
    [FW_A] interface Tunnel 2
    [FW_A-Tunnel2]  ip address 10.1.11.1 255.255.255.0
    [FW_A-Tunnel2] tunnel-protocol gre
    [FW_A-Tunnel2] source 10.2.2.1
    [FW_A-Tunnel2] destination 10.2.4.2
    [FW_A-Tunnel2] quit
    # 配置OSPF,保证路由可达。
    
    [FW_A] ospf 1
    [FW_A-ospf-1] area 0.0.0.1
    [FW_A-ospf-1-area-0.0.0.1] network 10.2.2.0 0.0.0.255
    [FW_A-ospf-1-area-0.0.0.1] quit
    [FW_A-ospf-1] quit
    [FW_A] ospf 2
    [FW_A-ospf-2] area 0.0.0.1
    [FW_A-ospf-2-area-0.0.0.1] network 10.1.10.0 0.0.0.255
    [FW_A-ospf-2-area-0.0.0.1] quit
    [FW_A-ospf-2] quit
    [FW_A] ospf 3
    [FW_A-ospf-3] area 0.0.0.1
    [FW_A-ospf-3-area-0.0.0.1] network 10.1.11.0 0.0.0.255
    [FW_A-ospf-3-area-0.0.0.1] quit
    [FW_A-ospf-3] quit
    # 配置BGP,保证路由可达。
    
    [FW_A] bgp 10
    [FW_A-bgp] router-id 1.1.1.1
    [FW_A-bgp] peer 10.1.2.2 as-number 10
    [FW_A-bgp] ipv4-family unicast
    [FW_A-bgp-af-ipv4] undo synchronization
    [FW_A-bgp-af-ipv4] import-route ospf 1
    [FW_A-bgp-af-ipv4] import-route ospf 2
    [FW_A-bgp-af-ipv4] import-route ospf 3
    [FW_A-bgp-af-ipv4] peer 10.1.2.2 enable
    [FW_A-bgp-af-ipv4] quit
    [FW_A-bgp] quit

  2. 开启集群功能。

    以下配置需要在每个集群成员上执行。
    
    # 配置集群协商参数。
    
    [FW_A] cluster id 1000
    [FW_A] cluster detect-interval 2
    [FW_A] cluster timer holding-multiplier 4
    [FW_A] cluster timer hello 2
    [FW_A] cluster backup node-num 2
    [FW_A] cluster preempt delay 70
    [FW_A] cluster ip-list node 1 negotiation 10.1.5.1 backup 10.1.6.1 forward 10.1.7.1
    [FW_A] cluster ip-list node 2 negotiation 10.1.5.2 backup 10.1.6.2 forward 10.1.7.2
    [FW_A] cluster ip-list node 3 negotiation 10.1.5.3 backup 10.1.6.3 forward 10.1.7.3
    [FW_A] cluster node bind 1
    [FW_A] cluster standby config enable
    [FW_A] cluster session fast-sync enable
    [FW_A] cluster enable

  3. 配置业务组,将业务组关联到OSPF进程,实现路由引流。

    以下配置请在集群管理主上配置,会自动同步到集群其他成员。
    
    C_No1_M[FW_A] business-group 1
    C_No1_M[FW_A-business-group-1] node 1 priority 100
    C_No1_M[FW_A-business-group-1] node 2 priority 90
    C_No1_M[FW_A-business-group-1] node 3 priority 80
    C_No1_M[FW_A-business-group-1] bind ospf 1
    C_No1_M[FW_A-business-group-1] quit
    C_No1_M[FW_A] business-group 2
    C_No1_M[FW_A-business-group-2] node 1 priority 80
    C_No1_M[FW_A-business-group-2] node 2 priority 100
    C_No1_M[FW_A-business-group-2] node 3 priority 90
    C_No1_M[FW_A-business-group-2] bind ospf 2
    C_No1_M[FW_A-business-group-2] quit
    C_No1_M[FW_A] business-group 3
    C_No1_M[FW_A-business-group-3] node 1 priority 90
    C_No1_M[FW_A-business-group-3] node 2 priority 80
    C_No1_M[FW_A-business-group-3] node 3 priority 100
    C_No1_M[FW_A-business-group-3] bind ospf 3
    C_No1_M[FW_A-business-group-3] quit

  4. 配置安全策略。

    以下配置请在集群管理主上配置,会自动同步到集群其他成员。
    
    # 配置安全策略,允许内网用户访问外网。
    
    C_No1_M[FW_A] security-policy
    C_No1_M[FW_A-policy-security] rule name policy_sec1 
    C_No1_M[FW_A-policy-security-rule-policy_sec1] source-zone trust
    C_No1_M[FW_A-policy-security-rule-policy_sec1] destination-zone untrust
    C_No1_M[FW_A-policy-security-rule-policy_sec1] source-address 10.4.0.0 16
    C_No1_M[FW_A-policy-security-rule-policy_sec1] action permit
    C_No1_M[FW_A-policy-security-rule-policy_sec1] quit
    # 配置安全策略,允许FW与上下行路由器交互OSPF/BGP报文。
    
    C_No1_M[FW_A-policy-security] rule name policy_sec2
    C_No1_M[FW_A-policy-security-rule-policy_sec2] source-zone local
    C_No1_M[FW_A-policy-security-rule-policy_sec2] destination-zone trust untrust
    C_No1_M[FW_A-policy-security-rule-policy_sec2] action permit
    C_No1_M[FW_A-policy-security-rule-policy_sec2] quit
    C_No1_M[FW_A-policy-security] rule name policy_sec3
    C_No1_M[FW_A-policy-security-rule-policy_sec3] source-zone trust untrust
    C_No1_M[FW_A-policy-security-rule-policy_sec3] destination-zone local
    C_No1_M[FW_A-policy-security-rule-policy_sec3] action permit
    C_No1_M[FW_A-policy-security-rule-policy_sec3] quit
    # 配置Local和DMZ的域间安全策略,允许封装后的GRE报文通过域间安全策略。
    
    C_No1_M[FW_A-policy-security] rule name policy2
    C_No1_M[FW_A-policy-security-rule-policy2] source-zone local dmz
    C_No1_M[FW_A-policy-security-rule-policy2] destination-zone dmz local
    C_No1_M[FW_A-policy-security-rule-policy2] action permit
    C_No1_M[FW_A-policy-security-rule-policy2] quit
    C_No1_M[FW_A-policy-security] quit

  5. 配置路由器R1,具体配置命令请参考路由器的相关文档。

    R1上接口IP等基础配置略。R2/R3上的配置与R1类似,请参考以下配置。
    
    # 配置GRE隧道。Tunnel 1和FW_B建立GRE隧道;Tunnel 2和FW_C建立GRE隧道。
    
    <R1> system-view
    [R1] interface Tunnel 1
    [R1-Tunnel1] ip address 10.1.12.2 24
    [R1-Tunnel1] tunnel-protocol gre
    [R1-Tunnel1] source 10.2.2.2
    [R1-Tunnel1] destination 10.2.3.1
    [R1-Tunnel1] quit
    [R1] interface Tunnel 2
    [R1-Tunnel2] ip address 10.1.14.2 24
    [R1-Tunnel2] tunnel-protocol gre
    [R1-Tunnel2] source 10.2.2.2
    [R1-Tunnel2] destination 10.2.4.1
    [R1-Tunnel2] quit
    # 配置OSPF。
    
    [R1] ospf 1
    [R1-ospf-1] import-route static type 1
    [R1-ospf-1] area 0.0.0.1
    [R1-ospf-1-area-0.0.0.1] network 10.2.2.0 0.0.0.255
    [R1-ospf-1-area-0.0.0.1] quit
    [R1-ospf-1] area 0.0.0.2
    [R1-ospf-1-area-0.0.0.2] network 10.1.12.0 0.0.0.255
    [R1-ospf-1-area-0.0.0.2] quit
    [R1-ospf-1] area 0.0.0.3
    [R1-ospf-1-area-0.0.0.3] network 10.1.14.0 0.0.0.255
    [R1-ospf-1-area-0.0.0.3] quit
    [R1-ospf-1] quit

  6. 配置路由器R4。具体配置命令请参考路由器的相关文档。

    R4上接口IP等基础配置略。
    
    <R4> system-view
    [R4] bgp 10
    [R4-bgp] router-id 4.4.4.4
    [R4-bgp] peer 10.1.2.1 as-number 10
    [R4-bgp] peer 10.1.3.1 as-number 10
    [R4-bgp] peer 10.1.4.1 as-number 10
    [R4-bgp] quit

结果验证
  1. 在集群管理主上执行display cluster negotiation status命令,查看集群协商的状态信息。
    C_No1_M<FW_A> display cluster negotiation status
    
    ID    status   health   version   join                 leave                    
    ------------------------------------------------------------                    
    3     slave    10000    A         2018/02/20 16:56:14  NA                       
    2     slave    10000    A         2018/02/20 16:56:17  NA      
    1*    master   10000    A         2018/02/20 16:55:32  NA
    以上信息表示集群1000已经建立,存在3个成员,版本一致,健康度均是10000。
    
    在管理主上执行display business-group brief命令,检查业务组信息。
    
    C_No1_M<FW_A> display business-group brief
    TotalBG:3   Master:1    Slave:2    Invalid:0   Init:0                           
    BGID   State      TopThree         IP_num  Pre_Preempt  next_master             
    ------------------------------------------------------------------------------- 
      1   master      1 2 3               0        NO            -                  
      2   slave       2 3 1               0        NO            -                  
      3   slave       3 1 2               0        NO            -

  2. 以上信息表示:FW_A作为业务组1的主设备;作为业务组2、3的备设备;每个业务组的排序符合预期。

  3. 在R4上查看路由表,正常情况下去DC1的下一跳地址是10.1.2.1。当FW_A故障后,通往DC1的下一跳地址变成10.1.3.1,即通过FW_B转发。

配置脚本

本例中,集群成员上的配置基本一致。主要差异在:接口IP和本设备对应集群节点ID。

下面配置文件以FW_A为例,差异部分会加粗显示,请注意替换。

#
cluster id 1000
cluster detect-interval 2
cluster timer holding-multiplier 4
cluster timer hello 2
cluster backup node-num 2
cluster preempt delay 70
cluster standby config enable
cluster session fast-sync enable
cluster preempt
cluster ip-list node 1 negotiation 10.1.5.1 backup 10.1.6.1 forward 10.1.7.1
cluster ip-list node 2 negotiation 10.1.5.2 backup 10.1.6.2 forward 10.1.7.2
cluster ip-list node 3 negotiation 10.1.5.3 backup 10.1.6.3 forward 10.1.7.3
cluster node bind 1
cluster enable
#
 business-group 1
  node 1 priority 100
  node 2 priority 90
  node 3 priority 80
  bind ospf 1
 business-group 2
  node 1 priority 80
  node 2 priority 100
  node 3 priority 90
  bind ospf 2
 business-group 3
  node 1 priority 90
  node 2 priority 80
  node 3 priority 100
  bind ospf 3
#
ospf 1
 area 0.0.0.1
  network 10.2.2.0 0.0.0.255
#
ospf 2
 area 0.0.0.1
  network 10.1.10.0 0.0.0.255
#
ospf 3
 area 0.0.0.1
  network 10.1.11.0 0.0.0.255
#
bgp 10
 router-id 1.1.1.1
 peer 10.1.2.2 as-number 10
 ipv4-family unicast
  undo synchronization
  import-route ospf 1
  import-route ospf 2
  import-route ospf 3
  peer 10.1.2.2 enable
#
firewall zone trust
 set priority 85
 add interface GigabitEthernet 1/0/2
# 
firewall zone untrust
 set priority 5
 add interface GigabitEthernet 1/0/1
# 
firewall zone dmz
 set priority 50
 add interface Eth-Trunk1
 add interface Eth-Trunk2
 add interface Eth-Trunk3
 add interface Tunnel1
 add interface Tunnel2
#
interface GigabitEthernet 1/0/1
 ip address 10.1.2.1 255.255.255.0
#
interface GigabitEthernet 1/0/2
 ip address 10.2.2.1 255.255.255.0
#
interface GigabitEthernet 1/0/3
 eth-trunk 1
#
interface GigabitEthernet 1/0/4
 eth-trunk 1
#
interface GigabitEthernet 1/0/5
 eth-trunk 2
#
interface GigabitEthernet 1/0/6
 eth-trunk 2
#
interface GigabitEthernet 1/0/7
 eth-trunk 3
#
interface GigabitEthernet 1/0/8
 eth-trunk 3
#
interface Eth-Trunk1
 ip address 10.1.5.1 255.255.255.0
#
interface Eth-Trunk2
 ip address 10.1.6.1 255.255.255.0
#
interface Eth-Trunk3
 ip address 10.1.7.1 255.255.255.0
#
interface Tunnel1
 ip address 10.1.10.1 255.255.255.0
 tunnel-protocol gre
 source 10.2.2.1
 destination 10.2.3.2
#
interface Tunnel2
 ip address 10.1.11.1 255.255.255.0
 tunnel-protocol gre
 source 10.2.2.1
 destination 10.2.4.2
#
security-policy
 rule name policy_sec1
  source-zone trust
  destination-zone untrust
  source-address 10.4.0.0 16
  action permit
 rule name policy_sec2
  source-zone local
  destination-zone local
  destination-zone untrust
  action permit    
 rule name policy_sec3
  source-zone untrust
  source-zone trust
  destination-zone local
  action permit
 rule name policy2
  source-zone local
  source-zone dmz
  destination-zone local
  destination-zone dmz
  action permit
#

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/530576.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计模式之迭代器模式(下)

3&#xff09;使用内部类实现迭代器 1.JDK中的迭代器示例 为了能够让迭代器可以访问到聚合对象中的数据&#xff0c;还可以将迭代器类设计为聚合类的内部类 package java.util;public abstract class AbstractList<E> extends AbstractCollection<E> implements…

SWM341系列应用(ADC应用)

SWM341系列 ADC应用 1、测试不同外接输入阻抗的情况 芯片供电3.3v&#xff0c;通过电阻箱进行分压获取被测电压&#xff0c;应用SimpleADC0 例程库。实测外接100K上拉电阻&#xff0c;或外接10K电阻上拉电阻&#xff0c;调整电阻箱获取被测电压3.0v、1.65v、100mV、50mV&#x…

如何解决Python包管理问题:ERROR: Could not find a version that satisfies the requirement

如何解决Python包管理问题&#xff1a;“ERROR: Could not find a version that satisfies the requirement” 文章目录 如何解决Python包管理问题&#xff1a;“ERROR: Could not find a version that satisfies the requirement”错误描述问题分析解决方案检查包名确保网络连…

前端三剑客 —— JavaScript (第二节)

目录 内容回顾 数据类型 基本数据类型&#xff1a; 引用数据类型&#xff1a; 常见运算 算术运算符 比较运算符 逻辑运算符 赋值运算符 自增/减运算符 三目运算符 位运算符 内容回顾 1.概述 2.基本数据 1.使用方式&#xff08;行内、页面、外部&#xff09; 2.对话框…

Facebook直播延迟过高是为什么?

在进行Facebook直播 时&#xff0c;高延迟可能会成为一个显著的问题&#xff0c;影响观众的观看体验和互动效果。以下是一些导致Facebook直播延迟过高的可能原因&#xff1a; 1、网络连接问题 网络连接不稳定或带宽不足可能是导致Facebook直播延迟的主要原因之一。如果您的网络…

华为机试题

目录 第一章、HJ1计算字符串最后一个单词的长度&#xff0c;单词以空格隔开。1.1&#xff09;描述1.2&#xff09;解题第二章、算法题HJ2 计算某字符出现次数1.1&#xff09;题目描述1.2&#xff09;解题思路与答案第三章、算法题HJ3 明明的随机数1.1&#xff09;题目描述1.2&a…

机器学习工程师 |面试作业题记录|本科水平 | 附个人解答

如是我闻&#xff1a; 面试的是一家在加拿大的初创公司&#xff0c;我想他们是需要清纯质朴的廉价劳动力干点杂活&#xff0c;非常符合我目前的情况。祝我成功吧。以下是他们的面试作业题&#xff08;take home questions&#xff09;&#xff0c;主要考察了一些基础知识&#…

Linux虚拟内存简介

Linux&#xff0c;像多数现代内核一样&#xff0c;采用了虚拟内存管理技术。该技术利用了大多数程序的一个典型特征&#xff0c;即访问局部性&#xff08;locality of reference&#xff09;&#xff0c;以求高效使用CPU和RAM&#xff08;物理内存&#xff09;资源。大多数程序…

查看 Linux 接入的 USB 设备速率是 USB2 还是 USB3

查看接入 usb 设备的速率 使用以下命令查看接入的 USB 设备速率&#xff08;每一行最后的 xxM 字样&#xff09;。插入设备前查看一次&#xff0c;插入设备后查看一次&#xff0c;对比即可定位到刚插入的设备是哪一条。 lsusb -t命令输出如下图 对照 USB 速率表 对照 USB 速…

【TensorRT】TensorRT C# API 项目更新 (1):支持动态Bath输入模型推理(下篇)

4. 接口应用 关于该项目的调用方式在上一篇文章中已经进行了详细介绍&#xff0c;具体使用可以参考《最新发布&#xff01;TensorRT C# API &#xff1a;基于C#与TensorRT部署深度学习模型》&#xff0c;下面结合Yolov8-cls模型详细介绍一下更新的接口使用方法。 4.1 创建并配…

构建智能生态:详解同城O2O外卖跑腿APP的开发技术

同城O2O外卖跑腿APP作为这一新型服务的代表&#xff0c;其开发技术成为了当下技术界的热点之一。小编将深入讲解同城O2O外卖跑腿APP的开发技术&#xff0c;以期为开发者提供一些有益的参考和指导。 需求分析与功能设计 在开发同城O2O外卖跑腿APP之前&#xff0c;首先需要进行充…

openlayer实现webgis端绘制制图及编辑

在WebGIS端制图是指通过Web浏览器界面实现地理信息数据的可视化、编辑、分析以及地图产品的制作。这一过程通常涉及以下几个关键环节&#xff1a; **1. 前端技术栈&#xff1a; •HTML/CSS/JavaScript&#xff1a;作为Web开发的基础&#xff0c;用于构建用户界面布局、样式设…

Go —— channel (二)

一个空的 channel 会产生哪些问题 读写nil管道均会阻塞触发死锁。关闭的管道仍然可以读取数据&#xff0c;向关闭的管道写数据会触发panic。 问&#xff1a;如果有多个协程同时读取一个channel&#xff0c;channel会如何选择消费者 channel 会按照维护的 recvq 等待读消息的…

vue canvas绘制信令图,动态显示标题、宽度、高度

需求: 1、 根据后端返回的数据&#xff0c;动态绘制出信令图 2、根据 dataStatus 返回值&#xff1a; 0 和 1&#xff0c; 判断 文字内容的颜色&#xff0c;0&#xff1a;#000&#xff0c;1&#xff1a;red 3.、根据 lineType 返回值&#xff1a; 0 和 1&#xff0c; 判断 箭…

栈的详解和例题(力扣有效括号)

感谢各位大佬的光临&#xff0c;希望和大家一起进步&#xff0c;望得到你的三连&#xff0c;互三支持&#xff0c;一起进步 个人主页&#xff1a;LaNzikinh-CSDN博客 收入专栏:初阶数据结构_LaNzikinh篮子的博客-CSDN博客 文章目录 前言一.什么是栈二.栈的实现三.例题&#xff…

推荐系统(唐宇迪)含具体代码

一、推荐系统介绍 用户冷启动 1.1 经典流程 1.2 涉及的技术点 二、协同过滤与矩阵分解 2.1 基于物品流行度&#xff08;排行榜榜单&#xff09;的推荐算法 class popularity_recommender_py():def __init__(self):self.train_data Noneself.user_id Noneself.item_id None…

Java每日一题(三道同一类型的题)

前言 本文一共有三道题:1.两数之和 2.三数之和 3. 四数之和 为什么把这三道题放一起呢&#xff0c;因为三数之和是可以根据两数之和进行推导&#xff0c;四数之和可以根据三数之和进行推导。 两数之和 思路分析: 我的思路: 1.排序 2.使用左右指针 3.处理细节问题 先让数组…

人工智能——深度学习

4. 深度学习 4.1. 概念 深度学习是一种机器学习的分支&#xff0c;旨在通过构建和训练多层神经网络模型来实现数据的高级特征表达和复杂模式识别。与传统机器学习算法相比&#xff0c;深度学习具有以下特点&#xff1a; 多层表示学习&#xff1a;深度学习使用深层神经网络&a…

Java后端常见场景业务问题

目录 单点登录如何实现权限认证如何实现上传数据的安全性如何保证订单表每天新增500W数据,分库分表的方案应该如何设计?订单表每天新增500W数据,分库分表的方案应该如何设计?*********************项目日志如何采集已经上线的bug如何排查如何快速定位系统瓶颈单点登录如何实…

Golang使用PGO优化程序性能

文章目录 参考文章PGO是什么使用PGO的好处PGO做了什么热函数内联什么是内联内联的好处Go默认的内联策略PGO的热函数内联 去虚拟化调用指令高速缓存 PGO有什么缺点可执行程序变大构建时间变长 PGO怎么使用典型的工作流程收集CPU配置文件生产环境启动PGO代码改动重新生成CPU配置文…