Data routing method and apparatus, electronic device, computer readable storage medium, and computer program product

By generating a second routing path that does not include faulty routing nodes, the data routing interruption caused by routing path failure in the cluster system is solved, the continuity and reliability of data routing are achieved, and the performance of the cluster system is improved.

WO2025180380A1PCT designated stage Publication Date: 2025-09-04TENCENT TECHNOLOGY (SHENZHEN) CO LTD

Patent Information

Application Number
PCT/CN2025/079171
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-02-28
Filing Date
2025-02-26
Publication Date
2025-09-04

AI Technical Summary

Technical Problem

In a cluster system, the first routing node that fails in the routing path causes data routing to fail to proceed normally, affecting the reliability and scalability of data transmission.

Method used

By generating a second route path that does not include a faulty routing node, ensuring the continuity of data routing, the management node generates and sends a new route path in response to the path acquisition request, avoiding the data routing being affected by the faulty node.

Benefits of technology

It effectively reduces the impact of path failure on data routing, ensures the normal progress of data routing, and improves the reliability and scalability of the cluster system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025079171_04092025_PF_FP_ABST
    Figure CN2025079171_04092025_PF_FP_ABST
Patent Text Reader

Abstract

The present application provides a data routing method and apparatus, an electronic device, a computer readable storage medium, and a computer program product. The method comprises: generating a first routing path taking a first service node as a starting point, and sending the first routing path to the first service node, wherein the first routing path comprises at least one routing node for data routing; and in response to a path acquisition request sent by the first service node, generating a second routing path taking the first service node as a starting point, and sending the second routing path to the first service node, the path acquisition request being generated when a failed first routing node is present among the at least one routing node, wherein the second routing path is different from the first routing path, and the second routing path does not comprise the failed first routing node.
Need to check novelty before this filing date? Find Prior Art

Description

Data routing method, device, electronic device, computer-readable storage medium, and computer program product

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application is based on the Chinese patent application with application number 202410226346.7 and application date of February 28, 2024, and claims the priority of the Chinese patent application. The entire content of the Chinese patent application is hereby introduced into this application as a reference. Technical Field

[0003] The present application relates to the field of computer technology, and more particularly to a data routing method, device, electronic device, computer-readable storage medium, and computer program product. Background Art

[0004] Cluster technology, a recent development stemming from the internet, connects a group of independent computers via high-speed networks to form a unified management and scheduling cluster system. This system is used to handle various big data scenarios, thereby improving service scalability and reliability. To ensure the normal operation of big data services, cluster systems typically store massive amounts of data to support these diverse applications.

[0005] In related technologies, data routing is usually performed directly along a routing path. When a faulty first routing node exists in the routing path, data routing cannot be performed. Consequently, due to the path failure, data routing cannot be performed normally. Summary of the Invention

[0006] Embodiments of the present application provide a data routing method, apparatus, electronic device, computer-readable storage medium, and computer program product, which can effectively reduce the impact of path failures on data routing.

[0007] The technical solution of the embodiment of the present application is implemented as follows:

[0008] An embodiment of the present application provides a data routing method, applied to a first service node, including:

[0009] receiving a first routing path starting from the first service node, wherein the first routing path includes at least one routing node for data routing;

[0010] In response to a first routing node having a fault among the at least one routing node, sending a path acquisition request;

[0011] receiving a second routing path returned based on the path acquisition request, where the second routing path is different from the first routing path and does not include the first routing node;

[0012] Data routing is performed according to the second routing path.

[0013] An embodiment of the present application provides a data routing method, applied to a routing node, comprising:

[0014] receiving a first routing path, wherein the first routing path includes the routing node for performing data routing;

[0015] In response to the routing node not being the failed first routing node and the first routing node being present in the first routing path, receiving a second routing path;

[0016] The second routing path is different from the first routing path, and the second routing path does not include the first routing node.

[0017] An embodiment of the present application provides a data routing method, applied to a management node, including:

[0018] Generate a first routing path with the first service node as a starting point, and send the first routing path to the first service node;

[0019] Wherein, the first routing path includes at least one routing node for performing data routing;

[0020] generating, in response to a path acquisition request sent by a first service node, a second routing path with the first service node as a starting point, and sending the second routing path to the first service node, wherein the path acquisition request is generated when a faulty first routing node is present among the at least one routing node;

[0021] The second routing path is different from the first routing path, and the second routing path does not include the first routing node.

[0022] An embodiment of the present application provides a data routing method, which is applied to a distributed service system. The distributed service system includes a management node, multiple service nodes, and multiple routing nodes, including:

[0023] The management node sends a first routing path to the service node, and the service node receives the first routing path starting from the service node, where the first routing path includes at least one routing node for data routing;

[0024] The service node sends the first routing path to the routing node, and the routing node receives the first routing path;

[0025] The service node sends a path acquisition request to the management node in response to a first routing node that fails among the at least one routing node;

[0026] The management node receives the path acquisition request and sends a second routing path generated based on the path acquisition request to the service node;

[0027] The second routing path is different from the first routing path, and the second routing path does not include the first routing node;

[0028] The service node receives the second routing path.

[0029] An embodiment of the present application provides a data routing device, applied to a first service node, including:

[0030] an initial receiving module configured to receive a first routing path starting from the first service node, wherein the first routing path includes at least one routing node for data routing;

[0031] a service response module configured to send a path acquisition request in response to a first routing node having a fault among the at least one routing node;

[0032] a target receiving module, configured to receive a second routing path returned based on the path acquisition request, where the second routing path is different from the first routing path and does not include the first routing node;

[0033] The data routing module is configured to perform data routing according to the second routing path.

[0034] An embodiment of the present application provides a data routing device, applied to a routing node, comprising:

[0035] a first receiving module configured to receive a first routing path, wherein the first routing path includes the routing node for performing data routing;

[0036] a second receiving module configured to receive a second routing path in response to the routing node not being the failed first routing node and the first routing node existing in the first routing path;

[0037] The second routing path is different from the first routing path, and the second routing path does not include the first routing node.

[0038] An embodiment of the present application provides a data routing device, applied to a management node, including:

[0039] an initial sending module configured to generate a first routing path starting from the first service node and send the first routing path to the first service node, wherein the first routing path includes at least one routing node for data routing;

[0040] a request receiving module configured to generate a second routing path starting from the first service node in response to a path acquisition request sent by the first service node, wherein the path acquisition request is generated when a faulty first routing node exists among the at least one routing node;

[0041] The target sending module is configured to send the second routing path to the first service node, wherein the second routing path is different from the first routing path and does not include the first routing node.

[0042] An embodiment of the present application provides a data routing device, which is applied to a distributed service system. The distributed service system includes a management node, multiple service nodes, and multiple routing nodes, including:

[0043] an initial path module, configured such that the management node sends a first routing path to the service node, the service node receives the first routing path starting from the service node, the first routing path including at least one routing node for data routing; the service node sends the first routing path to the routing node, and the routing node receives the first routing path;

[0044] a path request module configured such that, in response to a faulty first routing node among the at least one routing node, the service node sends a path acquisition request to the management node; the management node receives the path acquisition request and sends a second routing path generated based on the path acquisition request to the service node; wherein the second routing path is different from the first routing path and does not include the first routing node;

[0045] The target path module is configured to receive the second routing path from the service node.

[0046] An embodiment of the present application provides an electronic device, including:

[0047] a memory configured to store computer-executable instructions or computer programs;

[0048] The processor is configured to implement the data routing method provided in the embodiment of the present application when executing the computer executable instructions or computer program stored in the memory.

[0049] An embodiment of the present application provides a computer-readable storage medium storing a computer program or computer-executable instructions, which is configured to cause a processor to execute and implement the data routing method provided in the embodiment of the present application.

[0050] An embodiment of the present application provides a computer program product, which includes a computer program or computer-executable instructions stored in a computer-readable storage medium. A processor of an electronic device reads the computer program or computer-executable instructions from the computer-readable storage medium and executes the computer program or computer-executable instructions, causing the electronic device to perform the data routing method described in the embodiment of the present application.

[0051] The embodiments of the present application have the following beneficial effects:

[0052] The management node generates a first routing path starting from a first service node and sends the first routing path, wherein the first routing path includes at least one routing node for data routing. In response to a received path acquisition request, when a faulty first routing node exists in at least one routing node, a second routing path starting from the first service node is generated and sent. In this way, when a faulty first routing node exists in at least one routing node, a second routing path starting from the first service node and excluding the faulty first routing node is generated. Because the second routing path is different from the first routing path and does not include the faulty first routing node, data routing is performed through the second routing path, thereby ensuring that data routing proceeds normally without being affected by the faulty first routing node, thereby effectively reducing the impact of path failures on data routing. BRIEF DESCRIPTION OF THE DRAWINGS

[0053] FIG1 is a schematic diagram of the architecture of a data routing system 100 provided in an embodiment of the present application;

[0054] FIG2 is a first structural diagram of an electronic device for data routing provided in an embodiment of the present application;

[0055] FIG3 is a second structural diagram of an electronic device for data routing provided in an embodiment of the present application;

[0056] FIG4 is a third structural diagram of an electronic device for data routing provided in an embodiment of the present application;

[0057] FIG5 is a fourth structural diagram of an electronic device for data routing provided in an embodiment of the present application;

[0058] FIG6 is a schematic diagram of the architecture of a distributed service system provided in an embodiment of the present application;

[0059] FIG7 is a flowchart of a data routing method according to an embodiment of the present application;

[0060] FIG8 is a second flow chart of a data routing method according to an embodiment of the present application;

[0061] FIG9 is a first schematic diagram of the principle of a data routing method provided in an embodiment of the present application;

[0062] FIG10 is a second schematic diagram of the principle of the data routing method provided in an embodiment of the present application;

[0063] FIG11 is a third flow chart of a data routing method according to an embodiment of the present application;

[0064] FIG12 is a fourth flow chart of a data routing method according to an embodiment of the present application;

[0065] FIG13 is a fifth flow chart of a data routing method according to an embodiment of the present application;

[0066] FIG14 is a sixth flow chart of a data routing method according to an embodiment of the present application;

[0067] FIG15 is a flow chart of a data routing method according to an embodiment of the present application;

[0068] FIG16 is a third schematic diagram of the principle of the data routing method provided in an embodiment of the present application;

[0069] FIG17 is a fourth schematic diagram of the principle of the data routing method provided in an embodiment of the present application;

[0070] FIG18 is a fifth schematic diagram of the principle of the data routing method provided in an embodiment of the present application;

[0071] FIG19 is a sixth schematic diagram of the principle of the data routing method provided in an embodiment of the present application;

[0072] FIG20 is a seventh schematic diagram of the principle of the data routing method provided in an embodiment of the present application;

[0073] FIG21 is a schematic diagram showing the eighth principle of the data routing method provided in an embodiment of the present application;

[0074] FIG22 is a ninth schematic diagram of the principles of the data routing method provided in an embodiment of the present application. DETAILED DESCRIPTION

[0075] In order to make the purpose, technical solutions and advantages of this application clearer, the application will be further described in detail below with reference to the accompanying drawings. The described embodiments should not be regarded as limiting this application. All other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of this application.

[0076] In the following description, reference is made to “some embodiments”, which describes a subset of all possible embodiments, but it will be understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.

[0077] In the following description, the terms "first\second\third" involved are merely used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that "first\second\third" can be interchanged with a specific order or sequence where permitted, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.

[0078] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which this application pertains. The terms used herein are for the purpose of describing the embodiments of this application only and are not intended to limit this application.

[0079] Before further describing the embodiments of the present application in detail, the nouns and terms involved in the embodiments of the present application are explained. The nouns and terms involved in the embodiments of the present application are subject to the following interpretations.

[0080] 1) In response to: used to indicate the conditions or states on which the executed operations depend. When the dependent conditions or states are met, one or more operations executed can be in real time or with a set delay. Unless otherwise specified, there is no restriction on the order in which the multiple operations executed are executed.

[0081] 2) Cloud Technology: Cloud technology refers to a hosting technology that unifies hardware, software, and network resources within a wide or local area network (WAN) to enable data computing, storage, processing, and sharing. Cloud technology is a general term for network, information technology, integration technology, management platform technology, and application technology, all based on the cloud computing business model. It can form a resource pool for on-demand, flexible, and convenient use. Cloud computing technology will become a crucial support. Backend services for technical network systems, such as those for video sites, image sites, and more portals, require significant computing and storage resources. With the rapid development and application of the internet industry, every item will likely have its own unique identification mark, requiring transmission to backend systems for logical processing. Data of varying levels will be processed separately, and data from all industries will require a robust system backend, which can only be achieved through cloud computing.

[0082] 3) Hadoop Distributed File System (HDFS): This is a distributed file system designed to run on commodity hardware. While it shares many similarities with existing distributed file systems, it also differs significantly from them. HDFS is a highly fault-tolerant system suitable for deployment on inexpensive machines. It provides high-throughput data access, making it ideal for applications with large datasets. HDFS relaxes some POSIX requirements to enable streaming access to file system data. HDFS is highly fault-tolerant and designed to be deployed on low-cost hardware. It also provides high throughput for accessing application data, making it suitable for applications with very large data sets. HDFS relaxes POSIX requirements to enable streaming access to file system data.

[0083] 4) Virtual Private Cloud (VPC): A VPC is a dedicated on-cloud network space built on the cloud platform. It provides network services for tenants' cloud resources and offers complete logical isolation between different VPCs. Tenants can customize their network environment, routing tables, security policies, and more. VPCs also support multiple ways to connect to the Internet, other VPCs, and tenants' local IDCs.

[0084] 5) High-Performance Networking (HPN): This refers to computer networks that offer high speed, low latency, and stable performance, typically used in applications requiring high bandwidth and rapid data transmission. HPNs are typically used in scenarios requiring large data transmission, real-time data processing, and high-concurrency connections, such as scientific research, large-scale data centers, cloud computing, and high-performance computing (HPC).

[0085] 6) Remote Direct Memory Access (RDMA): This network-based zero-copy technology allows data to be transferred directly from one host's memory to another's without passing through the CPU or host memory. Using a dedicated network adapter and network protocol stack, RDMA enables high-bandwidth, low-latency data transfer.

[0086] 7) Segment Routing over IPv6 (SRv6): A network addressing and routing technology that uses the Segment Routing Header extension in the IPv6 packet header to specify the packet's path. This technology allows network administrators to specify specific paths within a packet, enabling more flexible and programmable network routing.

[0087] 8) Queue Pair (QP): Similar to a socket pair in traditional network programming, two independent work queues are packaged in a queue pair to transmit data between network nodes. The Post action is used to initiate data sending and receiving.

[0088] 9) Completion Queue Element (CQE): An element in the completion queue that describes information about completed work requests (including completion status, size, etc.).

[0089] 10) Cluster technology: This technology, which has recently emerged with the development of the internet, connects a group of independent computers via high-speed networks to form a cluster system with unified management and scheduling. This system is used to handle various big data applications, thereby improving service scalability and reliability. To ensure the normal operation of big data applications, cluster systems typically store massive amounts of data to support these applications.

[0090] 11) Node: Nodes include service nodes (e.g., first service node, second service node, etc.), routing nodes (e.g., first routing node, second routing node, etc.), management nodes, etc. In telecommunications networks, a node is a connection point, representing a redistribution point or a communication endpoint (some terminal equipment). The definition of a node depends on the network and protocol layers mentioned. A physical network node is an active electronic device connected to the network that can send, receive, or forward information through a communication channel. Therefore, a passive distribution point (such as a patch panel or a plug panel) is not a node. In network theory or graph theory, the term node refers to a point in the network topology where lines intersect or branch.

[0091] 12) Bidirectional Forwarding Detection (BFD): This is a network protocol used to detect faults between two forwarding points. BFD is a bidirectional forwarding detection mechanism that provides millisecond-level detection and enables rapid link detection. By working with upper-layer routing protocols, BFD can achieve rapid routing convergence and ensure service resilience.

[0092] During the implementation of the embodiments of this application, the applicant discovered that the related technology has the following problems:

[0093] In related technologies, data routing is usually performed directly along a routing path. When a faulty first routing node exists in the routing path, data routing cannot be performed. Consequently, due to the path failure, data routing cannot be performed normally.

[0094] Embodiments of the present application provide a data routing method, apparatus, electronic device, computer-readable storage medium, and computer program product, which can effectively reduce the impact of path failures on data routing. The following describes an exemplary application of the data routing system provided in embodiments of the present application.

[0095] 1 , which is a schematic diagram of the architecture of a data routing system 100 according to an embodiment of the present application, wherein a terminal (terminal 400 is shown as an example) is connected to a server 200 via a network 300 , which may be a wide area network (WAN) or a local area network (LAN), or a combination of the two.

[0096] The terminal 400 is configured to display the second routing path on a graphical interface 410 - 1 (graphic interface 410 - 1 is shown as an example) for the user to use the client 410. The terminal 400 and the server 200 are connected to each other via a wired or wireless network.

[0097] In some embodiments, the server 200 can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDNs), and basic cloud computing services such as big data and artificial intelligence platforms. The terminal 400 can be a smart phone, a tablet computer, a laptop computer, a desktop computer, a smart speaker, a smart TV, a smart watch, a car terminal, etc., but is not limited to this. The electronic device provided in the embodiment of the present application can be implemented as a terminal or as a server. The terminal and the server can be directly or indirectly connected by wired or wireless communication, which is not limited in the embodiment of the present application.

[0098] In some embodiments, the server 200 receives a first routing path starting from the first service node, and in response to a first routing node having a fault in at least one routing node, sends a path acquisition request, receives a second routing path returned based on the path acquisition request, and sends the second routing path to the terminal 400, which performs data routing based on the second routing path.

[0099] In other embodiments, the terminal 400 receives a first routing path starting from the first service node, and in response to a first routing node having a fault in at least one routing node, sends a path acquisition request, receives a second routing path returned based on the path acquisition request, and performs data routing based on the second routing path.

[0100] In other embodiments, the embodiments of the present application can be implemented with the help of cloud technology. Cloud technology refers to a hosting technology that unifies a series of resources such as hardware, software, and network within a wide area network or local area network to realize data calculation, storage, processing, and sharing.

[0101] Cloud technology is a general term for network, information, integration, management platform, and application technologies used in the cloud computing business model. It can form a resource pool that can be used flexibly and conveniently on demand. Cloud computing technology will become a key support. The backend services of technical network systems require a large amount of computing and storage resources.

[0102] Referring to Figure 2, Figure 2 is a structural schematic diagram of an electronic device for data routing provided in an embodiment of the present application. The electronic device 500 shown in Figure 2 can be the server 200 or the terminal 400 in Figure 1. The electronic device 500 shown in Figure 2 includes: at least one processor 430, a memory 450, and at least one network interface 420. The various components in the electronic device 500 are coupled together through a bus system 440. It can be understood that the bus system 440 is configured to achieve connection and communication between these components. In addition to the data bus, the bus system 440 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, various buses are labeled as bus system 440 in Figure 2.

[0103] The processor 430 can be an integrated circuit chip with signal processing capabilities, such as a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc., where the general-purpose processor can be a microprocessor or any conventional processor, etc.

[0104] The memory 450 may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard drives, optical drives, etc. The memory 450 may optionally include one or more storage devices that are physically remote from the processor 430.

[0105] The memory 450 includes volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory may be a read-only memory (ROM), and the volatile memory may be a random access memory (RAM). The memory 450 described in the embodiments of the present application is intended to include any suitable type of memory.

[0106] In some embodiments, the memory 450 can store data to support various operations, examples of which include programs, modules, and data structures, or a subset or superset thereof, as exemplified below.

[0107] Operating system 451, including system programs configured to handle various basic system services and perform hardware-related tasks, such as a framework layer, a core library layer, a driver layer, etc., configured to implement various basic services and handle hardware-based tasks;

[0108] The network communication module 452 is configured to reach other electronic devices via one or more (wired or wireless) network interfaces 420. Exemplary network interfaces 420 include Bluetooth, Wireless Fidelity (WiFi), and Universal Serial Bus (USB).

[0109] In some embodiments, the data routing device provided in embodiments of the present application can be implemented in software. FIG2 shows a data routing device 455 stored in memory 450. This device can be software in the form of a program or plug-in, and includes the following software modules: an initial receiving module 4551, a service response module 4552, a target receiving module 4553, and a data routing module 4554. These modules are logical and can be arbitrarily combined or further separated according to the functions implemented. The functions of each module will be described below.

[0110] Referring to Figure 3, Figure 3 is a second structural diagram of an electronic device for data routing provided in an embodiment of the present application, wherein the electronic device 600 shown in Figure 3 can be the server 200 or the terminal 400 in Figure 1, and the electronic device 600 shown in Figure 3 includes: at least one processor 530, a memory 550, and at least one network interface 520. The various components in the electronic device 600 are coupled together through a bus system 540. It can be understood that the bus system 540 is used to achieve connection and communication between these components. In addition to the data bus, the bus system 540 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, various buses are labeled as bus system 540 in Figure 3.

[0111] The processor 530 can be an integrated circuit chip with signal processing capabilities, such as a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc., where the general-purpose processor can be a microprocessor or any conventional processor, etc.

[0112] The memory 550 may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard drives, optical drives, etc. The memory 550 may optionally include one or more storage devices that are physically remote from the processor 530.

[0113] The memory 550 includes volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory may be a read-only memory (ROM), and the volatile memory may be a random access memory (RAM). The memory 550 described in the embodiments of the present application is intended to include any suitable type of memory.

[0114] In some embodiments, the memory 550 can store data to support various operations, examples of which include programs, modules, and data structures, or a subset or superset thereof, as exemplified below.

[0115] Operating system 551, including system programs configured to handle various basic system services and perform hardware-related tasks, such as the framework layer, core library layer, driver layer, etc., configured to implement various basic services and handle hardware-based tasks;

[0116] The network communication module 552 is configured to reach other electronic devices via one or more (wired or wireless) network interfaces 520. Exemplary network interfaces 520 include Bluetooth, Wireless Fidelity (WiFi), and Universal Serial Bus (USB).

[0117] In some embodiments, the data routing device provided in the embodiments of the present application can be implemented in software. FIG3 shows a data routing device 555 stored in a memory 550. The data routing device 555 can be software in the form of a program or plug-in, and includes the following software modules: a first receiving module 5551 and a second receiving module 5552. These modules are logical and can be arbitrarily combined or further separated according to the functions implemented. The functions of each module will be described below.

[0118] Referring to Figure 4, Figure 4 is a third structural diagram of an electronic device for data routing provided in an embodiment of the present application, wherein the electronic device 700 shown in Figure 4 can be the server 200 or the terminal 400 in Figure 1, and the electronic device 700 shown in Figure 4 includes: at least one processor 630, a memory 660, and at least one network interface 620. The various components in the electronic device 700 are coupled together through a bus system 640. It can be understood that the bus system 640 is configured to achieve connection and communication between these components. In addition to the data bus, the bus system 640 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, various buses are labeled as bus system 640 in Figure 4.

[0119] The processor 630 can be an integrated circuit chip with signal processing capabilities, such as a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc., where the general-purpose processor can be a microprocessor or any conventional processor, etc.

[0120] The memory 660 may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard drives, optical drives, etc. The memory 660 may optionally include one or more storage devices that are physically remote from the processor 630.

[0121] The memory 660 includes volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory may be a read-only memory (ROM), and the volatile memory may be a random access memory (RAM). The memory 660 described in the embodiments of the present application is intended to include any suitable type of memory.

[0122] In some embodiments, the memory 660 can store data to support various operations, examples of which include programs, modules, and data structures, or a subset or superset thereof, as exemplified below.

[0123] Operating system 651, including system programs configured to handle various basic system services and perform hardware-related tasks, such as the framework layer, core library layer, driver layer, etc., configured to implement various basic services and handle hardware-based tasks;

[0124] The network communication module 652 is configured to reach other electronic devices via one or more (wired or wireless) network interfaces 620. Exemplary network interfaces 620 include Bluetooth, Wireless Fidelity (WiFi), and Universal Serial Bus (USB).

[0125] In some embodiments, the data routing device provided in embodiments of the present application can be implemented in software. FIG4 shows a data routing device 666 stored in memory 660 . This device can be software in the form of a program or plug-in, and includes the following software modules: an initial sending module 6661 , a request receiving module 6662 , and a target sending module 6663 . These modules are logical and can be arbitrarily combined or further separated according to the functions implemented. The functions of each module will be described below.

[0126] Referring to Figure 5, Figure 5 is a fourth structural diagram of an electronic device for data routing provided in an embodiment of the present application, wherein the electronic device 800 shown in Figure 5 can be the server 200 or the terminal 400 in Figure 1, and the electronic device 700 shown in Figure 4 includes: at least one processor 730, a memory 760, and at least one network interface 720. The various components in the electronic device 700 are coupled together through a bus system 740. It can be understood that the bus system 740 is configured to achieve connection and communication between these components. In addition to the data bus, the bus system 740 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, various buses are labeled as bus system 740 in Figure 4.

[0127] The processor 730 can be an integrated circuit chip with signal processing capabilities, such as a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc., where the general-purpose processor can be a microprocessor or any conventional processor, etc.

[0128] The memory 760 may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard drives, optical drives, etc. The memory 760 may optionally include one or more storage devices that are physically remote from the processor 730.

[0129] The memory 760 includes volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory may be a read-only memory (ROM), and the volatile memory may be a random access memory (RAM). The memory 760 described in the embodiments of the present application is intended to include any suitable type of memory.

[0130] In some embodiments, the memory 760 can store data to support various operations, examples of which include programs, modules, and data structures, or a subset or superset thereof, as exemplified below.

[0131] Operating system 751, including system programs configured to handle various basic system services and perform hardware-related tasks, such as the framework layer, core library layer, driver layer, etc., configured to implement various basic services and handle hardware-based tasks;

[0132] The network communication module 752 is configured to reach other electronic devices via one or more (wired or wireless) network interfaces 720. Exemplary network interfaces 720 include Bluetooth, Wireless Fidelity (WiFi), and Universal Serial Bus (USB).

[0133] In some embodiments, the data routing device provided in embodiments of the present application can be implemented using software. FIG5 shows a data routing device 766 stored in memory 760 . This device can be software in the form of a program or plug-in, and includes the following software modules: an initial path module 7771 , a path request module 7772 , and a target path module 7773 . These modules are logical and can be arbitrarily combined or further separated based on the functions implemented. The functions of each module will be described below.

[0134] In other embodiments, the data routing device provided in the embodiments of the present application may be implemented in hardware. As an example, the data routing device provided in the embodiments of the present application may be a processor in the form of a hardware decoding processor, which is programmed to execute the data routing method provided in the embodiments of the present application. For example, the processor in the form of a hardware decoding processor may be one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), or other electronic components.

[0135] In some embodiments, the terminal or server can implement the data routing method provided in the embodiments of the present application by running a computer program or computer executable instructions. For example, the computer program can be a native program (e.g., a dedicated data routing program) or a software module in the operating system, for example, a data routing module that can be embedded in any program (such as an instant messaging client, a photo album program, an electronic map client, a navigation client); for example, it can be a native application (APP, Application), that is, a program that needs to be installed in the operating system to run. In short, the above-mentioned computer program can be any form of application, module or plug-in.

[0136] The data routing method provided in the embodiment of the present application will be described in conjunction with the exemplary application and implementation of the server or terminal provided in the embodiment of the present application.

[0137] In some embodiments, refer to Figure 6, which is an architectural diagram of a distributed service system provided in an embodiment of the present application. The distributed service system provided in an embodiment of the present application includes a management node, multiple business nodes and multiple routing nodes. For example, the distributed service system shown in Figure 6 includes a management node 40, a business node 421, a business node 422, a business node 423, a business node 424, a routing node 411, a routing node 412, a routing node 413, a routing node 414, a routing node 415 and a routing node 416.

[0138] Refer to Figure 7, which is a flow chart of the data routing method provided in an embodiment of the present application. It will be explained in conjunction with steps 101 to 104 shown in Figure 7. The data routing method provided in an embodiment of the present application can be implemented by a server or a terminal alone, or by a server and a terminal in collaboration. The following will be explained from the perspective of the first business node using the server as the sole implementation.

[0139] In some embodiments, the above-mentioned first service node is any service node in the distributed service system provided in the embodiment of the present application. The data routing method provided in the embodiment of the present application will be described below from the perspective of the first service node.

[0140] In step 101, a first routing path starting from a first service node is received.

[0141] In some embodiments, the first service node is the starting point of a first routing path. The first service node is used to route data to the endpoint of the first routing path. It is a communication endpoint in the distributed service system and an active electronic device connected to the distributed service system capable of sending, receiving, or forwarding information via a communication channel. The first routing path includes a starting point, an endpoint, and intermediate path points. The starting point and endpoint of the first routing path are service nodes, and the intermediate path points of the first routing path are routing nodes.

[0142] In some embodiments, in a distributed service system, the first routing path refers to a data transmission path from a first business node (starting point) to another business node (end point). This path includes a starting point, an end point, and possible intermediate path points. Among them, the starting point and the end point are usually business nodes, that is, nodes that perform specific business functions, and the intermediate path points are routing nodes, which are responsible for forwarding data according to certain routing strategies to ensure that data can be efficiently and correctly transmitted from the starting point to the end point. The first routing path is the basis of the entire network communication. It defines the specific path and method of data transmission. The active electronic devices involved can send, receive or forward information through the communication channel, thereby realizing information exchange and business processing in the distributed service system.

[0143] In some embodiments, the first routing path includes at least one routing node for performing data routing.

[0144] In some embodiments, routing nodes are used to forward routing data originating from and ending at different service nodes. Routing refers to the network-wide data transmission process that determines the end-to-end path for packets from source to destination.

[0145] In some embodiments, the service node includes at least one service port. Different service ports have different service functions. The service port is the smallest unit for the service node to communicate with other nodes.

[0146] As an example, refer to Figure 16, which is a schematic diagram of the principle of the data routing method provided in an embodiment of the present application. Business node 1 includes business port 11, business port 12, business port 13, business port 14, business port 15, business port 16, business port 17, and business port 18.

[0147] As an example, referring to FIG6 , the first service node (service node 421) receives a first routing path with the first service node (service node 421) as the starting point, sent by management node 40 (for example, the first routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422).

[0148] As an example, referring to FIG. 16 , the service port 11 of the service node 1 receives a first routing path starting from the service port 11 in the service node 1 .

[0149] In some embodiments, referring to FIG. 8 , FIG. 8 is a second flow chart of a data routing method provided in an embodiment of the present application. Step 101 shown in FIG. 7 can be implemented through steps 1011 to 1014 shown in FIG. 8 .

[0150] In step 1011, at least one third routing path starting from the first service node is received.

[0151] In some embodiments, the third routing path includes at least one routing node for data routing, and different third routing paths have the same starting point and end point, but different third routing paths have different path midpoints.

[0152] As an example, referring to FIG6 , the first service node (service node 421) receives a third routing path sent by the management node 40 with the first service node (service node 421) as the starting point (for example, the third routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422).

[0153] As an example, refer to Figure 9, which is a schematic diagram of the principles of the data routing method provided in an embodiment of the present application. The first service node (service node 421) receives two third routing paths with the first service node (service node 421) as the starting point sent by the management node 40 (for example, the third routing path A is: service node 421-routing node 414-routing node 411-routing node 415-service node 422; the third routing path B is: service node 421-routing node 414-service node 422).

[0154] In step 1012, when the number of received third routing paths is one, the third routing path is determined as the first routing path.

[0155] Continuing with the above example, when the number of received third routing paths is one, that is, the received third routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422, the received third routing path is directly determined as the first routing path.

[0156] In this way, by sending a third routing path with the first service node as the starting point to the first service node, the first service node directly determines the received third routing path as the first routing path, thereby greatly improving the transmission time by controlling the number of routing paths transmitted, and significantly improving the transmission efficiency of the first routing path.

[0157] In step 1013, when a plurality of third routing paths are received, the path transmission performance of each third routing path is acquired.

[0158] In some embodiments, the above-mentioned path transmission performance is an indicator for measuring the data routing speed of the third routing path. The path transmission performance corresponds to the third routing path one-to-one, and the path transmission performance is positively correlated with the path transmission speed of the corresponding third routing path. The larger the value of the path transmission performance, the greater the corresponding path transmission speed, and the smaller the path transmission performance, the smaller the corresponding path transmission speed.

[0159] In some embodiments, the path transmission performance of the third routing path may be the sum of the node performances of the routing nodes in the third routing path.

[0160] As an example, the path transmission performance of the third routing path may be expressed as: X=X1+…+X n (1)

[0161] Wherein, X is used to indicate the path transmission performance of the third routing path, X1…X nIt is used to indicate the node performance of each routing node in the third routing path, and n is used to indicate the number of routing nodes in the third routing path.

[0162] In some embodiments, the node performance of each routing node in the above-mentioned third routing path is used to indicate the data processing performance of the routing node. For example, the node performance can be the fusion result of relevant indicator parameters such as the data throughput, response time, and query rate per second of the routing node, which is used to comprehensively reflect the data processing performance of the routing node.

[0163] In some embodiments, data throughput refers to the amount of data (measured in bits, bytes, packets, etc.) successfully transmitted per unit time for a network, device, port, virtual circuit, or other facility.

[0164] As an example, the node performance of the above-mentioned routing node can be determined by standardizing the data throughput, response time and query rate per second of the routing node to obtain the standard throughput, standard response time and standard query rate, wherein the standard throughput, standard response time and standard query rate have the same dimension, and performing weighted averaging of the standard throughput, standard response time and standard query rate to obtain the node performance of the routing node.

[0165] In step 1014, the third routing path with the highest path transmission performance is determined as the first routing path.

[0166] Continuing with the above example, referring to FIG9 , the third routing path A is: service node 421 - routing node 414 - routing node 411 - routing node 415 - service node 422; the third routing path B is: service node 421 - routing node 414 - service node 422. The path transmission performance of the second routing node A is lower than that of the third routing path B. Therefore, the third routing path B, which has the highest path transmission performance, is determined as the first routing path.

[0167] As an example, assume that service node A is a key node in a distributed service system and needs to send data to service node Z. Currently, there is a known routing path (the first routing path) connecting service nodes A and Z. Due to network maintenance or traffic optimization needs, the system may need to search for an alternative routing path (the third routing path). Service node A, through network discovery mechanisms or administrator configuration, has detected at least one third routing path to service node Z. Assume that two possible third routing paths have been detected: path C and path D. If service node A detects only one third routing path, such as path C, service node A selects path C as the new first routing path because it provides a new data transmission option. If service node A detects multiple third routing paths, such as path C and path D, it needs to evaluate the transmission performance of these two paths. To conduct this evaluation, service node A may send test data packets to measure performance metrics such as transmission delay, packet loss rate, and bandwidth capacity for each path. Suppose that service node A finds that path C has an average transmission delay of 50 milliseconds and a packet loss rate of 2%, while path D has an average transmission delay of 30 milliseconds and a packet loss rate of 1%. Service Node A also discovers that Path C has a bandwidth capacity of 100 Mbps, while Path D has a bandwidth capacity of 200 Mbps. Based on the transmission performance evaluation, Service Node A needs to decide which path will become the new primary routing path. Assuming the system prioritizes transmission delay and packet loss rate, Service Node A might choose Path D, as it outperforms Path C in both metrics. If Path D has the highest transmission performance, Service Node A selects Path D as the new primary routing path.

[0168] In this way, by sending multiple third routing paths with the first business node as the starting point to the first business node, the first business node determines the third routing path with the highest path transmission performance as the first routing path, so that multiple third routing paths with the first business node as the starting point can be backed up in the first business node. When a routing node in the first routing path fails to send, it can be directly switched to the first routing path where the failed first routing node does not exist at the first business node, thereby achieving rapid path switching, thereby ensuring the normal data routing without being affected by the failed first routing node, thereby quickly reducing the impact of path failure on data routing, and effectively improving the obstacle avoidance efficiency of the first business node.

[0169] In this way, by receiving at least one third routing path starting from the first service node, and selecting the third routing path with the best path transmission performance from the third routing paths as the first routing path, the third routing path with the best path transmission performance is preferentially selected for data routing, so that the routing speed of data routing is effectively improved, thereby effectively improving the routing efficiency of data routing.

[0170] In some embodiments, after step 101 above, the second routing path may also be determined in the following manner: in response to the presence of a failed first routing node in the first routing path, and the number of third routing paths is multiple, and the third routing paths other than the first routing path do not include the failed first routing node, a third routing path that does not include the failed first routing node is selected from the third routing paths other than the first routing path as the second routing path.

[0171] In some embodiments, the failed first routing node refers to a routing node with a fault. When a routing node fails, the routing node cannot forward data and route data. When there is a failed first routing node in the routing path, routing data cannot be routed normally in the routing path, resulting in a data routing failure.

[0172] In some embodiments, when a faulty first routing node already exists in the first routing path, it indicates that the first routing path is no longer able to route data. When the first service node receives multiple third routing paths, a third routing path that does not include the faulty first routing node can be directly selected from the third routing paths other than the first routing path as the second routing path. In this way, when a faulty first routing node exists in the first routing path, the first service node directly searches for the third routing path that does not include the faulty first routing node locally at the routing node as the second routing path. This eliminates the need for the first service node to request the second routing path again from the management node side. When the first routing path fails, the first service node can quickly find the second routing path that does not include the faulty first routing node, thereby effectively saving the time for fault repair and effectively improving the efficiency of obstacle avoidance.

[0173] As an example, referring to FIG9 , the third routing path A is: service node 421-routing node 414-routing node 411-routing node 415-service node 422; the third routing path B is: service node 421-routing node 414-service node 422, where the third routing path A is the first routing path. When a faulty first routing node (routing node 411) is present in the third routing path A, and there are multiple third routing paths, and the third routing path (third routing path B) other than the first routing path (third routing path A) does not include the faulty first routing node (the third routing path B does not include the faulty first routing node, i.e., routing node 411), a third routing path (i.e., third routing path B) that does not include the faulty first routing node is selected from the third routing paths other than the first routing path as the second routing path.

[0174] In this way, when a faulty first routing node exists in the first routing path and multiple third routing paths are available, a path that does not include the faulty node is selected from these third routing paths as the second routing path. This ensures the continuity and reliability of network communications and prevents the entire communication link from being disrupted due to a single node failure. By dynamically switching to the second routing path that does not include the faulty node, the system can quickly restore data transmission without affecting business continuity, reducing the impact of the fault on business operations and improving service availability.

[0175] In some embodiments, selecting a third routing path that does not include the failed first routing node from the third routing path other than the first routing path as the second routing path can be achieved as follows: when the number of third routing paths is two, and the third routing path other than the first routing path does not include the failed first routing node, the third routing path other than the first routing path is determined as the second routing path; when the number of third routing paths is greater than two, the third routing path that does not include the failed first routing node from the third routing path other than the first routing path is determined as the fourth routing path, and the second routing path is determined based on the fourth routing path.

[0176] In some embodiments, the fourth routing path refers to a third routing path other than the first routing path, excluding the third routing path of the first routing node that has failed.

[0177] As an example, referring to Figure 9, when the number of third routing paths is two (third routing path A is: service node 421-routing node 414-routing node 411-routing node 415-service node 422; third routing path B is: service node 421-routing node 414-service node 422), and the third routing path (third routing path B) other than the first routing path (third routing path A) does not include the failed first routing node (routing node 411), the third routing path (third routing path B) other than the first routing path is determined as the second routing path.

[0178] As an example, refer to Figure 10, which is a second principle schematic diagram of the data routing method provided in an embodiment of the present application. When the number of third routing paths is greater than two (third routing path A is: business node 421-routing node 414-routing node 411-routing node 415-business node 422; third routing path B is: business node 421-routing node 414-business node 422; third routing path C is: business node 421-routing node 415-routing node 413-routing node 416-business node 422), the third routing paths other than the first routing path (third routing path A) that do not include the third routing paths of the first routing node that has failed (third routing path B and third routing path C) are determined as the fourth routing path, and the second routing path is determined based on the fourth routing path.

[0179] In this way, when there is a failed first routing node in the first routing path, it means that the first routing path can no longer route data. When the first business node receives multiple third routing paths, it can directly select a third routing path that does not include the failed first routing node from the third routing path other than the first routing path as the second routing path. In this way, when there is a failed first routing node in the first routing path, the first business node can directly search for the third routing path that does not include the failed first routing node locally from the routing node as the second routing path. In this way, the first business node does not need to request the second routing path again from the management node side, resulting in a waste of routing time. When the first routing path fails, it can quickly find the second routing path that does not include the failed first routing node without having to request it again, thereby effectively saving the time for fault repair and effectively improving the obstacle avoidance efficiency.

[0180] In some embodiments, the above-mentioned determination of the second routing path based on the fourth routing path can be implemented as follows: when the number of fourth routing paths is one, the fourth routing path is determined as the second routing path; when the number of fourth routing paths is multiple, the fourth routing path with the highest path transmission performance is determined as the second routing path.

[0181] Continuing with the above example, referring to FIG10 , the fourth routing path is: the third routing path B is: service node 421-routing node 414-service node 422; and the third routing path C is: service node 421-routing node 415-routing node 413-routing node 416-service node 422. When the path transmission performance of the third routing path B is greater than that of the third routing path C, the third routing path B is determined as the second routing path. When the path transmission performance of the third routing path C is greater than that of the third routing path B, the third routing path C is determined as the second routing path.

[0182] In this way, when there is only one fourth routing path in the system, it is directly determined as the second routing path, and when there are multiple fourth routing paths, the path with the highest transmission performance is selected as the second routing path, ensuring that when the first routing path fails or is congested, the system can quickly switch to a reliable backup path, thereby maintaining service continuity and stability. Secondly, by evaluating and selecting the path with the best transmission performance, the system can provide more efficient data transmission rates and lower latency, improving user experience and the overall performance of the system. In addition, this strategy also enhances the flexibility and adaptability of the network, allowing the system to dynamically adjust routing strategies according to real-time network conditions, optimize resource allocation, reduce potential losses caused by network problems, and ultimately improve the reliability and efficiency of the entire distributed service system.

[0183] In some embodiments, after step 101 above, path detection may be performed on the first routing path in the following manner: performing path detection on the first routing path to obtain a path detection result.

[0184] In some embodiments, the path detection result is used to indicate whether there is a faulty first routing node among the at least one routing node included in the first routing path.

[0185] In some embodiments, the path detection is used to detect whether there is a faulty first routing node among the routing nodes included in the first routing path.

[0186] In some embodiments, the above-mentioned path detection of the first routing path to obtain the path detection result can be achieved in the following manner: determining the routing node adjacent to the first business node in the first routing path as the third routing node; sending a path detection message carrying the first routing path to the first routing node, and receiving feedback information returned by the third routing node based on the path detection message; when the feedback information indicates that the path detection message can detect the second business node, determining the path detection result as the first detection result; when the feedback information indicates that the path detection message cannot detect the second business node, determining the path detection result as the second detection result.

[0187] In some embodiments, the first detection result is used to indicate that there is no faulty first routing node among the at least one routing node included in the first routing path.

[0188] In some embodiments, the second detection result is used to indicate that a faulty first routing node exists among at least one routing node included in the first routing path, and the second service node is a service node located at the end point of the first routing path.

[0189] In some embodiments, the path detection message carries the first routing path and does not carry routing data, thereby effectively reducing the transmission time of the path detection message, thereby improving the detection efficiency of the path detection, and being able to quickly determine the first routing node that has failed in the first routing path.

[0190] In some embodiments, after sending a path detection message carrying the first routing path to the first routing node, the third routing node sends a path detection message to the fourth routing node adjacent to the first routing node in the first routing path, until the path detection message is sent to the first routing node where the fault occurs, or the path detection message is sent to the second service node, so that the second service node or the first routing node where the fault occurs gradually feeds back feedback information to the first service node.

[0191] In some embodiments, a routing node adjacent to the first service node in the first routing path is selected as the third routing node. This step is critical because, as an intermediate point in the detection process, the third routing node's feedback directly reflects the status of the first routing path. A detection message carrying information about the first routing path is sent to the first routing node. This message contains sufficient information for the third routing node to recognize and process the detection request. After receiving the detection message, the first routing node forwards it to the third routing node. The third routing node processes the message based on its content and returns feedback. If the feedback indicates that the path detection message successfully reaches the second service node, this means that the first routing path is valid and free of faults or congestion. In this case, the path detection result is determined to be a first detection result, indicating that the path is normal. If the feedback indicates that the path detection message fails to reach the second service node, this may indicate a fault, congestion, or configuration error on the first routing path. In this case, the path detection result is determined to be a second detection result, indicating a path problem. When a problem is detected in the first routing path, the system can take swift action, such as selecting a backup routing path, thereby improving network flexibility and robustness.

[0192] As an example, referring to FIG9 , when the first routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422, service node 421 is the first service node, and routing node 414 adjacent to the first service node (service node 421) in the first routing path is determined as the first routing node. The first service node (service node 421) sends a path detection message carrying the first routing path to the first routing node (routing node 414). When routing node 414 is not the first routing node that has failed, routing node 414 sends the path detection message to routing node 411. When When routing node 411 is not the first routing node that fails, routing node 411 sends a path detection message to routing node 415. When routing node 415 is not the first routing node that fails, routing node 415 sends a path detection message to second service node 422. Reference routing node 422 sends a first detection result indicating that there is no first routing node that fails among at least one routing node included in the first routing path to routing node 415. The first detection result is fed back to service node 421 via routing node 411 and routing node 414. First service node 421 forwards the first detection result to management node 40.

[0193] In this way, by determining the routing node adjacent to the first service node as the third routing node, a controllable intermediate node is introduced in the detection process, which helps to more accurately evaluate the reachability and performance of the first routing path. By sending a detection message carrying the first routing path information and receiving feedback information from the third routing node, the system can effectively determine the smoothness of the path and ensure that potential network problems are discovered in a timely manner. Dividing the path detection results into the first detection result (which can detect the second service node) and the second detection result (which cannot detect the second service node) enables the system to clearly distinguish the effectiveness of the routing path, so as to quickly respond and take measures, such as selecting an alternative path or troubleshooting. This path detection mechanism improves the detection capability of the network, ensures the high reliability of data transmission, and also optimizes the fault diagnosis and recovery process, ultimately improving the stability and service quality of the entire distributed network.

[0194] As an example, referring to FIG9 , when the first routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422, service node 421 is the first service node, and routing node 414 adjacent to the first service node (service node 421) in the first routing path is determined as the first routing node. The first service node (service node 421) sends a path detection message carrying the first routing path to the first routing node (routing node 414). When routing node 414 is not the first routing node that has failed, routing node 415 is detected. Node 414 sends a path detection message to routing node 411. When routing node 411 is the first routing node that has failed, routing node 411 sends feedback information to routing node 414 indicating that the path detection message cannot detect the second service node. Routing node 414 sends the feedback information to service node 421. When the feedback information indicates that the path detection message cannot detect the second service node, the path detection result is determined as a second detection result indicating that there is a first routing node that has failed among at least one routing node included in the first routing path.

[0195] As an example, referring to Figure 10, when the first routing path is: service node 421-routing node 414-service node 422, service node 421 is the first service node, and routing node 414 adjacent to the first service node (service node 421) in the first routing path is determined to be the third routing node. The first service node (service node 421) sends a path detection message carrying the first routing path to the third routing node (routing node 414). When routing node 414 is not the first routing node that has failed, routing node 414 sends the path detection message to the second service node 422, and sends a first detection result indicating that there is no first routing node that has failed among at least one routing node included in the first routing path to routing node 414 with reference to routing node 422. Routing node 414 feeds back the first detection result to the first service node 421, and the first service node 421 forwards the first detection result to the management node 40.

[0196] In this way, since the path detection message carries the first routing path and does not carry routing data, the transmission time of the path detection message is effectively reduced through the lightweight path detection message, thereby improving the detection efficiency of the path detection, so that the first routing node where the fault occurs in the first routing path can be quickly determined.

[0197] In some embodiments, after performing path detection on the first routing path and obtaining the path detection result, data routing can also be performed in the following manner: obtaining routing data in response to a data routing instruction; and performing data routing according to the first routing path based on the routing data in response to the absence of a faulty first routing node in at least one routing node.

[0198] In some embodiments, when the triggering timing for data routing is after obtaining the path detection result, when the path detection result indicates that there is no faulty first routing node in the first routing path, then data routing can be performed directly according to the first routing path based on the obtained routing data.

[0199] In some embodiments, the triggering timing for the above-mentioned data routing is after obtaining the path detection result. When the path detection result indicates that there is a faulty first routing node in the first routing path, data routing can be performed according to the second routing path based on the obtained routing data.

[0200] As an example, assume we have a distributed network consisting of service node A (the first service node), service node Z (the second service node), and multiple routing nodes, which together form the network's communication infrastructure. Service node A currently needs to send a batch of data to service node Z. During the detection process, service node A identifies an adjacent routing node as the third routing node and sends it a detection message carrying information about the first routing path. The third routing node processes the detection message and returns feedback. Assume the feedback indicates that the path detection message successfully reached service node Z, indicating that the first routing path is valid. After receiving the path detection results, service node A receives a data routing instruction instructing it to begin sending data to service node Z. Simultaneously, service node A obtains routing data, which may include information such as the destination address, packet size, and transport protocol. Before beginning data routing, service node A checks all involved routing nodes to ensure that no first routing nodes have failed. This step is accomplished by monitoring the system's real-time status information or by sending heartbeat signals to routing nodes. After confirming that all routing nodes are functioning properly, service node A begins sending data to service node Z along the first routing path based on the routing data. The data will pass through a series of routing nodes, each of which forwards the data according to the routing information in the data packet until it reaches its final destination.

[0201] In this way, after performing path detection on the first routing path and obtaining the detection results, routing data is obtained according to the data routing instructions. After confirming that at least one routing node is not faulty, data routing is performed based on this routing data. This ensures that the path the data passes through is verified before it is sent, effectively avoiding data transmission failures caused by path failures, thereby improving the success rate and reliability of data transmission. It also helps to reduce network delays caused by routing errors or faulty nodes and optimizes data transmission efficiency. At the same time, this real-time status-based routing decision-making mechanism enhances the flexibility and adaptability of the network, enabling the system to quickly respond to network changes, maintain business continuity, and improve overall network performance and user experience.

[0202] In some embodiments, the above-mentioned data routing based on routing data and according to the first routing path can be achieved as follows: the routing node adjacent to the first service node in the first routing path is determined as the third routing node; the routing data and the first routing path are message-fused to obtain the first routing message, and the first routing message is sent to the third routing node.

[0203] In some embodiments, since it has been determined that there is no faulty first routing node in the first routing path before data routing is performed according to the first routing path based on the routing data, the routing data and the first routing path can be message-fused to obtain a first routing message, and the first routing message can be sent to the first routing node, thereby routing the routing data according to the first routing path to the end point of the first routing path.

[0204] As an example, referring to Figure 9, when the first routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422, service node 421 is the first service node, and routing node 414 adjacent to the first service node (service node 421) in the first routing path is determined as the first routing node. The first service node (service node 421) sends a first routing message to the first routing node (routing node 414), routing node 414 sends the first routing message to routing node 411, routing node 411 sends the first routing message to routing node 415, and routing node 415 sends the first routing message to the second service node 422, thereby achieving routing data from the routing node to the second routing node along the first routing path.

[0205] As an example, referring to Figure 10, when the first routing path is: business node 421-routing node 414-business node 422, business node 421 is the first business node, and routing node 414 adjacent to the first business node (business node 421) in the first routing path is determined as the first routing node. The first business node (business node 421) sends a first routing message to the first routing node (routing node 414), and routing node 414 sends the first routing message to the second business node 422, thereby achieving routing data from the routing node to the second routing node according to the first routing path.

[0206] In this way, since it has been determined that there is no faulty first routing node in the first routing path before data routing is performed according to the first routing path based on the routing data, the routing data and the first routing path can be message-fused to obtain the first routing message, and the first routing message can be sent to the first routing node without repeated message transmission, thereby achieving routing of the routing data according to the first routing path to the end point of the first routing path (the second routing node), thereby accurately achieving data routing based on the first routing path.

[0207] In other embodiments, after step 101, path detection may be performed without using a path detection message. It is also possible to accurately determine whether the first routing path includes the faulty first routing node, as described below.

[0208] In some embodiments, after step 101 above, data routing of the first routing path may also be performed in the following manner: in response to a data routing instruction, routing data is obtained, and the routing data and the first routing path are message-fused to obtain a first routing message; a routing node adjacent to the first service node in the first routing path is determined as a third routing node, and the first routing message is sent to the first routing node.

[0209] In some embodiments, when the triggering timing for data routing (the timing for generating data routing instructions) is when it is not yet known whether there is a faulty first routing node in the first routing path, the routing data and the first routing path can be message-fused to obtain a first routing message. At this time, it is assumed that there is no faulty first routing node in the first routing path, and the first routing path is directly used for data routing. The routing node adjacent to the first business node in the first routing path is determined as the third routing node, and the first routing message is sent to the first routing node, and data routing continues through the first routing node until it is routed to the faulty first routing node or the second business node (the end point of the first routing path).

[0210] As an example, referring to Figure 9, when the first routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422, service node 421 is the first service node, and routing node 414, which is adjacent to the first service node (service node 421) in the first routing path, is determined as the first routing node. The first service node (service node 421) sends a message carrying the first routing message to the first routing node (routing node 414). When routing node 414 is not the first routing node that has failed, routing node 414 sends the first routing message to routing node 411. When routing node 411 is not the first routing node that has failed, routing node 411 sends the first routing message to routing node 415. When routing node 415 is not the first routing node that has failed, routing node 415 sends the first routing message to service node 422.

[0211] As an example, referring to FIG9 , when the first routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422, service node 421 is the first service node. Routing node 414, which is adjacent to the first service node (service node 421) in the first routing path, is determined as the first routing node. The first service node (service node 421) sends an initial routing message to the first routing node (routing node 414). When routing node 414 is not the first routing node that has failed, routing node 414 sends the initial routing message to routing node 411. When routing node 411 is the first routing node that has failed, routing node 411 sends feedback information to routing node 414 indicating that the initial routing message cannot detect the second service node. Routing node 414 sends the feedback information to service node 421. When the feedback information indicates that the path detection message cannot detect the second service node, the path information of the first routing path is determined as the target path information.

[0212] In some embodiments, the target path information is used to indicate that a faulty first routing node exists among the at least one routing node included in the first routing path.

[0213] In this way, routing data is fused with the first routing path to generate a first routing message, which is then used for data routing. This message fusion simplifies the data transmission process, reduces transmission overhead, and improves data transmission efficiency. At the same time, a third routing node adjacent to the first service node is identified as the next hop for data transmission, ensuring that data has undergone precise path planning before entering a complex network environment, thereby reducing uncertainty during data transmission. This fusion and directional transmission method also helps optimize the utilization of network resources, reduce potential network congestion, improve overall network performance, and ultimately provide users with faster and more stable data transmission services.

[0214] In some embodiments, after the first routing message is sent to the first routing node, the target path information may be determined as follows: in response to fault information sent by a routing node in the first routing path, the path information of the first routing path is determined as the target path information.

[0215] In some embodiments, the target path information is used to indicate that a faulty first routing node exists among the at least one routing node included in the first routing path.

[0216] In some embodiments, after sending the first routing message to the first routing node, reference routing information may be determined as follows: in response to routing success information sent by the second service node in the first routing path, path information of the first routing path may be determined as reference path information.

[0217] In some embodiments, the reference path information is used to indicate that there is no failed first routing node among the at least one routing node included in the first routing path.

[0218] As an example, assume that service node A (the first service node) needs to send data to service node Z (the second service node). Service node A first merges the routing data with the first routing path, generates a first routing message, and sends this message to the first routing node adjacent to it. Service node A sends the first routing message to the first routing node, which is the first routing node on the first routing path. The first routing message passes through each routing node on the first routing path and eventually reaches service node Z. After successfully receiving the data, service node Z will send a routing success message back to service node A to confirm that the data has been successfully transmitted to the destination. After receiving the routing success message sent by service node Z, service node A will record the path information of the first routing path and determine it as the reference path information. This reference path information indicates that during the entire data transmission process, at least one routing node on the first routing path (actually the entire path) did not fail, ensuring the success of the data transmission.

[0219] In this way, since the first routing message carries the first routing path and the first routing message carries routing data, path detection can also be achieved in the process of using the first routing message for data routing. When there is no faulty first routing node in the first routing path, the time consumption caused by path detection can be effectively avoided, and the duration of path detection is greatly shortened, thereby effectively improving the routing efficiency of data routing.

[0220] In step 102, in response to a first routing node having a fault among at least one routing node, a path acquisition request is sent.

[0221] In some embodiments, the at least one routing node refers to a routing node in the first routing path, that is, in response to a first routing node having a fault in at least one routing node, it refers to a first routing node having a fault in the first routing path.

[0222] In some embodiments, step 102 may be implemented as follows: in response to a faulty first routing node in the first routing path, the first service node sends a path acquisition request to the management node.

[0223] As an example, referring to FIG9 , when the first routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422, the first service node (service node 421) sends a path acquisition request to management node 40 in response to the presence of a faulty first routing node in the first routing path.

[0224] In some embodiments, the management node is used to generate a routing path for the service node to perform data routing.

[0225] In this way, when the first service node detects that a faulty first routing node exists in the first routing path, it sends a path acquisition request to the management node. This mechanism ensures that when a faulty node appears in the network, the first service node can promptly report the situation to the superior management node, thereby triggering the fault response and path reconstruction process. This proactive error reporting mechanism enables network administrators to quickly identify and locate the fault point, reducing the time required for fault diagnosis. It allows the system to adjust routing strategies in real time, avoid faulty nodes, and select healthy paths for data transmission, thereby improving the robustness and reliability of the network, ensuring business continuity, and optimizing the user experience. Overall, this strategy reduces the network interruption time and potential data loss risk caused by faults, and improves the stability and efficiency of the entire distributed network.

[0226] In some embodiments, referring to FIG. 11 , FIG. 11 is a flowchart diagram three of a data routing method provided in an embodiment of the present application. Step 102 shown in FIG. 7 can be implemented through steps 1021 to 1022 shown in FIG. 11 .

[0227] In step 1021 , in response to a first routing node having a fault in the first routing path and the number of the third routing path being one, a path acquisition request is sent.

[0228] In some embodiments, the third routing path refers to a routing path initially sent by the management node to the first service node. The management node may initially send at least one third routing path starting from the first service node to the first service node.

[0229] In some embodiments, in response to a first routing node that has failed in the first routing path and the number of third routing paths received by the first service node is one, the first routing path needs to be modified to avoid the failed first routing node. The first service node can only send a path acquisition request to the management node to obtain a second routing path that does not include the failed first routing node.

[0230] As an example, referring to FIG9 , when the first routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422, in response to the presence of a faulty first routing node in the first routing path and the number of third routing paths is one, service node 421 sends a path acquisition request to management node 40.

[0231] In step 1022, in response to a faulty first routing node in the first routing path, a plurality of third routing paths, and each third routing path except the first routing path includes the faulty first routing node, a path acquisition request is sent.

[0232] In some embodiments, in response to the presence of a failed first routing node in the first routing path and the number of third routing paths being multiple, the first service node needs to modify the first routing path to avoid the failed first routing node. It can first be determined from the multiple third routing paths whether there is a third routing path that does not include the failed first routing node. When all third routing paths other than the first routing path include the failed first routing node, a path acquisition request can only be sent to the management node to obtain a second routing path that does not include the failed first routing node.

[0233] As an example, referring to FIG9 , when the first routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422, the first service node (service node 421) sends a path acquisition request to management node 40 in response to the presence of a faulty first routing node in the first routing path, the number of third routing paths being multiple, and each third routing path other than the first routing path including the faulty first routing node.

[0234] In this way, by sending a path acquisition request in response to the presence of a faulty first routing node in the first routing path and the number of third routing paths being one, or sending a path acquisition request in response to the presence of a faulty first routing node in the first routing path and the number of third routing paths being multiple, and each third routing path other than the first routing path including the faulty first routing node, the first business node will request the second routing path from the management node only when the first business node does not locally store the third routing path without the faulty first routing node, thereby effectively reducing the frequency of requesting the second routing path from the management node, effectively saving the time for fault repair, and effectively improving the obstacle avoidance efficiency.

[0235] In step 103, a second routing path returned based on the path acquisition request is received.

[0236] In some embodiments, the second routing path is different from the first routing path, and the second routing path does not include the failed first routing node.

[0237] In some embodiments, the first service node receives the second routing path returned by the management node based on the path acquisition request.

[0238] As an example, referring to FIG. 9 and FIG. 10 , when the first service node is the service node 421 , the service node 421 receives the second routing path returned by the management node 40 based on the path acquisition request.

[0239] In step 104, data routing is performed according to the second routing path.

[0240] In some embodiments, the above step 104 may be implemented in the following manner: based on the routing data, data routing is performed along the second routing path.

[0241] As an example, referring to FIG. 9 and FIG. 10 , when the first service node is the service node 421 , the service node 421 performs data routing according to the second routing path based on the routing data.

[0242] In some embodiments, after the first service node receives the first routing path, it does not perform path detection and generates a first routing message. The above-mentioned data routing according to the second routing path based on the routing data can be achieved by: determining the routing node adjacent to the first service node in the second routing path as the second routing node; fusing the routing data and the second routing path to obtain a second routing message, and sending the second routing message to the second routing node.

[0243] In some embodiments, after the first service node sends the second routing message to the second routing node, the second routing node continues to route data along the second routing path based on the routing data until the routing data reaches the end point of the second routing path.

[0244] As an example, referring to Figure 9, when the second routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422, service node 421 is the first service node, and routing node 414 adjacent to the first service node (service node 421) in the second routing path is determined as the second routing node. The first service node (service node 421) sends a second routing message to the second routing node (routing node 414), routing node 414 sends the second routing message to routing node 411, routing node 411 sends the second routing message to routing node 415, and routing node 415 sends the second routing message to second service node 422, thereby achieving routing data from routing node to second routing node along the second routing path.

[0245] As an example, referring to Figure 10, when the second routing path is: business node 421-routing node 414-business node 422, business node 421 is the first business node, and routing node 414 adjacent to the first business node (business node 421) in the second routing path is determined as the first routing node. The first business node (business node 421) sends a first routing message to the first routing node (routing node 414), and routing node 414 sends the first routing message to the second business node 422, thereby achieving routing data from the routing node to the second routing node according to the second routing path.

[0246] In some embodiments, after the first service node receives the first routing path, it performs path detection. When no first routing message is generated, the data routing according to the second routing path can be implemented as follows: the first routing path in the first routing message is updated to the second routing path to obtain the second routing message; the routing node adjacent to the first service node in the second routing path is determined as the second routing node, and the second routing message is sent to the second routing node.

[0247] In some embodiments, after the first service node sends the second routing message to the second routing node, the second routing node continues to route data along the second routing path based on the routing data until the routing data reaches the end point of the second routing path.

[0248] As an example, referring to Figure 9, when the second routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422, service node 421 is the first service node, and routing node 414 adjacent to the first service node (service node 421) in the second routing path is determined as the second routing node. The first service node (service node 421) sends a second routing message to the second routing node (routing node 414), routing node 414 sends the second routing message to routing node 411, routing node 411 sends the second routing message to routing node 415, and routing node 415 sends the second routing message to second service node 422, thereby achieving routing data from routing node to second routing node along the second routing path.

[0249] As an example, referring to Figure 10, when the second routing path is: business node 421-routing node 414-business node 422, business node 421 is the first business node, and routing node 414 adjacent to the first business node (business node 421) in the second routing path is determined as the first routing node. The first business node (business node 421) sends a first routing message to the first routing node (routing node 414), and routing node 414 sends the first routing message to the second business node 422, thereby achieving routing data from the routing node to the second routing node according to the second routing path.

[0250] In this manner, the first service node receives a first routing path originating from the first service node, and in response to at least one routing node having a faulty first routing node, sends a path acquisition request, receives a second routing path returned based on the path acquisition request, and then routes data according to the second routing path. In this manner, if at least one routing node included in the first routing path has a faulty first routing node, the request obtains a second routing path excluding the faulty first routing node, and data is routed along the second routing path. This ensures that data routing proceeds normally without being affected by the faulty first routing node, effectively reducing the impact of path failures on data routing.

[0251] Refer to Figure 12, which is a flow chart of the data routing method provided in an embodiment of the present application. Steps 201 to 202 shown in Figure 12 will be used for explanation. The data routing method provided in an embodiment of the present application can be implemented by a server or a terminal alone, or by a server and a terminal in collaboration. The following will take the server alone as an example to implement the data routing method provided in an embodiment of the present application from the perspective of a routing node to illustrate the data routing method.

[0252] In some embodiments, the above-mentioned routing node is any routing node in the distributed service system provided in the embodiment of the present application. The data routing method provided in the embodiment of the present application will be described below from the perspective of the routing node.

[0253] In step 201, a first routing path is received, where the first routing path includes routing nodes for performing data routing.

[0254] In some embodiments, the routing node receives a message including a routing node for routing the data.

[0255] As an example, referring to FIG9 , when the first routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422, and the routing node is routing node 414, routing node 414 receives the first routing path, and the first routing path includes routing node 414 for data routing.

[0256] As an example, referring to FIG9 , when the first routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422, and the routing node is routing node 411, routing node 411 receives the first routing path, and the first routing path includes routing node 411 for data routing.

[0257] As an example, referring to FIG10 , when the first routing path is: service node 421 - routing node 414 - service node 422, and the routing node is routing node 414, routing node 414 receives the first routing path, which includes routing node 414 for data routing.

[0258] In some embodiments, after step 201 above, the first routing node that has failed can be determined in the following manner: when the number of received first routing paths is at least two, for each first routing path, the first node of the routing node in the first routing path is determined; when there are at least two identical first nodes in the received first routing path, the routing node is determined as the first routing node that has failed.

[0259] In some embodiments, when the number of first routing paths received by the routing node at the same time is at least two, a first node of the routing nodes in the first routing path is determined for each first routing path.

[0260] As an example, referring to Figure 9, when the routing node is routing node 414, routing node 414 receives a first routing path A: service node 421-routing node 414-routing node 411-routing node 415-service node 422 and a first routing path B: service node 421-routing node 414-service node 422 at the same time. The first node of the routing node (routing node 414) in the first routing path A is routing node 411, and the first node of the routing node (routing node 414) in the first routing path A is service node 422. Therefore, there are not at least two identical first nodes in the first routing path received by the routing node, and the routing node is not determined to be the first routing node that has failed.

[0261] As an example, see Figure 16, which is a third schematic diagram of the principles of the data routing method provided in an embodiment of the present application. The distributed service system shown in Figure 16 includes business node 1, business node 2, business node 3, business node 4, routing node LA1, routing node LA2, routing node LA3, routing node LA4, routing node LC1, and routing node LC2. When the routing node is routing node LA1, the number of first routing paths received by routing node LA1 at the same time is two, and there are at least two identical first nodes (routing node LC1) in the first routing paths received by routing node LA1, and routing node LA1 is determined to be the first routing node that has failed.

[0262] In this way, when at least two first routing path information is received, the system can compare the first nodes in these paths. If it is found that at least two paths have the same first node, this usually means that the node may be a fault point because it has problems on different paths. This strategy helps to quickly locate routing nodes that may not be working properly due to overload, configuration errors or hardware failures. Timely identification of faulty nodes can reduce the time of network interruption, improve fault response speed, and maintain high network availability. It can also reduce the false alarm rate because it determines the faulty node based on the consensus of multiple paths, rather than the anomaly of a single path. The fault detection mechanism helps to improve the stability and reliability of the network, optimize the allocation of network resources, and improve the overall quality of network services.

[0263] In some embodiments, the first node is an end point of the first routing path, or a path distance between the first node and the end point of the first routing path is less than or equal to a path distance between the first node and a starting point of the first routing path.

[0264] In some embodiments, the first node corresponding to the routing node is a next-hop node of the routing node in the first routing path. The first node may be a service node or a routing node.

[0265] In some embodiments, after the first node of the routing nodes in the first routing path is determined as described above, the first routing node that has failed can also be determined in the following manner: when there are at least two identical first nodes in the received first routing path, any one of the received first routing paths is determined as the first routing path; and each first routing path other than the first routing path is determined as the second routing path; for each second routing path, when the first node in the second routing path is not the end point of the second routing path, the first node in the second routing path is determined as the first routing node that has failed.

[0266] As an example, refer to Figure 17, which is a fourth principle schematic diagram of the data routing method provided in an embodiment of the present application. The distributed service system shown in Figure 17 includes business node 1, business node 2, business node 3, business node 4, routing node LA1, routing node LA2, routing node LA3, routing node LA4, routing node LC1 and routing node LC2. When the routing node is routing node LC1, when there are at least two identical first nodes (routing node LA3) in the first routing path received by routing node LC1, any one of the received first routing paths is determined as the first routing path (for example, the first routing path may be: business node 1-routing node LA1-routing node LC1-routing node LA3-business node 3); and each first routing path other than the first routing path is determined as a second routing path (for example, the second routing path may be: business node 2-routing node LA2-routing node LC1-routing node LA3-business node 4); for each second routing path, when the first node (routing node LA3) in the second routing path is not the end point of the second routing path (business node 4), the first node (routing node LA3) in the second routing path is determined as the first routing node that has failed.

[0267] In some embodiments, the first routing path includes at least one second node communicatively connected to the routing node.

[0268] In some embodiments, the above-mentioned determination of the first node of the routing node in the first routing path can be achieved as follows: perform the following processing for each second node respectively: when the second node is the end point of the first routing path, determine the second node as the first node; when the path distance between the second node and the end point of the first routing path is less than the path distance between the second node and the starting point of the first routing path, determine the second node as the first node; when the path distance between the second node and the end point of the first routing path is equal to the path distance between the second node and the starting point of the first routing path, and the path distance between the routing node and the starting point of the first routing path is less than the path distance between the routing node and the end point of the first routing path, determine the second node as the first node.

[0269] In some embodiments, the first node in each first routing path, that is, the starting routing node of each path, is determined. All received first routing paths are checked to find those paths with the same first node. If there are at least two paths with the same first node, this indicates that these paths may point to a potential fault node in common. From these paths with the same first node, arbitrarily select one as the first routing path. The remaining paths are defined as second routing paths for subsequent fault diagnosis. For each second routing path, check whether its first node is the end point of the path. If it is not the end point, this means that the node serves as the starting node in multiple paths but has not completed its routing task, and is therefore likely to be a fault node.

[0270] In some embodiments, the path distance is used to indicate the distance between two different path nodes in the first routing path.

[0271] As an example, when the first routing path is node A-node B-node C-node D-node E, the routing node is node C, the second node of node C is node B and node D, and for node D, when the path distance between the second node and the end point of the first routing path (node ​​E) is less than the path distance between the second node and the starting point of the first routing path, the second node (node ​​D) is determined as the first node.

[0272] As an example, when the first routing path is node A-node B-node C-node D-node E, and the routing node is node B, the second node of node B is node A and node C. For node C, the path distance between the second node (node ​​C) and the end point (node ​​E) of the first routing path is equal to the path distance between the second node (node ​​C) and the starting point (node ​​A) of the first routing path, and the path distance between the routing node (node ​​B) and the starting point (node ​​A) of the first routing path is less than the path distance between the routing node (node ​​B) and the end point (node ​​E) of the first routing path, and the second node (node ​​C) is determined as the first node.

[0273] As an example, when the first routing path is node A-node B-node C-node D-node E, the routing node is node D, the second node of node B is node C and node E, and for node E, when the second node (node ​​E) is the end point of the first routing path, the second node (node ​​E) is determined to be the first node.

[0274] In this way, after determining the first node in the first routing path, by comparing the first nodes in multiple paths, if at least two paths are found to have the same first node, one of them is selected as the first routing path, and the remaining ones are selected as second routing paths. This can reduce misjudgments and concentrate resources on detecting suspicious nodes. For each second routing path, the first node is further checked to see if it is the end point. If not, the node is marked as a faulty node. This strategy not only helps to quickly locate potential faulty nodes that appear repeatedly in different paths, but also reduces the number of paths that require further inspection by distinguishing between the first routing path and the second routing path, thereby optimizing the fault detection process. In addition, this hierarchical fault determination method helps network managers allocate resources more efficiently, reduce troubleshooting time, improve network reliability and service quality, and ensure the continuity and stability of user services.

[0275] In step 202, in response to the routing node not being the failed first routing node and the failed first routing node existing in the first routing path, a second routing path is received.

[0276] In some embodiments, the second routing path is different from the first routing path, and the second routing path does not include the failed first routing node.

[0277] As an example, referring to FIG9 , when the routing node is routing node 414, routing node 414 receives the second routing path sent by service node 421 in response to the routing node not being the first routing node that has failed and the first routing node that has failed being present in the first routing path.

[0278] As an example, referring to FIG10 , when the routing node is routing node 411, routing node 411 receives the second routing path sent by service node 414 in response to the routing node not being the first routing node that has failed and the first routing node that has failed existing in the first routing path.

[0279] In some embodiments, referring to FIG. 13 , FIG. 13 is a flowchart diagram five of a data routing method provided in an embodiment of the present application. Step 202 shown in FIG. 12 can be implemented through steps 2021 to 2022 shown in FIG. 13 .

[0280] In step 2021, a second routing message carrying a second routing path is received.

[0281] In some embodiments, the second routing message carries a second routing path and routing data.

[0282] As an example, referring to FIG. 9 , when the routing node is routing node 414 , routing node 414 receives a second routing message carrying a second routing path.

[0283] In step 2022, path extraction is performed on the second routing message to obtain a second routing path.

[0284] In some embodiments, since the second routing message carries the second routing path, the second routing path can be directly extracted from the second routing message.

[0285] In some embodiments, after executing step 202 above, the second routing message may be sent in the following manner: determining a third node of routing nodes in the second routing path; and sending the second routing message to the third node.

[0286] As an example, referring to Figure 9, when the routing node is routing node 414, the third node of routing node 414 is routing node 411, then routing node 414 can send a second routing message to routing node 411, so that routing node 411 sends the second routing message to routing node 415.

[0287] In some embodiments, the third node is the end point of the second routing path, or the path distance between the third node and the end point of the second routing path is less than or equal to the path distance between the third node and the start point of the second routing path.

[0288] This allows network systems to analyze and record data transmission paths along secondary routing paths in detail, providing crucial transparency and visibility for network management. By extracting these paths, network administrators can clearly identify and monitor each node through which data flows. This helps quickly locate the specific problem in the event of a network failure or performance issue. It also helps optimize network design because by analyzing secondary routing paths, administrators can identify potential bottlenecks and unnecessary routing hops, allowing them to adjust the network structure for improved efficiency.

[0289] In some embodiments, the second routing path includes at least one second node that is communicatively connected to the routing node. The above-mentioned determination of the third node of the routing node in the second routing path can be achieved as follows: the following processing is performed for each second node: when the second node is the end point of the first routing path, the second node is determined as the third node; when the path distance between the second node and the end point of the first routing path is less than the path distance between the second node and the starting point of the first routing path, the second node is determined as the third node; when the path distance between the second node and the end point of the first routing path is equal to the path distance between the second node and the starting point of the first routing path, and the path distance between the routing node and the starting point of the first routing path is less than the path distance between the routing node and the end point of the first routing path, the second node is determined as the third node.

[0290] As an example, when the second routing path is node A-node B-node C-node D-node E, and the routing node is node C, the second node of node C is node B and node D. For node D, when the path distance between the second node and the end point of the second routing path (node ​​E) is less than the path distance between the second node and the starting point of the second routing path, the second node (node ​​D) is determined as the third node.

[0291] As an example, when the second routing path is node A-node B-node C-node D-node E, and the routing node is node B, the second node of node B is node A and node C. For node C, the path distance between the second node (node ​​C) and the end point (node ​​E) of the second routing path is equal to the path distance between the second node (node ​​C) and the starting point (node ​​A) of the second routing path, and the path distance between the routing node (node ​​B) and the starting point (node ​​A) of the second routing path is less than the path distance between the routing node (node ​​B) and the end point (node ​​E) of the second routing path, and the second node (node ​​C) is determined as the third node.

[0292] In this way, by determining the second node that meets specific conditions as the third node, the system can ensure that the optimal or suboptimal path is selected among multiple possible routing paths, thereby avoiding unnecessary data transmission delays and possible network congestion. When the second node is the end point of the first routing path, determining it as the third node can reduce the number of additional routing hops and improve data transmission efficiency; when the distance between the second node and the end point is less than the distance to the starting point, this processing helps to avoid detours and reduce transmission time; when the distance between the second node and the end point and the starting point is equal, but the direct distance to the starting point is shorter, determining it as the third node also helps to optimize path selection. This strategy comprehensively considers the length and number of hops of the path, allowing the network to select routes more intelligently, improving the speed and efficiency of data transmission, while also facilitating network load balancing and resource optimization, thereby improving the overall network performance and user experience.

[0293] As an example, when the second routing path is node A-node B-node C-node D-node E, the routing node is node D, the second node of node B is node C and node E, and for node E, when the second node (node ​​E) is the end point of the second routing path, the second node (node ​​E) is determined as the third node.

[0294] In this way, the routing node receives a first routing path, which includes a routing node for performing data routing. The routing node receives a second routing path in response to the fact that the routing node is not the failed first routing node and that the failed first routing node exists in the first routing path, and performs data routing through the second routing path, thereby ensuring that data routing is performed normally without being affected by the failed first routing node, thereby effectively reducing the impact of the path failure on data routing.

[0295] Refer to Figure 14, which is a flow chart of the data routing method provided in an embodiment of the present application. Steps 301 to 303 shown in Figure 14 will be used for explanation. The data routing method provided in an embodiment of the present application can be implemented by a server or a terminal alone, or by a server and a terminal in collaboration. The following will take the server alone as an example to implement the data routing method provided in an embodiment of the present application from the perspective of a management node to illustrate the data routing method.

[0296] In step 301, a first routing path starting from a first service node is generated and sent to the first service node. The first routing path includes at least one routing node for data routing.

[0297] In some embodiments, the management node sends the first routing path to a service node (first service node) corresponding to a starting point of the first routing path, where the first routing path includes at least one routing node for data routing.

[0298] In some embodiments, the above-mentioned generation of the first routing path with the first business node as the starting point can be achieved by: receiving a data routing request sent by the first business node, the data routing request carrying the second business node corresponding to the end point of the first routing path; generating at least one third routing path with the first business node as the starting point and the second business node as the end point, the routing nodes in different third routing paths being at least partially different; and determining the first routing path based on each third routing path.

[0299] In some embodiments, the first business node and the second business node are located in the same distributed service system. The generation of at least one third routing path with the first business node as the starting point and the second business node as the end point can be achieved in the following manner: obtaining each routing node in the distributed service system where the first business node and the second business node are located, arranging each routing node to obtain at least one fifth routing path, wherein the fifth routing path includes at least one routing node in the distributed service system; performing the following processing for each fifth routing path: merging the routing node path, the first business node, and the second business node in the order of the first business node, the fifth routing path, and the second business node to obtain a third routing path corresponding to the fifth routing path.

[0300] In some embodiments, the above-mentioned permutation refers to a full permutation, which refers to the process of taking out m (m is less than or equal to n) routing nodes from n different routing nodes and arranging them in a row in a certain order to obtain a routing node path, that is, the process of taking out m routing nodes from n routing nodes to obtain a routing node path.

[0301] As an example, the number of routing node paths is positively correlated with the number of routing nodes in the distributed service system. The expression for the number of routing node paths can be: S1 = n(n-1)(n-2)…3×2×1=n! (2)

[0302] Wherein, S is used to indicate the number of routing node paths, and n is used to indicate the number of routing nodes in the distributed service system.

[0303] As an example, the first business node is node A, the routing node path is {node B, node C, node D}, and the second business node is node E. In the order of the first business node (node ​​A), the routing node path {node B, node C, node D} and the second business node (node ​​E), the routing node path, the first business node and the second business node are merged to obtain a third routing path {node A, node B, node C, node D, node E} corresponding to the routing node path.

[0304] As an example, referring to Figure 10, when the first service node is service node 421 shown in Figure 10, management node 40 receives a data routing request sent by service node 421, and the data routing request carries the second service node corresponding to the end point of the first routing path (for example, service node 422 shown in Figure 10). With the first service node as the starting point and the second service node as the end point, at least one third routing path is generated, for example, third routing path A (service node 421, routing node 414, routing node 411, routing node 415, service node 422); third routing path B (service node 421, routing node 414, service node 422); based on third routing path A and third routing path B, the first routing path is determined.

[0305] In this way, the construction of the fifth routing path enables the system to identify multiple possible data transmission paths within the distributed service system, each of which includes at least one routing node within the system, providing flexibility and redundancy for data transmission. Processing is performed on each fifth routing path, that is, the routing node path is merged with the first service node and the second service node to generate a third routing path, which helps optimize the data transmission process. This method ensures that data follows a clear and efficient path during transmission, and can also dynamically adjust the path based on changes in network conditions. This not only improves the speed and efficiency of data transmission, but also enhances the adaptability and robustness of the network, helping to achieve better resource management and business continuity in a distributed environment.

[0306] In some embodiments, the above-mentioned determination of the first routing path based on each third routing path can be achieved as follows: when the number of third routing paths is one, the third routing path is determined as the second routing path; when the number of third routing paths is multiple, the third routing path with the highest path transmission performance is determined as the first routing path, or each third routing path is determined as the first routing path.

[0307] Continuing with the above example, the path transmission performance of the third routing path A is greater than that of the third routing path B. When there are multiple third routing paths, the third routing path A having the highest path transmission performance is determined as the first routing path, or both the third routing path A and the third routing path B are determined as the first routing path.

[0308] In this way, when the number of third routing paths is one, the third routing path is determined as the second routing path; when the number of third routing paths is multiple, the third routing path with the highest path transmission performance is determined as the first routing path, so that the number of first routing paths sent is one, thereby effectively saving the data transmission volume of the first routing path and effectively improving routing efficiency.

[0309] In this way, when there are multiple third routing paths, each third routing path is determined as a first routing path, and each first routing path is sent, thereby providing the recipient of the first routing path with multiple alternative solutions for the first routing path, avoiding the recipient of the first routing path from repeatedly requesting the path, thereby effectively saving the number of repeated transmissions of the first routing path, and effectively improving routing efficiency.

[0310] As an example, referring to Figure 9, when the business node corresponding to the starting point of the first routing path is business node 421, the management node 40 sends at least one first routing path to the business node 421 corresponding to the starting point of the first routing path, and the starting point of each first routing path sent to the business node 421 is the business node 421.

[0311] As an example, referring to Figure 9, when the business node corresponding to the starting point of the first routing path is business node 422, the management node 40 sends at least one first routing path to the business node 422 corresponding to the starting point of the first routing path, and the starting point of each first routing path sent to the business node 422 is the business node 422.

[0312] In step 302, in response to a path acquisition request sent by the first service node, a second routing path starting from the first service node is generated.

[0313] In some embodiments, the at least one routing node in step 302 above refers to a routing node in the first routing path, that is, the management node receives a path acquisition request in response to the presence of a faulty first routing node in the first routing path, and the path acquisition request is generated when a faulty first routing node exists in at least one routing node.

[0314] In some embodiments, the above-mentioned generation of the second routing path with the first service node as the starting point can be achieved by: obtaining a second routing node corresponding one-to-one to each first routing node that has failed, where the second routing node does not have a failure and does not belong to the first routing path; updating each first routing node that has failed in the first routing path to a corresponding second routing node, thereby obtaining the second routing path.

[0315] In some embodiments, the one-to-one correspondence between the failed first routing node and the second routing node means that one failed first routing node corresponds to one second routing node, different failed first routing nodes correspond to different second routing nodes, and different second routing nodes correspond to different failed first routing nodes.

[0316] As an example, referring to Figure 9, when the first routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422, and the first routing node that fails is routing node 411, the first routing node that fails (routing node 414) in the first routing path: service node 421-routing node 414-routing node 411-routing node 415-service node 422 is updated to the corresponding second routing node (routing node 412), obtaining the second routing path: service node 421-routing node 412-routing node 411-routing node 415-service node 422.

[0317] As an example, referring to Figure 10, when the first routing path is: business node 421-routing node 414-business node 422, and the first routing node that fails is routing node 414, the first routing node that fails (routing node 414) in the first routing path: business node 421-routing node 414-business node 422 is updated to the corresponding second routing node (routing node 412), obtaining the second routing path: business node 421-routing node 412-business node 422.

[0318] This ensures that when a node in the first routing path fails, alternative routing nodes, namely second routing nodes, can be quickly found. These nodes are not only not faulty, but also do not belong to the original faulty first routing path, thereby avoiding conflicts and interference on the path. By updating the faulty first routing node to the corresponding second routing node, the routing path can be dynamically reconstructed to form a second routing path, which greatly improves the flexibility and robustness of the network. The timely routing node replacement mechanism can reduce the service interruption time caused by failures, maintain business continuity, and optimize user experience. At the same time, this strategy also helps to balance the network load because it can dynamically adjust the data transmission path according to the real-time network status, thereby improving the utilization of network resources, reducing the risk of network congestion, and improving the performance and reliability of the entire network.

[0319] In other embodiments, the above-mentioned generation of the second routing path with the first business node as the starting point can be achieved by: determining the second business node located at the end point of the first routing path; and regenerating the second routing path that does not include the failed first routing node with the first business node as the starting point and the second business node as the end point.

[0320] In some embodiments, the above-mentioned regeneration of the second routing path excluding the failed first routing node with the first business node as the starting point and the second business node as the end point can be achieved as follows: obtaining each routing node in the distributed service system where the first business node and the second business node are located, and determining the routing nodes in the distributed service system other than the failed first routing node as the target routing nodes; arranging each target routing node to obtain at least one target routing node path, wherein the target routing node path includes at least one target routing node in the distributed service system; performing the following processing on each target routing node path: fusing the target routing node path, the first business node, and the second business node in the order of the first business node, the target routing node path, and the second business node to obtain a second routing path corresponding to the target routing node path.

[0321] In some embodiments, the above-mentioned permutation refers to a full permutation, which refers to the process of taking out m (m is less than or equal to n) target routing nodes from n different target routing nodes and arranging them in a row in a certain order to obtain a target routing node path, that is, the process of taking out m target routing nodes from n target routing nodes to obtain a target routing node path.

[0322] As an example, the number of target routing node paths is positively correlated with the number of target routing nodes in the distributed service system. The expression for the number of target routing node paths can be: S2 = t(t-1)(t-2)…3×2×1=t! (3)

[0323] Among them, S2 is used to indicate the number of target routing node paths, and t is used to indicate the number of target routing nodes in the distributed service system.

[0324] As an example, the first business node is node A, the target routing node path is {node B, node C, node D}, and the second business node is node E. In the order of the first business node (node ​​A), the target routing node path {node B, node C, node D} and the second business node (node ​​E), the target routing node path, the first business node and the second business node are merged to obtain the second routing path {node A, node B, node C, node D, node E} corresponding to the target routing node path.

[0325] In this way, by obtaining each routing node in the distributed service system where the first business node and the second business node are located, the routing nodes in the distributed service system, except for the failed first routing node, are determined as target routing nodes. By arranging each target routing node, at least one target routing node path is obtained, so that the generated target routing node path effectively avoids the failed first routing node. By fusing the target routing node path, the first business node, and the second business node in the order of the first business node, the target routing node path, and the second business node, a second routing path corresponding to the routing node path is obtained, so that the generated second routing path has the same starting point and end point as the first routing path and does not include the failed first routing node. Therefore, data routing can be performed through the second routing path, thereby ensuring normal data routing without being affected by the failed first routing node, thereby effectively reducing the impact of path failure on data routing.

[0326] As an example, referring to Figure 10, when the first business node is business node 421 shown in Figure 10, and the first routing node that fails is routing node 415, the management node 40 receives a data routing request sent by business node 421, and the data routing request carries the second business node located at the end point of the first routing path (for example, business node 422 shown in Figure 10). With business node 421 as the starting point and business node 422 as the end point, a second routing path that does not include the failed first routing node 415 is regenerated.

[0327] In step 303, a second routing path is sent to the first service node. The second routing path is different from the first routing path, and the second routing path does not include the first routing node that has failed.

[0328] In some embodiments, the management node sends the second routing path generated based on the path acquisition request to the first service node.

[0329] 9 , the management node 40 sends a second routing path generated based on the path acquisition request to the first service node 421 : service node 421 - routing node 412 - routing node 411 - routing node 415 - service node 422 .

[0330] In this manner, the first service node receives a first routing path originating from the first service node, and in response to at least one routing node having a faulty first routing node, sends a path acquisition request, receives a second routing path returned based on the path acquisition request, and then routes data according to the second routing path. In this manner, if at least one routing node included in the first routing path has a faulty first routing node, the request obtains a second routing path excluding the faulty first routing node, and data is routed along the second routing path. This ensures that data routing proceeds normally without being affected by the faulty first routing node, effectively reducing the impact of path failures on data routing.

[0331] Refer to Figure 15, which is a flow chart of the data routing method provided in an embodiment of the present application. Steps 401 to 408 shown in Figure 15 will be used for explanation. The data routing method provided in an embodiment of the present application can be implemented by a server or a terminal alone, or by a server and a terminal in collaboration. The following will take the implementation of the server alone as an example and explain it from the perspective of a distributed service system.

[0332] In step 401, the management node sends a first routing path to the service node.

[0333] In some embodiments, the management node sends the first routing path to the service node corresponding to the starting point of the first routing path, where the first routing path includes at least one routing node for performing data routing.

[0334] In step 402, the service node receives a first routing path starting from the service node.

[0335] In some embodiments, the first routing path includes at least one routing node for performing data routing.

[0336] In some embodiments, the above-mentioned first business node is the starting point of the first routing path, the first routing path includes a starting point, an end point and an intermediate path point, the starting point and end point of the first routing path are business nodes, and the intermediate path point of the first routing path is a routing node.

[0337] In some embodiments, the first routing path includes at least one routing node for performing data routing.

[0338] As an example, referring to FIG6 , the first service node (service node 421) receives a first routing path with the first service node (service node 421) as the starting point, sent by management node 40 (for example, the first routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422).

[0339] In step 403, the service node sends the first routing path to the routing node.

[0340] As an example, the first service node (service node 421 ) sends a first routing path to routing node 414 .

[0341] In step 404, the routing node receives a first routing path.

[0342] As an example, routing node 414 receives a first routing path.

[0343] In step 405, in response to a first routing node having a fault among at least one routing node, the service node sends a path acquisition request to the management node.

[0344] In some embodiments, the at least one routing node refers to a routing node in the first routing path, that is, in response to a first routing node having a fault in at least one routing node, it refers to a first routing node having a fault in the first routing path.

[0345] As an example, referring to FIG9 , when the first routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422, the first service node (service node 421) sends a path acquisition request to management node 40 in response to the presence of a faulty first routing node in the first routing path.

[0346] In some embodiments, step 405 may be implemented as follows: in response to a first routing node that has failed in the first routing path and there being one third routing path, sending a path acquisition request. In response to a first routing node that has failed in the first routing path and there being multiple third routing paths, and each third routing path other than the first routing path includes a first routing node that has failed, sending a path acquisition request.

[0347] In step 406, the management node receives the path acquisition request.

[0348] In some embodiments, the management node receives the path acquisition request in response to a first routing node in the at least one routing node failing.

[0349] In some embodiments, after receiving a path acquisition request, the second routing path can be determined in the following manner: obtaining a second routing node corresponding one-to-one to each first routing node that has failed, where the second routing node does not have a failure and does not belong to the first routing path; updating each first routing node that has failed in the first routing path to a corresponding second routing node to obtain the second routing path.

[0350] As an example, referring to Figure 9, when the first routing path is: service node 421-routing node 414-routing node 411-routing node 415-service node 422, and the first routing node that fails is routing node 411, the first routing node that fails (routing node 414) in the first routing path: service node 421-routing node 414-routing node 411-routing node 415-service node 422 is updated to the corresponding second routing node (routing node 412), obtaining the second routing path: service node 421-routing node 412-routing node 411-routing node 415-service node 422.

[0351] As an example, referring to Figure 10, when the first routing path is: business node 421-routing node 414-business node 422, and the first routing node that fails is routing node 414, the first routing node that fails (routing node 414) in the first routing path: business node 421-routing node 414-business node 422 is updated to the corresponding second routing node (routing node 412), obtaining the second routing path: business node 421-routing node 412-business node 422.

[0352] This ensures a rapid network response in the event of a failure, maintaining data flow continuity through alternate routing nodes and avoiding prolonged service interruptions. The second routing node is selected based on its absence from the primary routing path, helping to bypass the problem area, reducing the risk of fault spread and ensuring normal data transmission. The routing node update strategy enhances the network's adaptability, enabling dynamic adjustments to the network structure without service interruption, thereby enhancing network robustness and reliability.

[0353] In step 407, the second routing path generated based on the path acquisition request is sent to the service node.

[0354] In some embodiments, the second routing path is different from the first routing path, and the second routing path does not include the failed first routing node.

[0355] 9 , the management node 40 sends a second routing path generated based on the path acquisition request to the first service node 421 : service node 421 - routing node 412 - routing node 411 - routing node 415 - service node 422 .

[0356] In step 408, the service node receives the second routing path.

[0357] In some embodiments, the first service node receives the second routing path returned by the management node based on the path acquisition request.

[0358] As an example, referring to FIG. 9 and FIG. 10 , when the first service node is the service node 421 , the service node 421 receives the second routing path returned by the management node 40 based on the path acquisition request.

[0359] In this manner, the first service node receives a first routing path originating from the first service node, and in response to at least one routing node having a faulty first routing node, sends a path acquisition request, receives a second routing path returned based on the path acquisition request, and then routes data according to the second routing path. In this manner, if at least one routing node included in the first routing path has a faulty first routing node, the request obtains a second routing path excluding the faulty first routing node, and data is routed along the second routing path. This ensures that data routing proceeds normally without being affected by the faulty first routing node, effectively reducing the impact of path failures on data routing.

[0360] Below, an exemplary application of the embodiment of the present application in an actual large-scale model training application scenario will be described.

[0361] The networks used for large AI models are typically complex, with complex traffic flows and potential for localized congestion. A 4K card cluster can have over 150 network devices and over 10,000 links, while a 16K card cluster can have over 1,000 network devices and over 50,000 links. In such a complex network, achieving absolute load balancing through planning is impossible, and localized load imbalances and link congestion are almost inevitable.

[0362] The embodiment of the present application achieves the advantage of no perception of the path state in the intermediate nodes on the network side by segmenting the network and programming the message path on the end side (HPN controller). It aims to solve the problems of congestion and fault recovery in the AI ​​training network. The embodiment of the present application uses SRv6 technology to enable the network to be segmented more efficiently, and by programming the message path on the end side, flexible control and management of network traffic is achieved. It not only improves the performance and throughput of the network, but also can effectively deal with network congestion and fault conditions, and improves the reliability and stability of the AI ​​training network. The embodiment of the present application discloses a message forwarding and message forwarding method based on the SRv6-TE path, and the control module pre-installs the SPT default route, SPT node route and SRv6-TE forwarding path into the forwarding module. On the basis of the above, the forwarding module receives the SRv6 traffic message carrying the SRv6-TE forwarding path, parses the SRv6-TE forwarding path, and obtains multiple segment list members. Based on the above method, the forwarding module parses the current segment list members to obtain the SRv6 domain identifier and next waypoint of the current SRv6 domain, and forms an IPv6 destination address based on the SRv6 domain identifier and the next waypoint. The embodiment of the present application uses the SRv6 domain identifier, SRv6 node identifier, and SRv6 adjacency identifier representing the topology to form an SRv6-TE forwarding path, which can improve the path compression efficiency of SRv6's SRH and reduce the message redundancy rate without affecting the network scale.

[0363] Due to the complex network topology of the AI ​​large model, and whether it is to modify the route or the source port number of the flow, the switch's hash algorithm is a black box, and it is difficult to accurately calculate the new path, so the control effect is difficult to guarantee. Some heuristic or speculative evaluation methods in academia are difficult to be effective in actual production. This difficulty is also one of the core challenges of AI network traffic scheduling. The embodiment of the present application is to solve the accuracy problem of ECMP hash by using SRv6 segment routing technology on the end side to segment the transmission path, and then combining the segments to achieve RDMA network link congestion avoidance and fault recovery.

[0364] In some embodiments, referring to FIG18 , FIG18 is a fifth principle diagram of a data routing method provided in an embodiment of the present application. The data routing method provided in an embodiment of the present application can be implemented by a distributed service system as shown in FIG18 . The distributed service system includes a Node (i.e., the service node described above) (e.g., service node A, service node B, service node C, and service node D as shown in FIG18 ), an LA / LC (i.e., the routing node described above) (e.g., routing node 1, routing node 2, routing node, routing node 9, routing node 10, routing node 1, and routing node 2 as shown in FIG18 ), and an HPN controller (i.e., the management node described above). A service node includes at least one service interface. For example, service node A as shown in FIG18 includes service interface 1, service interface 2, service interface 3, and service interface 4.

[0365] In some embodiments, referring to FIG19 , FIG19 is a schematic diagram of the principle of the data routing method provided by an embodiment of the present application. GPU_A (source end, a port mounted on a node) and GPU_B (target end, a port mounted on a node) perform collective communication based on the RDMA protocol. The source end segments the network at the source end according to the path calculated by the HPN controller (the source end receives the first routing path sent by the HPN) and performs path combination (the segmented path combination here refers to steps 2-4, the process in which the source end performs path finding (data routing) according to the received first routing path); the source end searches for the next hop LA1 switch based on the Segment List (that is, the routing path described above) and Segments Left (3) in the IPv6 SRH header; the LA1 switch searches for the next hop LC1 switch based on the Segment List and Segments Left (2) in the IPv6 SRH header; the LC1 switch searches for the next hop LA2 switch based on the Segment List and Segments Left (1) in the IPv6 SRH header; the LA2 switch searches for the next hop LA3 switch based on the Segment List and Segments Left (2) in the IPv6 SRH header; the LA2 switch searches for the next hop LA4 switch based on the Segment List and Segments Left (1) in the IPv6 SRH header. Left(0) searches for the next hop, which is server GPU_B.

[0366] In some embodiments, referring to FIG20, FIG20 is a schematic diagram of the principle of the data routing method provided by the embodiment of the present application. The embodiment of the present application can realize source routing-traffic engineering capability based on end-side routing segmentation orchestration, and can evacuate and divert traffic between different GPU cards to different transmission paths, maximize the use of RDMA network bandwidth, and avoid the formation of network congestion. The Hpn controller can accurately customize the transmission path between each pair of QPs according to the RDMA network topology, maximize the use of network bandwidth, and avoid congestion as much as possible; the specific implementation method is: the Hpn controller obtains the RDMA network global topology from the operation and maintenance platform; the Hpn controller calculates the transmission path between NODE_A_1 and NODE_B_1 as: routing path (Segment The Hpn controller calculates the transmission path between NODE_A_2 and NODE_B_2 as the routing path (LA2, LC2, LA10, NODE_B_2). The Hpn controller sends the generated path information to the training container NODE_A. NODE_A modifies the transmission paths of QP1 and QP2, adding the Segment List attribute to the QP. This allows the message to be included in the SRv6 header when it is sent, enabling precise navigation within the transmission path. The logical channel (Queue Pair, QP) for communication between two nodes is a fundamental concept in InfiniBand and RDMA technologies. It represents the logical channel for communication between two nodes. Each QP consists of a send queue and a receive queue, which are used to send and receive data between the two nodes.

[0367] In some embodiments, as shown in FIG16 , end-side segmented routing orchestration is used to resolve congestion issues encountered in RDMA networks, including upstream congestion from LA to LC. The congestion issue arises when RDMA packets sent by two servers arrive at the same switch (LA1). The LA1 switch (i.e., routing node LA1) ECMP-Hashes the two flows to the same upstream switch (LC1, i.e., routing node LC1), causing upstream congestion on the LA1 switch. A specific implementation is as follows: the HPN controller receives a traffic congestion alarm report; the HPN controller recalculates and orchestrates the transmission path from service node 2 to service node 4, changing the original routing path (routing node LA1, routing node LC1, routing node LA1) to the routing path (routing node LA1, routing node LC2, routing node LA1); the HPN controller sends the new routing path to the HPN service on service node 2, and modifies the packet SRv6 header via NCCL. The transmission path from service node 2 to service node 4 is modified from routing node LC1 to routing node LC2, resolving the upstream congestion issue from LA to LC.

[0368] In some embodiments, as shown in FIG17 , end-side routing segmentation orchestration is used to resolve downlink congestion caused by the LC-to-LA hash polarization problem. The congestion problem occurs when traffic from two GPU servers originates from two LA switches. Due to ECMP hashing issues, traffic from the LA to the LC is diverted to the same LC, resulting in downlink congestion from the LC to the LA. A specific implementation involves the following steps: the HPN controller receives a traffic congestion alarm report; the HPN controller recalculates and orchestrates the transmission path from service node 2 to service node 4, rerouting the original routing path (LA2, LC1, LA1, NODE4) to the routing path (routing node LA2, routing node LC2, routing node LA1, service node 4); the HPN controller sends the new segment list to service node 2's hpn_agent. Service node 2's HPN service modifies the packet's SRv6 header using the NVIDIA Collective Communications Library (NCCL), a library used to accelerate data transmission between multiple GPUs. The transmission path from Node2 to Node4 is modified from routing node LC1 to routing node LC2, resolving the downlink congestion problem from LC to LA.

[0369] In some embodiments, referring to FIG21 , FIG21 is a schematic diagram of the principles of the data routing method provided in an embodiment of the present application. In an embodiment of the present application, the source-end routing can be automatically or manually re-arranged based on end-to-end collaboration. The specific implementation method is as follows: the HPN service reports PFC, ECN, transmission path and other content to the HPN controller; after receiving information such as path traffic, the HPN controller transmits the calculated new path (path information, traffic information) to the operation and maintenance platform, and then the operation and maintenance platform sends it to the GPU server (Graphics Processing Unit, GPU server) through manual scheduling, and modifies the Segment List corresponding to the QP after receiving it; after receiving information such as path traffic, the HPN controller sends the calculated new path to the GPU server through automatic scheduling, and modifies the routing path corresponding to the QP after receiving it; after the GPU server updates the QP Segment List, it will bypass the congested link node.

[0370] In some embodiments, referring to FIG22 , FIG22 is a schematic diagram of the principle of the data routing method provided in an embodiment of the present application. The embodiment of the present application can solve the problem of rapid perception, self-healing and dynamic traffic scheduling of remote direct memory access network (RDMA) faults based on end-to-end collaboration. The specific implementation method is as follows: business node 1 compiles a transmission path from business node 1 to business node 3 on the end side; a bfd or sbfd detection is established between the two transmission paths of business node 1 and business node 3; from business node 1 to business node 3, the initial routing path is {routing node LA1, routing node LC1, routing node LA1, business node 3}; when a link fails, such as when routing node LC1 fails, the bfd on business node 1 will perceive the link failure; business node 1 re-arranges the transmission path and modifies it to the routing path {routing node LA2, routing node LC2, routing node LA2, business node 3}, Node 1 receives the first routing path {routing node LA1, routing node LC1, routing node LA1, service node 3} and at least zero alternative paths from the HPN controller. For example, in addition to receiving {routing node LA1, routing node LC1, routing node LA1, service node 3}, Node 1 also receives {routing node LA2, routing node LC2, routing node LA2, service node 3}. If {routing node LA1, routing node LC1, routing node LA1, service node 3} fails, Node 1 can directly switch to {routing node LA2, routing node LC2, routing node LA2, service node 3}. The HPN controller recalculates and orchestrates the transmission path from service node 2 to service node 4, rerouting the original routing path (routing node LA2, routing node LC1, routing node LA1, service node 4) to the routing path (routing node LA2, routing node LC2, routing node LA1, service node 4). The HPN service on service node 1 reports link status information to the HPN controller.

[0371] In this way, the embodiments of the present application can solve the congestion of the RDMA network, improve the efficiency of large AI model training, and reduce the time proportion of network transmission in the entire training process.

[0372] It is understandable that in the embodiments of the present application, when data related to the first routing path is involved and is applied to specific products or technologies, user permission or consent is required, and the collection, use and processing of relevant data must comply with relevant laws, regulations and standards of relevant countries and regions.

[0373] The following further describes an exemplary structure in which the data routing device 455 provided in an embodiment of the present application is implemented as a software module. In some embodiments, as shown in Figure 2, the software modules stored in the data routing device 455 of the memory 450 may include: an initial receiving module 4551, configured to receive a first routing path starting from the first service node, the first routing path including at least one routing node for data routing; a service response module 4552, configured to send a path acquisition request in response to a faulty first routing node among the at least one routing node; a target receiving module 4553, configured to receive a second routing path returned based on the path acquisition request, the second routing path being different from the first routing path and not including the first routing node; and a data routing module 4554, configured to perform data routing according to the second routing path.

[0374] In some embodiments, the above-mentioned initial receiving module is further configured to receive at least one third routing path starting from the first service node, wherein the third routing path includes at least one routing node for data routing; when the number of the received third routing paths is one, the third routing path is determined as the first routing path; when the number of the received third routing paths is multiple, the path transmission performance of each of the third routing paths is obtained, and the third routing path with the largest path transmission performance is determined as the first routing path.

[0375] In some embodiments, the above-mentioned initial receiving module is further configured to send the path acquisition request in response to the presence of the first routing node in the first routing path and the number of the third routing paths is one; send the path acquisition request in response to the presence of the first routing node in the first routing path, the number of the third routing paths is multiple, and each of the third routing paths except the first routing path includes the first routing node.

[0376] In some embodiments, the above-mentioned business response module is further configured to, in response to the presence of the first routing node in the first routing path, the number of the third routing paths is multiple, and the first routing node is not included in the third routing paths other than the first routing path, select a third routing path that does not include the first routing node from the third routing paths other than the first routing path as the second routing path.

[0377] In some embodiments, the above-mentioned business response module is further configured to, when the number of the third routing paths is two and the first routing node is not included in the third routing path other than the first routing path, determine the third routing path other than the first routing path as the second routing path; when the number of the third routing paths is greater than two, determine the third routing path other than the first routing path that does not include the first routing node as the fourth routing path, and determine the second routing path based on the fourth routing path.

[0378] In some embodiments, the above-mentioned business response module is further configured to, when the number of the fourth routing paths is one, determine the fourth routing path as the second routing path; when the number of the fourth routing paths is multiple, determine the fourth routing path with the highest path transmission performance as the second routing path.

[0379] In some embodiments, the above-mentioned business response module is further configured to perform path detection on the first routing path to obtain a path detection result; wherein, the path detection result is used to indicate whether the first routing node exists in the at least one routing node included in the first routing path.

[0380] In some embodiments, the above-mentioned business response module is further configured to determine the routing node adjacent to the first business node in the first routing path as a third routing node; send a path detection message carrying the first routing path to the third routing node, and receive feedback information returned by the third routing node based on the path detection message; when the feedback information indicates that the path detection message can detect the second business node, determine the path detection result as the first detection result; wherein, the first detection result is used to indicate that the first routing node does not exist in the at least one routing node included in the first routing path; when the feedback information indicates that the path detection message cannot detect the second business node, determine the path detection result as the second detection result; wherein, the second detection result is used to indicate that the first routing node exists in the at least one routing node included in the first routing path, and the second business node is the business node located at the end point of the first routing path.

[0381] In some embodiments, the above-mentioned business response module is further configured to obtain routing data in response to a data routing instruction; in response to the absence of the first routing node in the at least one routing node, perform data routing according to the first routing path based on the routing data; the above-mentioned data routing module is further configured to perform data routing according to the second routing path based on the routing data.

[0382] In some embodiments, the data routing module is further configured to determine a routing node adjacent to the first service node in the first routing path as a third routing node; perform message fusion on the routing data and the first routing path to obtain a first routing message, and send the first routing message to the third routing node.

[0383] In some embodiments, the data routing module is further configured to determine a routing node adjacent to the first service node in the second routing path as a second routing node; perform message fusion on the routing data and the second routing path to obtain a second routing message, and send the second routing message to the second routing node.

[0384] In some embodiments, the above-mentioned business response module is further configured to obtain routing data in response to a data routing instruction, and perform message fusion on the routing data and the first routing path to obtain a first routing message; determine the routing node adjacent to the first business node in the first routing path as a third routing node, and send the first routing message to the third routing node.

[0385] In some embodiments, the above-mentioned business response module is further configured to determine the path information of the first routing path as the target path information in response to the fault information sent by the routing node in the first routing path; wherein the target path information is used to indicate that the first routing node exists among the at least one routing node included in the first routing path.

[0386] In some embodiments, the above-mentioned data routing module is further configured to update the first routing path in the first routing message to the second routing path to obtain a second routing message; determine the routing node adjacent to the first service node in the second routing path as the second routing node, and send the second routing message to the second routing node.

[0387] In some embodiments, the above-mentioned data routing module is further configured to obtain routing data in response to a data routing instruction, and perform message fusion on the routing data and the first routing path to obtain a first routing message; determine the routing node adjacent to the first service node in the first routing path as a third routing node, and send the first routing message to the third routing node.

[0388] In some embodiments, the above-mentioned data routing module is further configured to determine the path information of the first routing path as the target path information in response to fault information sent by the routing node in the first routing path; wherein the target path information is used to indicate that the first routing node exists among the at least one routing node included in the first routing path.

[0389] In some embodiments, the above-mentioned data routing module is further configured to update the first routing path in the first routing message to the second routing path to obtain a second routing message; determine the routing node adjacent to the first service node in the second routing path as the second routing node, and send the second routing message to the second routing node.

[0390] The following continues to describe an exemplary structure of the data routing device 555 provided in an embodiment of the present application implemented as a software module. In some embodiments, as shown in Figure 3, the software module stored in the data routing device 555 of the memory 550 may include: a first receiving module 5551, configured to receive a first routing path, wherein the first routing path includes the routing node used for data routing; a second receiving module 5552, configured to receive a second routing path in response to the routing node not being the failed first routing node and the first routing node existing in the first routing path; wherein the second routing path is different from the first routing path, and the second routing path does not include the first routing node.

[0391] In some embodiments, the above-mentioned first receiving module is further configured to determine the first node of the routing node in the first routing path for each first routing path when the number of the received first routing paths is at least two; wherein the first node is the end point of the first routing path, or the path distance between the first node and the end point of the first routing path is less than or equal to the path distance between the first node and the starting point of the first routing path; when there are at least two identical first nodes in the received first routing path, the routing node is determined as the first routing node.

[0392] In some embodiments, the above-mentioned first receiving module is further configured to, when there are at least two identical first nodes in the received first routing path, determine any one of the received first routing paths as the first routing path; and determine each first routing path other than the first routing path as the second routing path; for each second routing path, when the first node in the second routing path is not the end point of the second routing path, determine the first node in the second routing path as the first routing node.

[0393] In some embodiments, the above-mentioned first receiving module is further configured to perform the following processing for each second node respectively: when the second node is the end point of the first routing path, the second node is determined as the first node; when the path distance between the first node and the end point of the first routing path is less than the path distance between the first node and the starting point of the first routing path, the second node is determined as the first node; when the path distance between the first node and the end point of the first routing path is equal to the path distance between the first node and the starting point of the first routing path, and the path distance between the routing node and the starting point of the first routing path is less than the path distance between the routing node and the end point of the first routing path, the second node is determined as the first node.

[0394] In some embodiments, the second receiving module is further configured to receive a second routing message carrying the second routing path, and perform path extraction on the second routing message to obtain the second routing path; the above-mentioned second receiving module is further configured to determine a third node of the routing node in the second routing path; wherein the third node is the end point of the second routing path, or the path distance between the third node and the end point of the second routing path is less than or equal to the path distance between the third node and the starting point of the second routing path; and send the second routing message to the third node.

[0395] The following continues to describe an exemplary structure of the data routing device 666 provided in an embodiment of the present application implemented as a software module. In some embodiments, as shown in Figure 4, the software modules stored in the data routing device 666 in the memory 660 may include: an initial sending module 6661, configured to generate a first routing path with the first business node as the starting point, and send the first routing path to the first business node, the first routing path including at least one routing node for data routing; a request receiving module 6662, configured to generate a second routing path with the first business node as the starting point in response to a path acquisition request sent by the first business node, the path acquisition request being generated when a faulty first routing node exists in at least one routing node; a target sending module 6663, configured to send a second routing path to the first business node, the second routing path being different from the first routing path, and the second routing path not including the faulty first routing node.

[0396] In some embodiments, the request receiving module is further configured to obtain a second routing node corresponding one-to-one to each first routing node that has failed, where the second routing node does not have a failure and does not belong to the first routing path; and update each first routing node that has failed in the first routing path to a corresponding second routing node to obtain a second routing path.

[0397] In some embodiments, the request receiving module is further configured to determine a second service node located at the end point of the first routing path; and regenerate a second routing path excluding the failed first routing node with the first service node as the starting point and the second service node as the end point.

[0398] In some embodiments, the above-mentioned initial sending module is further configured to receive a data routing request sent by the first business node, the data routing request carrying the second business node located at the end point of the first routing path; generate at least one third routing path with the first business node as the starting point and the second business node as the end point, and the routing nodes in different third routing paths are at least partially different; and determine the first routing path based on each third routing path.

[0399] In some embodiments, the initial sending module is further configured to, when there is one third routing path, determine the third routing path as the second routing path; when there are multiple third routing paths, determine the third routing path with the highest path transmission performance as the first routing path, or determine all third routing paths as the first routing path.

[0400] The following further describes an exemplary structure of the data routing device 766 provided in an embodiment of the present application implemented as a software module. In some embodiments, as shown in FIG5 , the software modules stored in the data routing device 766 of the memory 760 may include: an initial path module 7771 configured to cause the management node to send a first routing path to the service node, and the service node to receive the first routing path starting from the service node, the first routing path including at least one routing node for data routing; the service node to send the first routing path to the routing node, and the routing node to receive the first routing path; a path request module 7772 configured to cause the service node to send a path acquisition request to the management node in response to a faulty first routing node among the at least one routing node; the management node to receive the path acquisition request and send a second routing path generated based on the path acquisition request to the service node; wherein the second routing path is different from the first routing path and does not include the first routing node; and a target path module 7773 configured to cause the service node to receive the second routing path.

[0401] An embodiment of the present application provides a computer program product, which includes a computer program or computer-executable instructions stored in a computer-readable storage medium. A processor of an electronic device reads the computer-executable instructions from the computer-readable storage medium and executes the computer-executable instructions, causing the electronic device to perform the data routing method described above in the embodiment of the present application.

[0402] An embodiment of the present application provides a computer-readable storage medium storing computer-executable instructions, wherein the computer-executable instructions are stored. When the computer-executable instructions are executed by a processor, the processor will execute the data routing method provided by an embodiment of the present application, for example, the data routing method shown in Figure 7.

[0403] In some embodiments, the computer-readable storage medium may be a read-only memory (ROM), a random access memory (RAM), an erasable programmable read-only memory (EPROM), a flash memory, a magnetic surface memory, an optical disk, or a CD-ROM; or it may be various electronic devices including one or any combination of the above memories.

[0404] In some embodiments, computer-executable instructions may be in the form of a program, software, software module, script, or code, written in any form of programming language (including compiled or interpreted languages, or declarative or procedural languages), and may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.

[0405] As an example, computer-executable instructions may, but need not, correspond to a file in a file system, may be stored as part of a file that stores other programs or data, such as in one or more scripts in a HyperText Markup Language (HTML) document, in a single file dedicated to the program in question, or in multiple coordinating files (e.g., files storing one or more modules, subroutines, or code portions).

[0406] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program that has a predetermined function and works together with other related parts to achieve a predetermined goal, and can be implemented in whole or in part by using software, hardware (such as processing circuits or memories) or a combination thereof. Similarly, a processor (or multiple processors or memories) can be used to implement one or more modules or units. In addition, each module or unit can be part of an overall module or unit that includes the function of the module or unit.

[0407] By way of example, computer-executable instructions may be deployed to be executed on one electronic device, or on multiple electronic devices located at one site, or on multiple electronic devices distributed across multiple sites and interconnected by a communication network.

[0408] In summary, the embodiments of the present application have the following beneficial effects:

[0409] (1) The first service node receives a first routing path starting from the first service node, and in response to a faulty first routing node among at least one routing node, sends a path acquisition request, receives a second routing path returned based on the path acquisition request, and performs data routing according to the second routing path. In this way, when a faulty first routing node is included in at least one routing node included in the first routing path, the second routing path excluding the faulty first routing node is obtained by request, and data routing is performed through the second routing path, thereby ensuring that data routing is performed normally without being affected by the faulty first routing node, thereby effectively reducing the impact of the path failure on data routing.

[0410] (2) By receiving at least one third routing path starting from the first service node, and selecting a third routing path with the best path transmission performance from the third routing paths as the first routing path, the third routing path with the best path transmission performance is preferentially selected for data routing, thereby effectively improving the routing efficiency of data routing.

[0411] (3) When a faulty first routing node already exists in the first routing path, it indicates that the first routing path is no longer able to perform data routing. When the first service node receives multiple third routing paths, it can directly select a third routing path that does not include the faulty first routing node from the third routing paths other than the first routing path as the second routing path. In this way, when a faulty first routing node exists in the first routing path, the first service node can directly search for the third routing path that does not include the faulty first routing node locally on the routing node as the second routing path. In this way, the first service node does not need to request the second routing path again from the management node side. When the first routing path fails, the first service node can quickly find the second routing path that does not include the faulty first routing node, thereby effectively saving the time for fault repair and effectively improving the efficiency of obstacle avoidance.

[0412] (4) Since the path detection message carries the first routing path and does not carry routing data, the transmission time of the path detection message is effectively reduced, thereby improving the detection efficiency of the path detection, so that the first routing node with a fault in the first routing path can be quickly determined.

[0413] (5) Since it has been determined that there is no first routing node with a fault in the first routing path before data routing is performed according to the first routing path based on the routing data, the routing data and the first routing path can be message-fused to obtain a first routing message, and the first routing message can be sent to the first routing node, thereby routing the routing data according to the first routing path to the end point of the first routing path (the second routing node), thereby accurately implementing data routing based on the first routing path.

[0414] (6) Since the first routing message carries the first routing path and the first routing message carries routing data, path detection can also be implemented in the process of using the first routing message for data routing. When there is no faulty first routing node in the first routing path, the time consumption caused by path detection can be effectively avoided, thereby effectively improving the routing efficiency of data routing.

[0415] (7) In response to the presence of a faulty first routing node in the first routing path and the number of the third routing paths being one, a path acquisition request is sent; or in response to the presence of a faulty first routing node in the first routing path and the number of the third routing paths being multiple, and each third routing path other than the first routing path including the faulty first routing node, a path acquisition request is sent, so that the first service node will request the second routing path from the management node only when the first service node does not locally store the third routing path without the faulty first routing node, thereby effectively reducing the frequency and possibility of requesting the second routing path from the management node, thereby effectively saving the time for fault repair and effectively improving the efficiency of obstacle avoidance.

[0416] (8) The routing node receives a first routing path, which includes a routing node for performing data routing. The routing node receives a second routing path in response to the fact that the routing node is not the failed first routing node and that the failed first routing node exists in the first routing path, and performs data routing through the second routing path, thereby ensuring that data routing is performed normally without being affected by the failed first routing node, thereby effectively reducing the impact of the path failure on data routing.

[0417] (9) By sending a third routing path starting from the first service node to the first service node, the first service node directly determines the received third routing path as the first routing path, thereby significantly improving the transmission efficiency of the first routing path.

[0418] (10) By sending multiple third routing paths starting from the first service node to the first service node, the first service node determines the third routing path with the highest path transmission performance as the first routing path, so that multiple third routing paths starting from the first service node can be backed up in the first service node, so that when a routing node in the first routing path fails, the path can be quickly switched, thereby ensuring the normal data routing without being affected by the failed first routing node, thereby quickly reducing the impact of the path failure on the data routing, and effectively improving the obstacle avoidance efficiency of the first service node.

[0419] (11) The management node generates a first routing path starting from the first service node and sends the first routing path, wherein the first routing path includes at least one routing node for data routing; and in response to a received path acquisition request, when a faulty first routing node is present in the at least one routing node, generates a second routing path starting from the first service node and sends the second routing path. In this way, since the second routing path is different from the first routing path and does not include the faulty first routing node, data routing is performed by generating the second routing path that does not include the faulty first routing node, thereby ensuring that data routing is performed normally without being affected by the faulty first routing node, thereby effectively reducing the impact of the path failure on data routing.

[0420] (12) When the number of the third routing paths is one, the third routing path is determined as the second routing path; when the number of the third routing paths is multiple, the third routing path with the highest path transmission performance is determined as the first routing path, so that the number of the first routing paths sent is one, thereby effectively saving the data transmission amount of the first routing path and effectively improving the routing efficiency.

[0421] (13) When there are multiple third routing paths, each third routing path is determined as the first routing path, and each first routing path is sent, thereby providing the receiver of the first routing path with multiple alternative solutions of the first routing path, avoiding the receiver of the first routing path from repeatedly requesting the path, thereby effectively saving the number of repeated transmissions of the first routing path, and effectively improving routing efficiency.

[0422] (14) By obtaining each routing node in the distributed service system where the first business node and the second business node are located, the routing nodes in the distributed service system, except for the first routing node that has failed, are determined as target routing nodes. By arranging each target routing node, at least one target routing node path is obtained, so that the generated target routing node path will effectively avoid the first routing node that has failed. By fusing the target routing node path, the first business node and the second business node in the order of the first business node, the target routing node path and the second business node, a second routing path corresponding to the routing node path is obtained, so that the generated second routing path has the same starting point and end point as the first routing path and does not include the first routing node that has failed, so that data routing can be performed through the second routing path, thereby ensuring that data routing is performed normally without being affected by the first routing node that has failed, thereby effectively reducing the impact of the path failure on data routing.

[0423] (15) It ensures that the network can respond quickly when encountering a fault, maintains the continuity of data flow by replacing routing nodes, and avoids long-term service interruptions. The selection criteria for the second routing node are that it has no faults and does not belong to the first routing path, which helps to bypass the problem area, reduce the risk of fault spread, and ensure the normal transmission of data. The routing node update strategy improves the network's adaptability and can dynamically adjust the network structure without interrupting service, thereby enhancing the network's robustness and reliability.

[0424] (16) It ensures that when a node in the first routing path fails, alternative routing nodes, namely second routing nodes, can be quickly found. These nodes are not only not faulty, but also do not belong to the original faulty first routing path, thereby avoiding conflicts and interference on the path. By updating the faulty first routing node to the corresponding second routing node, the routing path can be dynamically reconstructed to form a second routing path, which greatly improves the flexibility and robustness of the network. The timely routing node replacement mechanism can reduce the service interruption time caused by failures, maintain business continuity, and optimize user experience. At the same time, this strategy also helps to balance the load of the network because it can dynamically adjust the data transmission path according to the real-time network status, thereby improving the utilization of network resources, reducing the risk of network congestion, and improving the performance and reliability of the entire network.

[0425] (17) The construction of the fifth routing path enables the system to identify multiple possible data transmission paths in the distributed service system, each of which contains at least one routing node within the system, which provides flexibility and redundancy for data transmission. Processing is performed on each fifth routing path, that is, the routing node path is merged with the first business node and the second business node to generate a third routing path, which helps to optimize the data transmission process. This method can ensure that data follows a clear and efficient path during transmission, and can also dynamically adjust the path according to changes in network conditions. It not only improves the speed and efficiency of data transmission, but also enhances the adaptability and robustness of the network, which helps to achieve better resource management and business continuity in a distributed environment.

[0426] (18) By determining the second node that meets certain conditions as the third node, the system can ensure that the optimal or suboptimal path is selected from multiple possible routing paths, thereby avoiding unnecessary data transmission delays and possible network congestion. When the second node is the end point of the first routing path, determining it as the third node can reduce the number of additional routing hops and improve data transmission efficiency; when the distance between the second node and the end point is less than the distance from the starting point, this treatment helps to avoid long detours and reduce transmission time; when the distance between the second node and the end point and the starting point is equal, but the direct distance to the starting point is shorter, determining it as the third node also helps to optimize path selection. This strategy comprehensively considers the length and number of hops of the path, allowing the network to select routes more intelligently, improving the speed and efficiency of data transmission, and also facilitating network load balancing and resource optimization, thereby improving the overall network performance and user experience.

[0427] (19) Allowing the network system to analyze and record the transmission path of data on the secondary routing path in detail provides important transparency and visibility for network management. Through path extraction, network administrators can clearly identify and detect each node through which data flows, which helps to quickly locate the specific location of the problem when a network failure or performance problem occurs. It also helps to optimize network design because by analyzing the secondary routing path, administrators can discover potential bottlenecks and unnecessary routing jumps in the network, thereby adjusting the network structure to improve efficiency.

[0428] (20) After determining the first node in the first routing path, by comparing the first nodes in multiple paths, when it is found that at least two paths have the same first node, one of them is selected as the first routing path and the rest are selected as the second routing paths, which can reduce misjudgment and concentrate resources on detecting suspicious nodes. For each second routing path, it is further checked whether its first node is the end point. If not, the node is marked as a faulty node. This strategy not only helps to quickly locate potential faulty nodes that appear repeatedly in different paths, but also reduces the number of paths that need further inspection by distinguishing between the first routing path and the second routing path, thereby optimizing the fault detection process. In addition, this hierarchical fault determination method helps network managers allocate resources more effectively, reduce troubleshooting time, improve network reliability and service quality, and ensure the continuity and stability of user services.

[0429] (21) When receiving at least two first routing path information, the system can compare the first nodes in these paths. If it is found that at least two paths have the same first node, this usually means that the node may be a fault point because it has problems on different paths. This strategy helps to quickly locate routing nodes that may not work properly due to overload, configuration errors or hardware failures. Timely identification of faulty nodes can reduce the time of network interruption, improve fault response speed, and maintain high network availability. It can also reduce the false alarm rate because it determines the faulty node based on the consensus of multiple paths rather than the anomaly of a single path. The fault detection mechanism helps to improve the stability and reliability of the network, optimize the allocation of network resources, and improve the overall network service quality.

[0430] (22) When the first service node detects that there is a faulty first routing node in the first routing path, it sends a path acquisition request to the management node. This mechanism ensures that when a faulty node appears in the network, the first service node can promptly report the situation to the superior management node, thereby triggering the fault response and path reconstruction process. This proactive error reporting mechanism enables network administrators to quickly identify and locate the fault point, reducing the time required for fault diagnosis. It allows the system to adjust the routing strategy in real time, avoid faulty nodes, and select healthy paths for data transmission, thereby improving the robustness and reliability of the network, ensuring business continuity, and optimizing user experience. Overall, this strategy reduces the network interruption time and potential data loss risks caused by faults, and improves the stability and efficiency of the entire distributed network.

[0431] (23) By fusing routing data with the first routing path to generate a first routing message, and using this to perform data routing, the data transmission process is simplified through message fusion, the transmission overhead is reduced, and the efficiency of data transmission is improved. At the same time, the third routing node adjacent to the first service node is determined as the next hop for data transmission, which can ensure that the data has undergone accurate path planning before entering the complex network environment, thereby reducing the uncertainty of the data during transmission. This fusion and directional transmission method also helps to optimize the utilization of network resources, reduce possible network congestion, improve overall network performance, and ultimately provide users with faster and more stable data transmission services.

[0432] (24) After performing path detection on the first routing path and obtaining the detection results, the routing data is obtained according to the data routing instructions, and after confirming that at least one routing node has not failed, data routing is performed based on the routing data, ensuring that the path the data passes through is verified before it is sent, effectively avoiding data transmission failures caused by path failures, thereby improving the success rate and reliability of data transmission. It also helps to reduce network delays caused by routing errors or faulty nodes and optimize data transmission efficiency. At the same time, this routing decision mechanism based on real-time status enhances the flexibility and adaptability of the network, enabling the system to quickly respond to network changes, maintain business continuity, and improve the overall network performance and user experience.

[0433] (25) By determining the routing node adjacent to the first service node as the third routing node, a controllable intermediate node is introduced into the detection process, which helps to more accurately evaluate the reachability and performance of the first routing path. By sending a detection message carrying the first routing path information and receiving feedback information from the third routing node, the system can effectively determine the smoothness of the path and ensure that potential network problems are discovered in a timely manner. The path detection results are divided into the first detection result (which can detect the second service node) and the second detection result (which cannot detect the second service node), so that the system can clearly distinguish the effectiveness of the routing path, so as to quickly respond and take measures, such as selecting an alternative path or troubleshooting. This path detection mechanism improves the detection capability of the network, ensures the high reliability of data transmission, and also optimizes the fault diagnosis and recovery process, ultimately improving the stability and service quality of the entire distributed network.

[0434] (26) When there is only one fourth routing path in the system, it is directly determined as the second routing path. When there are multiple fourth routing paths, the path with the highest transmission performance is selected as the second routing path. This ensures that when the first routing path fails or is congested, the system can quickly switch to a reliable backup path, thereby maintaining service continuity and stability. Secondly, by evaluating and selecting the path with the best transmission performance, the system can provide more efficient data transmission rates and lower latency, improving user experience and the overall performance of the system. In addition, this strategy also enhances the flexibility and adaptability of the network, allowing the system to dynamically adjust routing strategies according to real-time network conditions, optimize resource allocation, reduce potential losses caused by network problems, and ultimately improve the reliability and efficiency of the entire distributed service system.

[0435] (27) When a faulty first routing node exists in the first routing path and multiple third routing paths are available, a path that does not contain the faulty node is selected from these third routing paths as the second routing path, thereby ensuring the continuity and reliability of network communication and avoiding the disruption of the entire communication link due to a single node failure. By dynamically switching to the second routing path that does not contain the faulty node, the system can quickly restore data transmission without affecting business continuity, reducing the impact of the failure on business operations and improving service availability.

[0436] The above description is merely an embodiment of the present application and is not intended to limit the scope of protection of the present application. Any modifications, equivalent replacements, and improvements made within the spirit and scope of the present application are included in the scope of protection of the present application.

Claims

1. A data routing method, applied to a management node, comprising: generating a first routing path with a first service node as a starting point, and sending the first routing path to the first service node; Wherein, the first routing path includes at least one routing node for performing data routing; generating, in response to a path acquisition request sent by the first service node, a second routing path with the first service node as a starting point, and sending the second routing path to the first service node, wherein the path acquisition request is generated when a faulty first routing node exists among the at least one routing node; The second routing path is different from the first routing path, and the second routing path does not include the first routing node.

2. The method according to claim 1, wherein Generating a second routing path starting from the first service node includes: Acquire a second routing node corresponding to each of the first routing nodes, wherein the second routing node has no faults and does not belong to the first routing path; Each of the first routing nodes in the first routing path is updated to the corresponding second routing node to obtain the second routing path.

3. The method according to any one of claims 1 to 2, wherein: Generating a second routing path starting from the first service node includes: determining a second service node located at an end point of the first routing path; With the first service node as a starting point and the second service node as an end point, a second routing path excluding the first routing node is regenerated.

4. The method according to any one of claims 1 to 3, wherein: The first service node and the second service node are located in the same distributed service system, and regenerating a second routing path that does not include the first routing node with the first service node as a starting point and the second service node as an end point includes: Acquire each routing node in the distributed service system, determine routing nodes in the distributed service system other than the first routing node as target routing nodes; arrange each target routing node to obtain at least one target routing node path; For each of the target routing node paths, the target routing node path, the first service node, and the second service node are merged in the order of the first service node, the target routing node path, and the second service node to obtain a second routing path corresponding to the target routing node path.

5. The method according to any one of claims 1 to 3, wherein: Generating a first routing path starting from the first service node includes: receiving a data routing request sent by the first service node, wherein the data routing request carries a second service node located at an end point of the first routing path; generating at least one third routing path with the first service node as a starting point and the second service node as an end point, wherein the routing nodes in different third routing paths are at least partially different; The first routing path is determined based on each of the third routing paths.

6. The method according to any one of claims 1 to 4, wherein: The first service node and the second service node are located in the same distributed service system, and generating at least one third routing path with the first service node as a starting point and the second service node as an end point includes: Acquire each routing node in the distributed service system, and arrange each routing node to obtain at least one fifth routing path; For each of the fifth routing paths, the first service node, the fifth routing path, and the second service node are merged in the order of the first service node, the fifth routing path, and the second service node to obtain the third routing path corresponding to the fifth routing path.

7. The method according to any one of claims 1 to 4, wherein: The determining the first routing path based on each of the third routing paths includes: When the number of the third routing path is one, determining the third routing path as the first routing path; When there are multiple third routing paths, the third routing path with the highest path transmission performance is determined as the first routing path, or all the third routing paths are determined as the first routing path.

8. A data routing method, applied to a first service node, comprising: receiving a first routing path starting from the first service node, wherein the first routing path includes at least one routing node for performing data routing; In response to a first routing node having a fault among the at least one routing node, sending a path acquisition request; receiving a second routing path returned based on the path acquisition request, where the second routing path is different from the first routing path and does not include the first routing node; Data routing is performed according to the second routing path.

9. The method according to claim 8, wherein The receiving a first routing path starting from the first service node includes: receiving at least one third routing path starting from the first service node, wherein the third routing path includes at least one routing node for performing data routing; When the number of the received third routing path is one, determining the third routing path as the first routing path; When a plurality of third routing paths are received, the path transmission performance of each of the third routing paths is acquired, and the third routing path with the maximum path transmission performance is determined as the first routing path.

10. The method according to any one of claims 8 to 9, wherein: The sending of the path acquisition request in response to a first routing node having a fault among the at least one routing node comprises: In response to the first routing node existing in the first routing path and the number of the third routing path being one, sending the path acquisition request; In response to the first routing node existing in the first routing path, the number of the third routing paths being multiple, and each of the third routing paths except the first routing path including the first routing node, the path acquisition request is sent.

11. The method according to any one of claims 8 to 10, wherein: After receiving the first routing path starting from the first service node, the method further includes: In response to the presence of the first routing node in the first routing path, the number of the third routing paths is multiple, and the first routing node is not included in the third routing path other than the first routing path, a third routing path that does not include the first routing node is selected from the third routing paths other than the first routing path as the second routing path.

12. The method according to any one of claims 8 to 11, wherein: The selecting, from third routing paths other than the first routing path, a third routing path that does not include the first routing node as the second routing path comprises: When the number of the third routing paths is two and the third routing path other than the first routing path does not include the first routing node, the third routing path other than the first routing path is determined as the second routing path; When the number of the third routing paths is greater than two, the third routing path other than the first routing path, excluding the first routing node, is determined as a fourth routing path, and the second routing path is determined based on the fourth routing path.

13. The method according to any one of claims 8 to 12, wherein: The determining the second routing path based on the fourth routing path includes: When the number of the fourth routing path is one, determining the fourth routing path as the second routing path; When there are multiple fourth routing paths, the fourth routing path with the highest path transmission performance is determined as the second routing path.

14. The method according to any one of claims 8 to 13, wherein: After receiving the first routing path starting from the first service node, the method further includes: Performing path detection on the first routing path to obtain a path detection result; The path detection result is used to indicate whether the first routing node exists in the at least one routing node included in the first routing path.

15. The method according to any one of claims 8 to 13, wherein: The performing path detection on the first routing path to obtain a path detection result includes: Determine a routing node adjacent to the first service node in the first routing path as a third routing node; Sending a path detection message carrying the first routing path to the third routing node, and receiving feedback information returned by the third routing node based on the path detection message; When the feedback information indicates that the path detection message can detect the second service node, determining the path detection result as the first detection result; The first detection result is used to indicate that the first routing node does not exist among the at least one routing node included in the first routing path; When the feedback information indicates that the path detection message cannot detect the second service node, determining the path detection result as a second detection result; The second detection result is used to indicate that the first routing node exists among the at least one routing node included in the first routing path, and the second service node is a service node located at the end point of the first routing path.

16. The method according to any one of claims 8 to 15, wherein: After performing path detection on the first routing path and obtaining a path detection result, the method further includes: Responding to the data routing instruction, obtaining routing data; In response to the first routing node not existing in the at least one routing node, routing the data according to the first routing path based on the routing data; Routing data according to the second routing path includes: Based on the routing data, data routing is performed according to the second routing path.

17. The method according to any one of claims 8 to 16, wherein: The performing data routing according to the first routing path based on the routing data includes: Determine a routing node adjacent to the first service node in the first routing path as a third routing node; The routing data and the first routing path are message-fused to obtain a first routing message, and the first routing message is sent to the third routing node.

18. The method according to any one of claims 8 to 17, wherein: The performing data routing according to the second routing path based on the routing data includes: Determine a routing node adjacent to the first service node in the second routing path as a second routing node; The routing data and the second routing path are message-fused to obtain a second routing message, and the second routing message is sent to the second routing node.

19. The method according to any one of claims 8 to 18, wherein: After receiving the first routing path starting from the first service node, the method further includes: In response to the data routing instruction, obtaining routing data, and performing message fusion on the routing data and the first routing path to obtain a first routing message; A routing node adjacent to the first service node in the first routing path is determined as a third routing node, and the first routing message is sent to the third routing node.

20. The method according to any one of claims 8 to 19, wherein After sending the first routing message to the third routing node, the method further includes: In response to fault information sent by a routing node in the first routing path, determining path information of the first routing path as target path information; The target path information is used to indicate that the first routing node exists among the at least one routing node included in the first routing path.

21. The method according to any one of claims 8 to 20, wherein: Routing data according to the second routing path includes: Updating the first routing path in the first routing message to the second routing path to obtain a second routing message; A routing node adjacent to the first service node in the second routing path is determined as a second routing node, and the second routing message is sent to the second routing node.

22. A data routing method, applied to a routing node, comprising: receiving a first routing path, wherein the first routing path includes the routing node for performing data routing; In response to the routing node being a first routing node that has failed, and the first routing node being present in the first routing path, receiving a second routing path; The second routing path is different from the first routing path, and the second routing path does not include the first routing node.

23. The method according to claim 22, wherein After receiving the first routing path, the method further includes: When the number of the received first routing paths is at least two, determining, for each of the first routing paths, a first node of the routing nodes in the first routing path; The first node is an end point of the first routing path, or a path distance between the first node and the end point of the first routing path is less than or equal to a path distance between the first node and a starting point of the first routing path; When there are at least two identical first nodes in the received first routing path, the routing node is determined as the first routing node.

24. The method according to any one of claims 22 to 23, wherein: After determining the first node of the routing nodes in the first routing path, the method further includes: When there are at least two identical first nodes in the received first routing paths, determining any one of the received first routing paths as the first routing path; and determining each of the first routing paths except the first routing path as a second routing path; For each second routing path, when the first node in the second routing path is not the end point of the second routing path, the first node in the second routing path is determined as the first routing node.

25. The method according to any one of claims 22 to 24, wherein: The first routing path includes at least one second node in communication with the routing node, and determining the first node of the routing node in the first routing path includes: The following processing is performed on each of the second nodes: When the second node is the end point of the first routing path, determining the second node as the first node; When the path distance between the second node and the end point of the first routing path is less than the path distance between the second node and the starting point of the first routing path, determining the second node as the first node; When the path distance between the second node and the end point of the first routing path is equal to the path distance between the second node and the starting point of the first routing path, and the path distance between the routing node and the starting point of the first routing path is less than the path distance between the routing node and the end point of the first routing path, the second node is determined to be the first node.

26. The method according to any one of claims 22 to 25, wherein The receiving a second routing path includes: receiving a second routing message carrying the second routing path, and performing path extraction on the second routing message to obtain the second routing path; After receiving the second routing path, the method further includes: Determining a third node of the routing nodes in the second routing path; The third node is an end point of the second routing path, or a path distance between the third node and the end point of the second routing path is less than or equal to a path distance between the third node and the starting point of the second routing path; Send the second routing message to the third node.

27. A data routing method, applied to a distributed service system, wherein the distributed service system includes a management node, multiple service nodes, and multiple routing nodes, the method comprising: The management node sends a first routing path to the service node, and the service node receives the first routing path starting from the service node, where the first routing path includes at least one routing node for data routing; The service node sends the first routing path to the routing node, and the routing node receives the first routing path; The service node sends a path acquisition request to the management node in response to a first routing node that fails among the at least one routing node; The management node receives the path acquisition request and sends a second routing path generated based on the path acquisition request to the service node; The second routing path is different from the first routing path, and the second routing path does not include the first routing node; The service node receives the second routing path.

28. The method according to claim 27, wherein After the management node receives the path acquisition request, the method further includes: Obtaining a second routing node that wins a one-to-one bet with each of the first routing nodes, where the second routing node does not have any faults and does not belong to the first routing path; Each of the first routing nodes in the first routing path is updated to a corresponding second routing node to obtain the second routing path.

29. A data routing device, applied to a first service node, comprising: an initial receiving module configured to receive a first routing path starting from the first service node, wherein the first routing path includes at least one routing node for data routing; a service response module configured to send a path acquisition request in response to a first routing node having a fault among the at least one routing node; a target receiving module, configured to receive a second routing path returned based on the path acquisition request, where the second routing path is different from the first routing path and does not include the first routing node; The data routing module is configured to perform data routing according to the second routing path.

30. A data routing device, applied to a routing node, comprising: a first receiving module configured to receive a first routing path, wherein the first routing path includes the routing node for performing data routing; a second receiving module configured to receive a second routing path in response to the routing node not being the failed first routing node and the first routing node existing in the first routing path; The second routing path is different from the first routing path, and the second routing path does not include the first routing node.

31. A data routing device, applied to a management node, comprising: an initial sending module configured to generate a first routing path starting from a first service node and send the first routing path; wherein the first routing path includes at least one routing node for data routing; a request receiving module configured to, in response to a received path acquisition request, generate a second routing path with the first service node as a starting point when a first routing node among the at least one routing node fails; The target sending module is configured to send the second routing path; wherein the second routing path is different from the first routing path, and the second routing path does not include the first routing node.

32. A data routing device, applied to a distributed service system, the distributed service system comprising a management node, a plurality of service nodes, and a plurality of routing nodes, the device comprising: an initial path module, configured so that the management node sends a first routing path to the service node, and the service node receives the first routing path starting from the service node, wherein the first routing path includes at least one routing node for data routing; The service node sends the first routing path to the routing node, and the routing node receives the first routing path; a path request module configured to cause the service node to send a path acquisition request to the management node in response to a first routing node having a fault among the at least one routing node; The management node receives the path acquisition request and sends a second routing path generated based on the path acquisition request to the service node; wherein the second routing path is different from the first routing path and does not include the first routing node; The target path module is configured to receive the second routing path from the service node.

33. An electronic device, comprising: a memory configured to store computer-executable instructions or computer programs; The processor is configured to implement the data routing method according to any one of claims 1 to 28 when executing the computer executable instructions or computer program stored in the memory.

34. A computer-readable storage medium storing computer-executable instructions or a computer program, wherein the computer-executable instructions or the computer program, when executed by a processor, implement the data routing method according to any one of claims 1 to 28.

35. A computer program product, comprising a computer program or computer executable instructions, wherein when the computer program or the computer executable instructions are executed by a processor, the data routing method according to any one of claims 1 to 28 is implemented.

Citation Information

Patent Citations

  • Rerouting method, communication device and storage medium

    CN114615190A

  • Path adjustment method, routing device and storage medium

    CN115842765A

  • Path switching control method and device and computer readable storage medium

    CN116866254A

  • Path adjustment method, routing device and storage medium

    WO2023040698A1

Cited By

  • Routing fault processing method and related device

    CN121567644A