Docker中的网络
文章目录
- 网络
- 网桥(bridge)
- 创建网桥接口
- host
- none
- container
- overlay
- overlay底层原理

网络
网桥(bridge)
在Docker中,网桥(Bridge)是一种网络驱动,用于实现Docker容器之间和容器与宿主机之间的通信。Docker中的网桥工作原理可以简要概括如下:
-
Docker0网桥:
- 当Docker引擎启动时,会自动创建一个名为
docker0
的虚拟网络接口,它是默认的Docker网桥。这个网桥的主要作用是连接所有Docker容器和宿主机的网络。
- 当Docker引擎启动时,会自动创建一个名为
-
容器连接到网桥:
- 当用户启动一个新的Docker容器时,Docker会在
docker0
网桥上创建一个新的虚拟网络接口,并将容器连接到该网桥。每个容器都可以通过docker0
网桥和其他容器以及宿主机进行通信。
- 当用户启动一个新的Docker容器时,Docker会在
-
容器之间的通信:
- 当多个容器连接到同一个
docker0
网桥时,它们可以直接相互通信。Docker通过使用Linux内核的veth
设备对来自不同容器的数据流进行转发。这些数据流会通过docker0
网桥进行桥接,从而实现容器之间的直接通信。
- 当多个容器连接到同一个
-
容器与宿主机的通信:
- 连接到
docker0
网桥的容器也可以与宿主机进行通信。Docker会在宿主机上创建一对虚拟网络接口:veth
设备和veth-peer
设备。这对虚拟网络接口的一个端口连接到docker0
网桥,另一个端口连接到容器。这样,容器和宿主机可以通过这对虚拟网络接口进行通信。
- 连接到
-
端口映射:
- 为了使外部网络能够访问容器中运行的服务,Docker支持端口映射。通过端口映射,可以将容器内的服务端口映射到宿主机的端口上。这样,外部网络就可以通过宿主机的IP地址和映射的端口来访问容器中的服务。
总结来说,Docker中的网桥工作原理是通过创建虚拟网络接口并连接到docker0
网桥来实现容器之间和容器与宿主机之间的通信。容器通过网桥实现相互通信,并通过端口映射使外部网络能够访问容器中的服务。这种网络配置使得Docker容器能够在同一个宿主机上创建独立的网络环境,并实现容器之间的隔离和互联。
宿主机的ip
[root@docker ~]# ip add
...
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:f3:a5:85:03 brd ff:ff:ff:ff:ff:ffinet 172.17.0.1/16 brd 172.17.255.255 scope global docker0valid_lft forever preferred_lft foreverinet6 fe80::42:f3ff:fea5:8503/64 scope link valid_lft forever preferred_lft forever
29: veth774987e@if28: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default link/ether 16:84:ce:26:90:d0 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet6 fe80::1484:ceff:fe26:90d0/64 scope link valid_lft forever preferred_lft forever
31: veth94d7539@if30: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default link/ether 76:d6:a8:62:a7:32 brd ff:ff:ff:ff:ff:ff link-netnsid 1inet6 fe80::74d6:a8ff:fe62:a732/64 scope link valid_lft forever preferred_lft forever
容器ip
[root@docker ~]# docker exec box1 ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever
28: eth0@if29: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ffinet 172.17.0.2/16 brd 172.17.255.255 scope global eth0valid_lft forever preferred_lft forever
[root@docker ~]# docker exec box2 ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever
30: eth0@if31: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ffinet 172.17.0.3/16 brd 172.17.255.255 scope global eth0valid_lft forever preferred_lft forever
查看bridge的信息
[root@docker ~]# brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.0242f3a58503 no veth774987eveth94d7539
docker network inspect bridge
创建网桥接口
创建网桥
docker network create -d bride ydh
查看信息
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
555b043af3ec bridge bridge local
ebf78f0dd27f host host local
3b7c9e498144 none null local
baa150161000 ydh bridge local
在宿主机上查看
8: br-baa150161000: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:b0:17:de:a1 brd ff:ff:ff:ff:ff:ffinet 172.18.0.1/16 brd 172.18.255.255 scope global br-baa150161000valid_lft forever preferred_lft forever
查看详细信息
[root@localhost ~]# docker network inspect ydh
[{"Name": "ydh","Id": "baa15016100019f40011d2602d18a19a4fae7fedf73e0dbb32c5ffec229db0a2","Created": "2023-07-25T19:44:06.91098922+08:00","Scope": "local","Driver": "bridge","EnableIPv6": false,"IPAM": {"Driver": "default","Options": {},"Config": [{"Subnet": "172.18.0.0/16","Gateway": "172.18.0.1"}]},"Internal": false,"Attachable": false,"Ingress": false,"ConfigFrom": {"Network": ""},"ConfigOnly": false,"Containers": {},"Options": {},"Labels": {}}
]
创建运行容器指定网桥
[root@localhost ~]# docker run -d --name ynginx -p 8808:80 --network ydh nginx:latest
2d605d921cac009de338dd45df255dfc0e9552aa264c8bfecd583dd78b723132
host
在Docker中,Host网络模式是一种网络配置选项,它允许Docker容器与宿主机共享同一个网络栈,即它们使用宿主机的网络命名空间和IP地址。这意味着容器与宿主机之间没有网络隔离,它们可以直接使用宿主机的网络接口进行通信,无需进行NAT(Network Address Translation)。
以下是Host网络模式的详细介绍:
-
网络共享: 在Host网络模式下,Docker容器和宿主机共享同一个网络栈,它们使用相同的网络接口和IP地址。这使得容器可以直接访问宿主机的网络接口,并且无需进行网络地址转换(NAT)或端口映射。
-
IP地址和端口: 由于容器与宿主机共享网络栈,所以它们使用宿主机的IP地址和端口。在Host网络模式下,容器无需绑定或映射端口,因为它们直接使用宿主机的端口。
-
网络隔离: Host网络模式下的容器与宿主机之间没有网络隔离。这意味着容器可以访问宿主机上的所有网络服务,并且宿主机上的其他网络资源也可以直接访问容器。
-
性能: Host网络模式可以提高容器的网络性能,因为容器直接使用宿主机的网络接口,无需经过额外的网络地址转换。
-
适用场景: Host网络模式适用于一些特定的应用场景,例如:
- 当容器需要与宿主机上的其他服务进行高性能的网络通信时。
- 当容器需要绑定宿主机的特定网络接口,例如某个物理网卡。
- 当容器需要访问宿主机上的网络服务,而不需要进行端口映射。
-
注意事项: 使用Host网络模式会导致容器与宿主机之间没有网络隔离,这可能会增加安全风险。容器与宿主机共享网络栈,所以容器的网络配置会影响到宿主机的网络配置,需要注意避免网络冲突和端口占用问题。
使用Host网络模式时,您需要明确了解容器与宿主机共享网络栈的特点,以及可能带来的安全风险和性能影响。Host网络模式适用于特定的使用场景,例如高性能网络通信或特定网络绑定需求。对于一般应用,通常建议使用桥接网络模式,以保持容器之间的网络隔离。
none
在Docker中,"none"网络模式是一种特殊的网络模式,容器在该模式下没有网络连接。这意味着容器内的进程无法与外部网络或其他容器通信。在"none"网络模式中,Docker容器不分配任何网络接口,也没有默认的网络配置。以下是"none"网络模式的详细介绍:
1. 没有网络接口: 在"none"网络模式下,Docker容器不会分配任何网络接口,这意味着容器内部没有网络可用。因此,容器内的进程无法访问外部网络,也无法通过网络与其他容器进行通信。
2. 与宿主机隔离: 在"none"网络模式下,容器与宿主机之间是隔离的,容器内的进程无法直接访问宿主机的网络接口和资源。这种隔离保护了宿主机的网络安全,确保容器内部的进程不能直接访问宿主机上的网络和服务。
3. 适用场景: "none"网络模式适用于一些特殊场景,例如在安全敏感的环境中运行容器时,您可能希望容器完全隔离网络,从而防止容器内的应用程序与外部网络进行通信。
4. 容器内部通信: 在"none"网络模式下,容器内部的进程仍然可以通过进程间通信(IPC)机制与其他容器或宿主机进行通信。IPC机制允许容器内的进程使用管道、共享内存等方式进行通信,而无需经过网络。
5. 自定义网络配置: 虽然容器在"none"网络模式下没有网络连接,但是您仍然可以手动配置容器内部的网络,例如通过添加虚拟网络接口或设置本地环回地址。这种情况下,您需要手动设置容器的网络配置,容器才能在"none"网络模式下进行一些局域网的通信。
总结来说,"none"网络模式在Docker中用于将容器完全隔离网络,容器内的进程无法与外部网络通信。这种模式适用于一些特殊场景,例如在需要完全隔离网络的安全环境下运行容器。然而,要注意在"none"网络模式下,容器内的进程之间仍然可以通过IPC机制进行通信,因此局域网内的一些进程间通信仍然是可行的。
container
在Docker中,网络容器(Network Container)是一种特殊的容器,它专门用于管理和提供网络功能,而不运行应用程序。网络容器不是运行应用程序的容器,而是通过Docker的网络驱动程序创建的专门用于网络隔离和连接的容器。以下是网络容器的详细介绍:
1. 网络功能提供: 网络容器的主要目的是提供网络功能,例如实现网络隔离、网络连接、路由和防火墙等。它们可以用于创建自定义网络环境,或者实现特定网络配置,以满足复杂的网络需求。
2. 不运行应用程序: 不同于普通的应用程序容器,网络容器不运行任何应用程序。它们的唯一任务是处理网络功能,并为其他应用程序容器提供网络连接。
3. 容器之间通信: 网络容器可以与其他应用程序容器或其他网络容器进行通信。它们可以在不同的网络环境中运行,提供不同的网络服务,但能够通过Docker的网络功能实现彼此之间的通信。
4. 自定义网络环境: 通过使用网络容器,您可以创建自定义的网络环境,实现更高级的网络配置。例如,您可以创建一个网络容器来实现虚拟私有网络(VPN)功能,将不同的应用程序容器连接到该VPN网络中,从而实现安全的网络通信。
5. 网络隔离: 网络容器通过Docker网络功能提供了网络隔离。这意味着网络容器与其他容器和宿主机之间具有独立的网络命名空间,它们之间的网络不会相互干扰。
6. 网络驱动程序: 网络容器使用Docker的网络驱动程序来实现网络功能。这些网络驱动程序可以是桥接网络、覆盖网络、Macvlan网络等,通过选择不同的网络驱动程序,您可以实现不同的网络配置。
7. 轻量级: 网络容器通常是轻量级的,因为它们不需要运行应用程序,只需专注于网络功能。这使得它们更高效,不会占用过多的系统资源。
总体来说,网络容器是一种专门用于管理和提供网络功能的容器。它们不运行应用程序,而是专注于网络隔离、连接和配置。通过使用网络容器,您可以实现复杂的网络环境和定制化的网络配置,从而满足不同的网络需求。
overlay
Docker中的Overlay网络是一种用于跨多个Docker主机创建共享虚拟网络的网络驱动程序。它是Docker Swarm集群的核心组件之一,允许容器在不同的主机上透明地通信,实现容器之间的透明网络连接。以下是Overlay网络的详细信息:
1. 跨主机通信: Overlay网络允许在Docker Swarm集群中的多个主机上创建一个共享的虚拟网络。这使得在不同主机上运行的容器可以直接通信,而无需进行额外的配置。
2. 网络隔离: 每个Overlay网络都有独立的命名空间,使得不同的Overlay网络之间具有网络隔离。这意味着在不同的Overlay网络中的容器无法直接通信,除非通过相应的网络配置。
3. 路由和覆盖: Overlay网络使用覆盖(Overlay)技术,通过在底层网络之上构建虚拟网络,实现容器之间的透明通信。每个容器都被分配一个虚拟IP地址,它们之间的通信通过Overlay网络驱动程序进行路由。
4. 透明性: 对于应用程序容器而言,Overlay网络是透明的,它们感知不到跨主机的网络连接。容器可以使用标准的网络配置(IP地址、端口等),就像在单个主机上运行一样。
5. 网络驱动程序: Overlay网络是Docker的一种网络驱动程序。要启用Overlay网络,您需要在Docker Swarm模式下创建一个Overlay网络,然后将需要在Overlay网络中通信的服务或容器加入到该网络中。
6. 安全性: Overlay网络使用加密和安全机制来保护跨主机的通信,确保数据在传输过程中是安全的。这为容器之间的安全通信提供了保障。
7. 负载均衡: Overlay网络集成了内置的负载均衡机制,可以自动在多个容器之间分配请求,实现负载均衡,提高应用程序的可用性和性能。
8. 多主机部署: Overlay网络特别适用于在多个Docker主机上部署应用程序。通过将容器分布在不同的主机上,Overlay网络可以实现高可用性和横向扩展。
总结来说,Overlay网络是一种在Docker Swarm集群中创建共享虚拟网络的网络驱动程序。它允许在不同主机上的容器透明地通信,实现容器之间的透明网络连接。通过Overlay网络,您可以在多主机环境中构建高可用性、横向扩展的应用程序。
overlay底层原理
Docker中的Overlay网络是一种非常强大的网络驱动程序,它允许在多个Docker主机上创建一个共享的虚拟网络。通过Overlay网络,您可以在不同的主机上运行容器,并使这些容器能够直接通信,而无需进行端口映射。下面是Overlay网络的底层原理的详细信息:
-
VXLAN技术: Overlay网络的底层原理使用了VXLAN(Virtual Extensible LAN)技术。VXLAN是一种网络虚拟化技术,它通过在现有网络上创建逻辑隧道,将数据包封装在UDP数据包中,从而在不同网络之间传输数据。
-
虚拟网络隧道: 在Overlay网络中,每个Docker主机上的容器都属于一个虚拟网络,这些虚拟网络之间通过虚拟网络隧道进行通信。每个虚拟网络都有一个唯一的VXLAN网络标识(VNI,VXLAN Network Identifier),用于在底层区分不同的虚拟网络。
-
VXLAN头: 在Overlay网络中,VXLAN头是在传输数据包时添加到原始数据包之前的一部分。VXLAN头包含了虚拟网络标识(VNI),用于识别数据包所属的虚拟网络。这样,当数据包在Overlay网络中传输时,Docker主机可以根据VNI将数据包正确地路由到目标虚拟网络。
-
网络广播: 在Overlay网络中,Docker主机使用广播机制来发现其他主机上的容器和虚拟网络。当新的容器加入或离开虚拟网络时,主机之间会进行广播通信,以更新虚拟网络中的拓扑结构。
-
数据包转发: 在Overlay网络中,Docker主机会根据VXLAN头中的VNI信息,将数据包转发到相应的虚拟网络。这样,即使容器位于不同的Docker主机上,它们也可以直接通信,就像它们在同一主机上一样。
-
控制平面和数据平面: Overlay网络通常由控制平面和数据平面组成。控制平面用于管理虚拟网络的拓扑结构和路由信息,而数据平面负责实际的数据包转发和通信。
总结来说,Overlay网络通过VXLAN技术创建虚拟网络隧道,使得分布在不同Docker主机上的容器能够直接通信。VXLAN头中的VNI标识用于将数据包正确路由到目标虚拟网络。Overlay网络的底层原理允许容器在不同主机之间建立透明的网络连接,从而实现高效的分布式应用部署。
相关文章:

Docker中的网络
文章目录 网络网桥(bridge)创建网桥接口hostnonecontaineroverlayoverlay底层原理 网络 网桥(bridge) 在Docker中,网桥(Bridge)是一种网络驱动,用于实现Docker容器之间和容器与宿主…...

SRS开源代码框架,协程库state-threads的使用
本章内容解读SRS开源代码框架,无二次开发,以学习交流为目的。 SRS是国人开发的流媒体服务器,C语言开发,本章使用版本:https://github.com/ossrs/srs/tree/5.0release。 目录 SRS协程库ST的使用源码ST协程库测试SrsAut…...

【QT 网络云盘客户端】——登录界面功能的实现
目录 1.注册账号 2.服务器ip地址和端口号设置 3. 登录功能 4.读取配置文件 5.显示主界面 1.注册账号 1.点击注册页面,将数据 输入 到 用户名,昵称,密码,确认密码,手机,邮箱 的输入框中, 点…...

【复盘与分享】第十一届泰迪杯B题:产品订单的数据分析与需求预测
文章目录 题目第一问第二问2.1 数据预处理2.2 数据集分析2.2.1 训练集2.2.2 预测集 2.3 特征工程2.4 模型建立2.4.1 模型框架和评价指标2.4.2 模型建立2.4.3 误差分析和特征筛选2.4.4 新品模型 2.5 模型融合2.6 预测方法2.7 总结 结尾 距离比赛结束已经过去两个多月了。 整个过…...

X - Transformer
回顾 Transformer 的发展 Transformer 最初是作为机器翻译的序列到序列模型提出的,而后来的研究表明,基于 Transformer 的预训练模型(PTM) 在各项任务中都有最优的表现。因此,Transformer 已成为 NLP 领域的首选架构&…...

ubuntu下畅玩Seer(via wine)
第一步:安装wine 部分exe文件的运行需要32位的指令集架构,需要向Ubuntu系统中添加一个新的架构(i386),以支持32位的软件包。因为在64位的Ubuntu系统中,默认情况下只能安装和运行64位的软件。 通过添加i386…...

第五章:Spring下
第五章:Spring下 5.1:AOP 场景模拟 创建一个新的模块,spring_proxy_10,并引入下面的jar包。 <packaging>jar</packaging><dependencies><dependency><groupId>junit</groupId><artifactI…...

在CSDN学Golang云原生(Kubernetes基础)
一,k8s集群安装和升级 安装 Golang K8s 集群可以参照以下步骤: 准备环境:需要一组 Linux 服务器,并在每台服务器上安装 Docker 和 Kubernetes 工具。初始化集群:使用 kubeadm 工具初始化一个 Kubernetes 集群。例如&…...

给APK签名—两种方式(flutter android 安装包)
前提:给未签名的apk签名,可以先检查下apk有没有签名 通过命令行查看:打开终端或命令行界面,导入包含APK文件的目录,并执行以下命令: keytool -printcert -jarfile your_app.apk 将 your_app.apk替换为要检查…...

观察者模式、中介者模式和发布订阅模式
观察者模式 定义 观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知,并自动更新 观察者模式属于行为型模式,行为型模式关注的是对象之间的通讯,观察者模式…...

PHP-Mysql图书管理系统--【白嫖项目】
强撸项目系列总目录在000集 PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 首页phpStudy 设置导数据库后台的管理界面数据库表结构项目目录如图:代码部分:主页的head 配套资源作业: 本系列校训 用免费公开视频&am…...

网络传输层协议:UDP和TCP
背景知识 再谈端口号 端口号(Port)标识了一个主机上进行通信的不同的应用程序; 在TCP/IP协议中, 用 "源IP", "源端口号", "目的IP", "目的端口号", "协议号" 这样一个五元组来标识一个通信(可以通过 netstat -…...

ElementUI Select选择器如何根据value值显示对应的label
修改前效果如图所示,数据值状态应显示为可用,但实际上仅显示了状态码1,并没有显示其对应的状态信息。在排查了数据类型对应关系问题后,并没有产生实质性影响,只好对代码进行了如下修改。 修改前代码: <…...

Kotlin 内联函数语法之let、apply、also、run、with的用法与详解
一、介绍 kotlin的语法千奇百怪,今天我们将介绍项目中频率使用比较高的几个内联函数。 二、什么叫内联函数? 内联函数 的语义很简单:把函数体复制粘贴到函数调用处 。使用起来也毫无困难,用 inline关键字修饰函数即可。 语法&a…...

Swift 中如何判断是push 过来的页面 还是present过来的 页面
在 Swift 中,可以通过检查当前视图控制器的 presentingViewController 属性来判断是通过 push 过来的页面还是 present 过来的页面。 下面是一个示例代码,展示如何判断是通过 push 还是 present 过来的页面: if let presentingViewControll…...

基于K8s环境·使用ArgoCD部署Jenkins和静态Agent节点
今天是「DevOps云学堂」与你共同进步的第 47天 第⑦期DevOps实战训练营 7月15日已开营 实践环境升级基于K8s和ArgoCD 本文节选自第⑦期DevOps训练营 , 对于训练营的同学实践此文档依赖于基础环境配置文档, 运行K8s集群并配置NFS存储。实际上只要有个K8s集…...

874. 模拟行走机器人
874. 模拟行走机器人 机器人在一个无限大小的 XY 网格平面上行走,从点 (0, 0) 处开始出发,面向北方。该机器人可以接收以下三种类型的命令 commands : -2 :向左转 90 度-1 :向右转 90 度1 < x < 9 :…...

【Linux】- RPM 与 YUM
RPM 与 YUM 1.1 rpm 包的管理1.2 rpm 包的简单查询指令1.3 rpm 包的其它查询指令:1.4 卸载 rpm 包:2.1 安装 rpm 包3.1 yum3.2 yum 的基本指令3.3 安装指定的 yum 包3.4 yum 应用实例: 1.1 rpm 包的管理 介绍 rpm 用于互联网下载包的打包及安…...

Visual Studio 2015编译器 自动生成 XXX_EXPORTS宏
XXX_EXPORTS宏 XXX_EXPORTS宏是由Visual Studio 2015编译器自动生成的。这个宏用于标识当前项目是一个导出符号的动态链接库(DLL)项目。在使用Visual Studio 2015创建Win32项目时,编译器会自动添加这个宏到项目的预定义宏中。 这个宏的作用…...

HTML5的应用现状与发展前景
HTML5,作为Web技术的核心,已经深深地改变了我们看待和使用Web的方式。它不仅提供了数不尽的新特性和功能,还使得Web设计和开发更加互动、更加直观。这篇文章将探讨HTML5的当前应用现状,以及它的未来发展前景。 HTML5的应用现状 H…...

day44-Spring_AOP
0目录 1.2.3 1.Spring_AOP 实体类: Mapper接口: Service和实现类: 测试1: 运行后: 测试2:无此型号时 测试3:库存不足时 解决方案1:事务声明管理器 测试:…...

selenium IDE 接入jenkins-转载
Selenium-IDE脚本录制,selenium-side-runner自动化测试教程_51CTO博客_selenium ide录制脚本 备忘录...

云计算结合数据科学突破信息泛滥(下)
大家好,本文将继续讨论云计算结合数据科学突破信息泛滥的相关内容,讲述其余三个关键组成部分。 3.数据清理和预处理 收集数据并将其存储在云端之后,下一步是将数据进行转换。因为原始数据经常包含错误、不一致和缺失的值,这些都…...

蓝桥杯单片机第十二届国赛 真题+代码
iic.c /* # I2C代码片段说明1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。2. 参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题中对单片机时钟频率的要求,进行代码调试和修改。 */ #include <STC1…...

MyBatis学习笔记之缓存
文章目录 一级缓存一级缓存失效 二级缓存二级缓存失效二级缓存相关配置 MyBatis集成EhCache 缓存:cache 缓存的作用:通过减少IO的方式,来提高程序的执行效率 mybatis的缓存:将select语句的查询结果放到缓存(内存&…...

小程序 WxValidate.js 再次封装
util.js // 合并验证规则和提示信息 const filterRules (objectItem) > {let rules {}, messages {};for (let key in objectItem) {rules[key] objectItem[key].rulesmessages[key] objectItem[key].message}return { rules, messages } }module.exports {filterRule…...

redis 第三章
目录 1.主从复制 2.哨兵 3.集群 4.总结 1.主从复制 结果: 2.哨兵 3.集群 4.总结 通过集群,redis 解决了写操作无法负载均衡,以及存储能力受到单机限制的问题,实现了较为完善的高可用方案。...

MYSQL常见面试题汇总
MYSQL常见面试题汇总 1. 什么是MYSQL?它有哪些特点? MYSQL是一种开源的关系型数据库管理系统。它具有以下特点: 高性能:MYSQL能够处理大量的并发请求,并提供快速的响应时间。可靠性:MYSQL具有数据持久化…...

Java接口通过token登录实现页面跳转到登录成功后的页面
首先,你需要在接口请求中将token作为参数传递给后端,后端需要对token进行验证并获取登录用户的信息。 在验证通过后,你可以将登录成功后的页面链接返回给前端,前端通过跳转到该链接来实现页面跳转。 以下是一个简单的Java代码演…...

Linux-文件管理
1.文件管理概述 1.Bash Shell对文件进行管理 谈到Linux文件管理,首先我们需要了解的就是,我们要对文件做些什么事情? 其实无非就是对一个文件进行、创建、复制、移动、查看、编辑、压缩、查找、删除、等等 例如 : 当我们想修改系统的主机名…...