docker 网络配置详解

news2024/11/24 7:37:54

目录

1、docker网络模式

2、容器和容器之间是如何互通

3、自定义网络

4、不通网段的容器进行网络互通

1、docker网络模式

docker 网络模式采用的是桥接模式,当我们创建了一个容器后docker网络就会帮我们创建一个虚拟网卡,这个虚拟网卡和我们的容器网络是一一对应(成对出现)。默认创建的容器都是docker0网卡。

2、容器和容器之间是如何互通

当我们创建一个容器时没有指定容器网络时,docker会默认走docker0网络,docker会默认在虚拟机上创建一个虚拟网卡这个网卡地址会和我们容器地址对应。此时会出现我们可以通过互ping容器的ip 地址可ping通容器,但是通过容器名互ping是无法ping通,因技术要求需要我们自定义网络ip达到互通;默认创建的容器都是docker0网卡。

##查看Tomcat01 的ip地址
docker  exec -it   tomcat01  ip addr
[root@localhost ~]# docker  exec -it tomcat01 ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
8: eth0@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
​##查看Tomcat02 的ip地址
docker  exec -it   tomcat02  ip addr
[root@localhost ~]# docker  exec -it tomcat02 ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
10: eth0@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
##用Tomcat01 的ip ping  Tomcat02 的ip 
docker exec -it tomcat01 ping 172.17.0.2
[root@localhost ~]# docker  exec -it tomcat01 ping -c 3 172.17.0.3
PING 172.17.0.3 (172.17.0.3) 56(84) bytes of data.
64 bytes from 172.17.0.3: icmp_seq=1 ttl=64 time=0.071 ms
64 bytes from 172.17.0.3: icmp_seq=2 ttl=64 time=0.051 ms
64 bytes from 172.17.0.3: icmp_seq=3 ttl=64 time=0.074 ms

--- 172.17.0.3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.051/0.065/0.074/0.012 ms
####用Tomcat01 的ip ping  Tomcat02名称(不通)
docker exec -it tomcat01 ping    Tomcat02 

[root@localhost ~]# docker  exec -it tomcat01 ping tomcat02 
ping: unknown host tomcat02

 

我们可以使用link来达到容器之间的互通

##使用link来实现Tomca01   可以ping通 Tomcat02 
docker  run  -d   --name   tomcat01  --link tomcat02   tomcat:8.0
​
[root@localhost ~]# docker  run -d  --name tomcat02 tomcat:8.0
863a3c34388d560406716f8ff46ffc94dec44fb2e42b129bc5bd505d878fc736
[root@localhost ~]# docker run -d --name tomcat01 --link tomcat02 tomcat:8.0
ea2bebceb939c0c6dac31b475045c4a1dcde9511df9e2948665ac45bd003abd4
##用Tomcat01 ping tomcat02
docker  exec   -it   tomcat01 ping tomcat02
​
[root@localhost ~]# docker exec -it tomcat01 ping -c 3 tomcat02
PING tomcat02 (172.17.0.2) 56(84) bytes of data.
64 bytes from tomcat02 (172.17.0.2): icmp_seq=1 ttl=64 time=0.093 ms
64 bytes from tomcat02 (172.17.0.2): icmp_seq=2 ttl=64 time=0.054 ms
64 bytes from tomcat02 (172.17.0.2): icmp_seq=3 ttl=64 time=0.054 ms
​
--- tomcat02 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.054/0.067/0.093/0.018 ms
##使用Tomcat02来ping  tomcat01  (ping不通)
docker  exec   -it   tomcat02   ping   tomcat01
​
[root@localhost ~]# docker exec -it tomcat02 ping -c 3 tomcat01
ping: unknown host tomcat01

使用link其实是在容器内部 /etc/hosts 中添加了对应的映射关系。如果删除了就不能互通。

[root@localhost ~]# docker ps
CONTAINER ID   IMAGE        COMMAND             CREATED         STATUS         PORTS      NAMES
ea2bebceb939   tomcat:8.0   "catalina.sh run"   5 minutes ago   Up 5 minutes   8080/tcp   tomcat01
863a3c34388d   tomcat:8.0   "catalina.sh run"   6 minutes ago   Up 6 minutes   8080/tcp   tomcat02
​
[root@localhost ~]# docker exec -it tomcat01 /bin/bash
root@ea2bebceb939:/usr/local/tomcat# cd /etc
root@ea2bebceb939:/etc# cat hosts
127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2  tomcat02 863a3c34388d
172.17.0.3  ea2bebceb939

3、自定义网络

##查看帮助文档
 [root@localhost ~]# docker network --help
​
Usage:  docker network COMMAND
​
Manage networks
​
Commands:
  connect     Connect a container to a network
  create      Create a network
  disconnect  Disconnect a container from a network
  inspect     Display detailed information on one or more networks
  ls          List networks
  prune       Remove all unused networks
  rm          Remove one or more networks
​
Run 'docker network COMMAND --help' for more information on a command.
​
[root@localhost ~]# docker network  create --help
​
Usage:  docker network create [OPTIONS] NETWORK
​
Create a network
​
Options:
      --attachable           Enable manual container attachment
      --aux-address map      Auxiliary IPv4 or IPv6 addresses used by Network driver (default map[])
      --config-from string   The network from which to copy the configuration
      --config-only          Create a configuration only network
  -d, --driver string        Driver to manage the Network (default "bridge")
      --gateway strings      IPv4 or IPv6 Gateway for the master subnet
      --ingress              Create swarm routing-mesh network
      --internal             Restrict external access to the network
      --ip-range strings     Allocate container ip from a sub-range
      --ipam-driver string   IP Address Management Driver (default "default")
      --ipam-opt map         Set IPAM driver specific options (default map[])
      --ipv6                 Enable IPv6 networking
      --label list           Set metadata on a network
  -o, --opt map              Set driver specific options (default map[])
      --scope string         Control the network's scope
      --subnet strings       Subnet in CIDR format that represents a network segment
##自定义网络NTtomcat
[root@localhost ~]# docker network create --driver bridge --subnet 192.168.123.1/16 --gateway 192.168.123.1 NTtomcat
388c65d9e6dc3a685d9dfc07e6cd77b7df753b9790ececd2a4917c486c999fd5
[root@localhost ~]# docker  network ls
NETWORK ID     NAME       DRIVER    SCOPE
388c65d9e6dc   NTtomcat   bridge    local
a468667c9afc   bridge     bridge    local
9ed8bb46f222   host       host      local
cf4382a12125   none       null      local


##--driver  bridge   桥接模式    如果不指定默认为bridge
##--subnet 192.168.0.1/16    子网范围内的。0~16,也就是 255*255,去掉0个255,我们有65534可以分配的ip
##gateway 192.168.0.1  指定网关
##mynetwork   网络名称(路由名称)
##创建自定义容器tomcat01-01 和tomcat02-02
[root@localhost ~]# docker  run -d --name tomcat01-01 --ip 192.168.123.10 --network NTtomcat --hostname tomcat01-01 tomcat:8.0
710087d898e573015590421594d468e6f7b86cee81badcb76d3370f4decd113d
[root@localhost ~]# docker run -d --name  tomcat02-02 --ip 192.168.123.11 --network NTtomcat --hostname tomcat02-02 tomcat:8.0
e7804543a17de40136c883c1ae767d185fd033c0503751449f4b04a7bcc2b479
[root@localhost ~]# docker  ps
CONTAINER ID   IMAGE        COMMAND             CREATED              STATUS              PORTS      NAMES
e7804543a17d   tomcat:8.0   "catalina.sh run"   7 seconds ago        Up 7 seconds        8080/tcp   tomcat02-02
710087d898e5   tomcat:8.0   "catalina.sh run"   About a minute ago   Up About a minute   8080/tcp   tomcat01-01
ea2bebceb939   tomcat:8.0   "catalina.sh run"   25 minutes ago       Up 25 minutes       8080/tcp   tomcat01
863a3c34388d   tomcat:8.0   "catalina.sh run"   26 minutes ago       Up 26 minutes       8080/tcp   tomcat02
[root@localhost ~]# docker network ls
NETWORK ID     NAME       DRIVER    SCOPE
388c65d9e6dc   NTtomcat   bridge    local
a468667c9afc   bridge     bridge    local
9ed8bb46f222   host       host      local
cf4382a12125   none       null      local
##查看NTnetwork 路由下的容器,下面已经多出来Tomcat01-01和Tomcat02-02容器的网络地址

[root@localhost ~]# docker network inspect NTtomcat
[
    {
        "Name": "NTtomcat",
        "Id": "388c65d9e6dc3a685d9dfc07e6cd77b7df753b9790ececd2a4917c486c999fd5",
        "Created": "2023-07-20T09:11:11.409974483+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.123.1/16",
                    "Gateway": "192.168.123.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "710087d898e573015590421594d468e6f7b86cee81badcb76d3370f4decd113d": {
                "Name": "tomcat01-01",
                "EndpointID": "f068d52745d677dd2b67c4e091f8e7bb4364688a6047cb47bd69d2e95f7f5267",
                "MacAddress": "02:42:c0:a8:7b:0a",
                "IPv4Address": "192.168.123.10/16",
                "IPv6Address": ""
            },
            "e7804543a17de40136c883c1ae767d185fd033c0503751449f4b04a7bcc2b479": {
                "Name": "tomcat02-02",
                "EndpointID": "1261a1c9ecf877597564f3c76ce1b73da82533361f8bf0887c46c3b377fe7647",
                "MacAddress": "02:42:c0:a8:7b:0b",
                "IPv4Address": "192.168.123.11/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]
​
##查看Tomcat01-01 ip地址
[root@localhost ~]# docker  exec -it tomcat01-01 ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
24: eth0@if25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:c0:a8:7b:0a brd ff:ff:ff:ff:ff:ff
    inet 192.168.123.10/16 brd 192.168.255.255 scope global eth0
       valid_lft forever preferred_lft forever
##查看Tomcat01-01 ip地址
[root@localhost ~]# docker  exec -it tomcat02-02 ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
26: eth0@if27: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:c0:a8:7b:0b brd ff:ff:ff:ff:ff:ff
    inet 192.168.123.11/16 brd 192.168.255.255 scope global eth0
       valid_lft forever preferred_lft forever
##使用Tomcat01-01 ping   Tomcat02-02
[root@localhost ~]# docker exec -it tomcat01-01 ping -c 2 tomcat02-02
PING tomcat02-02 (192.168.123.11) 56(84) bytes of data.
64 bytes from tomcat02-02.NTtomcat (192.168.123.11): icmp_seq=1 ttl=64 time=0.124 ms
64 bytes from tomcat02-02.NTtomcat (192.168.123.11): icmp_seq=2 ttl=64 time=0.054 ms
​
--- tomcat02-02 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.054/0.089/0.124/0.035 ms
##使用Tomcat02-02  ping  Tomcat01-01
[root@localhost ~]# docker exec -it tomcat02-02 ping -c 2 tomcat01-01
PING tomcat01-01 (192.168.123.10) 56(84) bytes of data.
64 bytes from tomcat01-01.NTtomcat (192.168.123.10): icmp_seq=1 ttl=64 time=0.058 ms
64 bytes from tomcat01-01.NTtomcat (192.168.123.10): icmp_seq=2 ttl=64 time=0.052 ms
​
--- tomcat01-01 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.052/0.055/0.058/0.003 ms

4、不通网段的容器进行网络互通

tomcat01 网络ip 为172.17.0.2

 ##用Tomcat01 ping   tomcat01-01

[root@localhost ~]# docker  exec -it tomcat01  ping tomcat01-01
ping: unknown host tomcat01-01

##使用docker  network connect 将容器Tomcat01 加入到NTtomcat

[root@localhost ~]# docker  network connect  NTtomcat taomcat01
[root@localhost ~]# docker  exec -it taomcat01  ping -c 2 tomcat01-01
PING tomcat01-01 (192.168.123.10) 56(84) bytes of data.
64 bytes from tomcat01-01.NTtomcat (192.168.123.10): icmp_seq=1 ttl=64 time=0.080 ms
64 bytes from tomcat01-01.NTtomcat (192.168.123.10): icmp_seq=2 ttl=64 time=0.055 ms
^C
--- tomcat01-01 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.055/0.061/0.080/0.013 ms

 ##查看NTtomcat 中添加的容器

[root@localhost ~]# docker  network inspect NTtomcat
[
    {
        "Name": "NTtomcat",
        "Id": "388c65d9e6dc3a685d9dfc07e6cd77b7df753b9790ececd2a4917c486c999fd5",
        "Created": "2023-07-20T09:11:11.409974483+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.123.1/16",
                    "Gateway": "192.168.123.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "42b2bd9190d5b7de7e2e60b5eab41d6878f91abc517d25380af22ccc4ba05528": {
                "Name": "taomcat01",
                "EndpointID": "3e728f5b90751d45f0e00e69268d2bc9966b15c9578230fd5ab1c179551f6d23",
                "MacAddress": "02:42:c0:a8:00:01",
                "IPv4Address": "192.168.0.1/16",
                "IPv6Address": ""
            },
            "710087d898e573015590421594d468e6f7b86cee81badcb76d3370f4decd113d": {
                "Name": "tomcat01-01",
                "EndpointID": "f068d52745d677dd2b67c4e091f8e7bb4364688a6047cb47bd69d2e95f7f5267",
                "MacAddress": "02:42:c0:a8:7b:0a",
                "IPv4Address": "192.168.123.10/16",
                "IPv6Address": ""
            },
            "e7804543a17de40136c883c1ae767d185fd033c0503751449f4b04a7bcc2b479": {
                "Name": "tomcat02-02",
                "EndpointID": "1261a1c9ecf877597564f3c76ce1b73da82533361f8bf0887c46c3b377fe7647",
                "MacAddress": "02:42:c0:a8:7b:0b",
                "IPv4Address": "192.168.123.11/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Electron 学习_在进程之间通信

1.问题&#xff1a;Electron的主进程和渲染进程有着清楚的分工&#xff0c;并且不可互换。从渲染进程直接访问Node.js 接口&#xff0c;亦或者 从主进程访问HTML文档对象模型(DOM)都是不可能的 2.解决方法&#xff1a;使用进程间通信 (IPC) 可以使用 Electron 的ipcMain 模块和…

Redisson限流器RRateLimiter使用及源码分析

一、使用 使用很简单、如下 // 1、 声明一个限流器 RRateLimiter rateLimiter redissonClient.getRateLimiter(key);// 2、 设置速率&#xff0c;5秒中产生3个令牌 rateLimiter.trySetRate(RateType.OVERALL, 3, 5, RateIntervalUnit.SECONDS);// 3、试图获取一个令牌&#…

TCP首部格式【TCP原理(笔记五)】

文章目录 TCP首部格式源端口号&#xff08;Source Port&#xff09;目标端口号&#xff08;Destination Port&#xff09;序列号&#xff08;Sequence Number&#xff09;确认应答号&#xff08;Acknowledgement Number&#xff09;数据偏移&#xff08;Data Offset&#xff09…

Oracle 普通视图 (Oracle Standard Views)

视图&#xff08;views&#xff09;是一种基于表的"逻辑抽象"对象&#xff0c;由于它是从表衍生出来的&#xff0c;因此和表有许多相同点&#xff0c;我们可以和对待表一样对其进行查询/更新操作。但视图本身并不存储数据&#xff0c;也不分配存储空间。 本文只讨论普…

Linux下搭建pyqt5开发环境—基于Pycharm

防踩坑Tips&#xff1a; 1、不能学windows那样直接用pip安装PyQt5Designer和pyqt5-tools。这两个模块最根本的是用的windows的程序&#xff0c;linux上是运行不了的&#xff0c;特别是PyQt5Designer&#xff0c;会提示安装失败。 2、推荐在python环境安装同系统版本一致的pyq…

2023.7.16 第五十九次周报

目录 前言 文献阅读:跨多个时空尺度进行预测的时空 LSTM 模型 背景 本文思路 本文解决的问题 方法论 SPATIAL 自动机器学习模型 数据处理 模型性能 代码 用Python编写的LSTM多变量预测模型 总结 前言 This week, I studied an article that uses LSTM to solve p…

数据分析系统中的六边形战士——奥威BI系统

数据分析软件可以对收集的数据进行分析和报告&#xff0c;帮助企业获得更深入的数据洞察力&#xff0c;从而推动企业数字化运营决策&#xff0c;提高决策效率与质量。进入大数据时代&#xff0c;企业对数据分析软件的要求也在水涨船高&#xff0c;传统的数据分析软件显然已不能…

数据结构 单向链表(不循环)的基础知识和基础操作

头定义&#xff1a; typedef int datatype; typedef struct Node {//数据域存储数据datatype data;//指针域存储下一个地址struct Node *next; }*Linkelist; 创建节点 Linkelist create_node()//创建新节点 {Linkelist node(Linkelist)malloc(sizeof(struct Node));if(nodeN…

Elasticsearch 源码探究 001——故障探测和恢复机制

1、Elasticsearch 故障探测及熔断背景 探究Elasticsearch7.10.2 节点之间的故障探测以及熔断故障是怎么做的&#xff0c;思考生产上的最佳实践。 服务端故障场景&#xff1a; 单个master挂掉 除了断点断网&#xff0c;状态同步异常&#xff0c;主master也会认为自己已经失败&am…

ASPICE V模型之软件需求

ASPICE V模型之软件需求 了解ASPICE认识软件需求软件需求分解软件需求工作流程 了解ASPICE ASPICE全称是“Automotive Software Process Improvement and Capacity Determination”汽车软件过程改进及能力评定&#xff0c;是汽车行业用于评价软件开发团队的研发能力水平的模型框…

全球生成式AI大竞赛,Llama 2大模型现已可在亚马逊云科技上使用

一直以来Llama可以说是AI社区内最强大的开源大模型。但因为开源协议问题&#xff0c;一直不可免费商用。7月19日&#xff0c;Meta发布了大家期待已久的免费可商用版本Llama 2。一夜之间&#xff0c;大模型格局再次发生巨变。 作为Meta宣布的首批合作伙伴之一&#xff0c;现亚…

Ubuntu 安装Postgresql与PostGIS

1.前言 最近在做GIS分析&#xff0c;采集设备的经纬度点判断是否进出围栏以及是否产生道路偏移报警&#xff0c;在之前的文章有介绍过Windows下使用C#来实现&#xff0c;参考文章&#xff1a;利用PostgresqlPostgis进行空间地理信息分析&#xff08;道路偏移&#xff0c;进出电…

sql注入---报错注入

updatexml&#xff08;&#xff09;&#xff1a;对XML文档数据进行查询和修改 extractvalue&#xff08;&#xff09;&#xff1a;对XML文档数据进行查询 floor&#xff08;&#xff09;&#xff1a;取整的函数 前提是未关闭数据库报错函数&#xff0c;对于一些SQL语句的错误…

Java反射、动态代理

文章目录 反射什么是动态代理&#xff1f;程序为什么需要代理?代理长什么样? 反射 java反射机制原理&#xff1a;我们写的源代码是.java文件&#xff0c;通过javac编译后成为.class文件&#xff0c;即字节码文件&#xff0c;程序执行时&#xff0c;JVM会类加载字节码文件到内…

浅谈单片机

目录 1.什么是单片机 2.单片机的作用&#xff1f; 3.单片机的种类 4.如何学好单片机 5. 单片机的就业前景 1.什么是单片机 单片机&#xff08;Microcontroller Unit&#xff0c;简称MCU&#xff09;是一种集成了微处理器核心、存储器、输入输出端口和各种外围功能模块于一体…

Rspack 学习了解

一、简介 Rspack GitHub 仓库、Rspack Quick start。 Rspack 是由字节 ByteDance Web Infra 团队基于 Rust 语言开发的 Web 高性能构建工具。 Rust 是种高效、可靠的通用高级语言。其高效不仅限于开发效率&#xff0c;执行效率也是令人称赞的&#xff0c;属于少有兼顾开发效率…

vulnhub打靶--buli_b0x

目录 vulnhub--buli_b0x1.下载靶机2.导入靶机&#xff0c;开启靶机&#xff0c;nmap扫描3.探测目录&#xff0c;发现敏感目录4.通过test.php下载源码5.代码审计6.提权7.总结 vulnhub–buli_b0x 1.下载靶机 Billu_b0x.zip 2.导入靶机&#xff0c;开启靶机&#xff0c;nmap扫描…

分布式 RPC 框架HSF

分布式 RPC 框架HSF 概述HSF架构调用方式优势应用场景 概述 HSF (High-speed Service Framework)&#xff0c;高速服务框架&#xff0c;是在阿里巴巴内部广泛使用的分布式 RPC 服务框架。HSF 作为阿里巴巴的基础中间件&#xff0c;联通不同的业务系统&#xff0c;解耦系统间的…

WebSocket笔记

1. websocket介绍 WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手&#xff0c;两者之间就可以创建持久性的连接&#xff0c; 并进行双向数据传输。 HTTP协议和WebSocket协议对比&#xff1a; HTTP是短连接W…

iOS--动静态库

文章目录 认识动静态库静态库动态库静态的打包静态库的使用动态库的打包动态库的使用 动静态库的本质就是可执行程序的"半成品"。 需要完成一个可执行程序需要经历以下四个步骤: 预处理:完成头文件的展开&#xff0c;去掉注释&#xff0c;宏替换&#xff0c;条件编译…