RHCE DNS

DNS

  • DNS
    • 1.1 DNS介绍
    • 1.2 安装bind,配置文件
    • 1.3 正向解析文件模板
    • 1.4 反向解析文件模板
    • 1.5 转发服务器实验
    • 1.6 解析web服务器实验
    • 1.7 区域传送
      • 克隆虚拟机

DNS

1.1 DNS介绍

DNS系统
域名系统(DNS)是一个分层的分布式数据库。它存储用于将Internet主机名映射到IP地址(反之亦然)的信息、邮件路由信息以及Internet应用程序使用的其他数据。

  • 域和域名
    存储在DNS中的数据由根据组织或管理边界组织为树的域名标识。树的每个节点(称为域)都有一个标签。节点的域名是从节点到根节点的路径上所有标签的串联。这以书面形式表示为从右到左列出并用点分隔的标签串。标签只需在其父域中是唯一的。

eg.
Inc.公司主机的域名可以是ourhost.example.com,其中com是
ourhost.example.com所属的顶级域,example是com的子域,ourhost是主机的名称。

  • 区域
    如前所述,区域是DNS树中的委托点。区域由域名服务器拥有完整信息并拥有权限的域树的连续部分组成。它包含从域树中某一点向下的所有域名,但委托给其他区域的域名除外。委派点由父分区中的一个或多个NS记录标记,这些记录应与委派分区根上的等效NS记录匹配。
  • 权威服务器
    每个区域至少由一个权威名称服务器提供服务,该服务器包含该区域的完整数据。为了使DNS能够容忍服务器和网络故障,大多数区域在不同的网络上有两个或两个以上的权威服务器。来自权威服务器的响应在响应数据包中设置了“权威应答”(AA)位
  • 主服务器
    维护区域数据主副本的权威服务器称为主(或主)服务器,或简称为主服务器。通常,它从一些由人工编辑的本地文件加载分区内容,或者可能从一些由人工编辑的其他本地文件机械生成分区内容。此文件称为区域文件或主文件。但是,在某些情况下,区域文件可能根本不由人工编辑,而是动态更新操作的结果。
  • 辅助服务器
    其他权威服务器(称为辅助(或从属)服务器)使用称为区域传输的复制过程从另一台服务器加载区域内容。通常,数据直接从主主机传输,但也可以从另一个辅助主机传输。换句话说,辅助服务器本身可以充当从属辅助服务器的主服务器。

辅助服务器必须定期发送刷新查询,以确定区域内容是否已更新。这是通过发送一个对区域开始授权(SOA)记录的查询并检查序列字段是否已更新来完成的;如果是,则启动新的传输请求。这些刷新查询的计时由SOA刷新和重试字段控制,但可以使用最大刷新时间、最小刷新时间、最大重试时间和最小重试时间选项覆盖。
如果无法在SOA EXPIRE选项指定的时间内更新区域数据(最多硬编码24周),则辅助区域将过期,不再响应查询。

  • 缓存服务器
    大多数操作系统提供的解析程序库都是存根解析程序,这意味着它们无法通过直接与权威服务器对话来自行执行完整的DNS解析过程。相反,它们依赖本地名称服务器来代表它们执行解析。这样的服务器称为递归名称服务器;它对本地客户端执行递归查找。

为了提高性能,递归服务器缓存它们执行的查找结果。由于递归和缓存过程紧密相连,术语递归服务器和缓存服务器通常是同义词。
记录可以保留在缓存名称服务器的缓存中的时间长度由与每个资源记录关联的生存时间(TTL)字段控制。

  • 转发服务器
    即使是缓存名称服务器本身也不一定执行完整的递归查找。相反,它可以将无法满足的部分或全部查询从其缓存转发到另一个缓存名称服务器(通常称为转发器)。
    当管理员不希望给定站点上的所有服务器直接与Internet的其余部分交互时,通常使用转发器。例如,常见的情况是多个内部DNS服务器位于Internet防火墙后面。防火墙后面的服务器将其请求转发给具有外部访问权限的服务器,该服务器代表内部服务器查询 Internet DNS 服务器。

1.2 安装bind,配置文件

[root@localhost ~]# ll /mnt
total 0
drwxr-xr-x. 2 root root 6 Oct 13 20:09 hgfs
[root@localhost ~]# mount /dev/sr0 /mnt
mount: /mnt: WARNING: source write-protected, mounted read-only.
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ll
total 8
-rw-r--r--. 1 root root 358 Oct 13 21:17 redhat.repo
-rw-r--r--. 1 root root 184 Oct 19 21:26 wangluo.repo
[root@localhost yum.repos.d]# cd -
/root
[root@localhost ~]# dnf install bind -y
Updating Subscription Management repositories.
Unable to read consumer identity
...
...
 python3-bind-32:9.16.23-14.el9_3.noarch                                               
 python3-ply-3.11-14.el9.noarch                                                        

Complete!
[root@localhost ~]# ll /etc/named.conf
-rw-r-----. 1 root named 1722 Sep 20  2023 /etc/named.conf
# 配置文件解析
[root@localhost ~]# vim /etc/named.conf
[root@localhost ~]# cat /etc/named.conf
options {
/*
监听方式,服务监听指定ip的53号端口
服务器可能有多张网卡,any表示所有网卡监听53端口的DNS解析请求
todo 可以个实验:1、ip指定为本机ip。2、ip指定为同网段随便的ip
*/
	listen-on port 53 { 127.0.0.1; };
	directory 	"/var/named";  /*数据文件目录*/
};

/*之所以全部DNS服务器都知道根域名服务器的位置,就是下面的配置在生效*/
zone "haha.com" IN {
	type master;
	file "named.haha";
};


[root@localhost ~]# cd /var/named/
[root@localhost named]# ll
total 16
drwxrwx---. 2 named named    6 Sep 20  2023 data
drwxrwx---. 2 named named    6 Sep 20  2023 dynamic
-rw-r-----. 1 root  named 2253 Sep 20  2023 named.ca
-rw-r-----. 1 root  named  152 Sep 20  2023 named.empty
-rw-r-----. 1 root  named  152 Sep 20  2023 named.localhost
-rw-r-----. 1 root  named  168 Sep 20  2023 named.loopback
drwxrwx---. 2 named named    6 Sep 20  2023 slaves


[root@localhost named]# vim named.haha
[root@localhost named]# cat named.haha
$TTL  1D
@  IN   SOA  @  admin.haha,com, (
                                0
                                1
                                1
                                1
                                1)
        IN      NS    ns.haha.com.
        IN      MX    10   mail.haha.com.
ns      IN      A     2.2.2.131
mail    IN      A     2.2.2.131
www     IN      A     2.2.2.131
news     IN      A     2.2.2.131
ww      IN      CNAME  www.haha.com.
[root@localhost named]# systemctl start nginx
[root@localhost named]# firewall-cmd --permanent  --add-service=dns
success
[root@localhost named]# firewall-cmd --reload 
success
[root@localhost named]# dig -t NS haha.com @2.2.2.131

; <<>> DiG 9.16.23-RH <<>> -t NS haha.com @2.2.2.131
;; global options: +cmd
;; connection timed out; no servers could be reached
[root@localhost named]# dig -t MX haha.com @2.2.2.131

[root@localhost named]# dig -t A www.haha.com @2.2.2.131

[root@localhost named]# dig -t A news.haha.com @2.2.2.131

[root@localhost named]# dig -t A CNAME ww.haha.com @2.2.2.131

1.3 正向解析文件模板

序列号(Serial):
格式为yyyymmddnn,nn代表这一天是第几次修改。辅名字服务器通过比较这个序列号是否加载一份新的
区数据拷贝。
refresh(刷新):
告诉该区的辅助服务器相隔多久检查该区的数据是否是最新的。单位为秒。刷新率从1200到43200秒不
等。
retry(重试):
如果辅名字服务器超过刷新间隔时间后无法访问主服务器,那么它就开始隔一段时间重试连接一次。这个
时间通常比刷新时间短,但也不一定非要这样。默认的刷新率是1800秒。然而,它可以在180到
2419200秒之间变化。 
expire(过期或期满):
如果在期满时间内辅名字服务器还不能和主服务器连接上,辅名字服务器就使用这个我失效。这就意味着
辅名字服务器将停止关于该区的回答,因为这些区数据太旧了,没有用了。设置时间要比刷新和重试时间
长很多,以周为单位是较合理的。默认的过期时间是1,209,600秒。
否定缓存TTL(生存期):
TTL是Time-to-Live的缩写,是指一个数据包或数据生存的时间段。其他服务器使用这个值来知道他们
应该在缓存中保留多久的数据。默认值是3600秒或1小时。
[root@localhost ~]# vim /etc/named.conf
[root@localhost named]# cat /etc/named.conf
options{	
        listen-on port 53 {2.2.2.129; };
	directory 	"/var/named";
};
zone "baidu.com" IN {
	type master;
	file "named.baidu.com";
};

[root@localhost ~]# cd /var/named/
[root@localhost named]# ll
total 16
drwxrwx---. 2 named named    6 Sep 20  2023 data
drwxrwx---. 2 named named    6 Sep 20  2023 dynamic
-rw-r-----. 1 root  named 2253 Sep 20  2023 named.ca
-rw-r-----. 1 root  named  152 Sep 20  2023 named.empty
-rw-r-----. 1 root  named  152 Sep 20  2023 named.localhost
-rw-r-----. 1 root  named  168 Sep 20  2023 named.loopback
drwxrwx---. 2 named named    6 Sep 20  2023 slaves

[root@localhost named]# cat named.baidu.com
$TTL  1D
@     IN   SOA   @  admin.baidu.com. (
                   0
                   5
                   3
                   10
                   15)
     IN   NS   ns.baidu.com.
     IN   MX   10 mail.baidu.com.
ns   IN   A    2.2.2.129
ww   IN   A    2.2.2.129
mail   IN   A    2.2.2.129
www   IN   A    2.2.2.129
ftp   IN   CNAME   www

[root@localhost named]# vim named.baidu.com
[root@localhost named]# systemctl start named
[root@localhost named]# dig -t NS baidu.com @2.2.2.129

; <<>> DiG 9.16.23-RH <<>> -t NS baidu.com @2.2.2.129
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17992
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 4e971650a34d8ea7010000006726e8b14bf7b178da33434c (good)
;; QUESTION SECTION:
;baidu.com.			IN	NS

;; ANSWER SECTION:
baidu.com.		86400	IN	NS	ns.baidu.com.

;; ADDITIONAL SECTION:
ns.baidu.com.		86400	IN	A	2.2.2.129

;; Query time: 0 msec
;; SERVER: 2.2.2.129#53(2.2.2.129)
;; WHEN: Sun Nov 03 11:06:25 CST 2024
;; MSG SIZE  rcvd: 99
[root@localhost named]# dig -t MX baidu.com @2.2.2.129

; <<>> DiG 9.16.23-RH <<>> -t MX baidu.com @2.2.2.129
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57619
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 643eef2da90d563b010000006726e948fae6d3a96e668d2e (good)
;; QUESTION SECTION:
;baidu.com.			IN	MX

;; ANSWER SECTION:
baidu.com.		86400	IN	MX	10 mail.baidu.com.

;; ADDITIONAL SECTION:
mail.baidu.com.		86400	IN	A	2.2.2.129

;; Query time: 0 msec
;; SERVER: 2.2.2.129#53(2.2.2.129)
;; WHEN: Sun Nov 03 11:08:56 CST 2024
;; MSG SIZE  rcvd: 103
[root@localhost named]# dig -t A www.baidu.com @2.2.2.129

; <<>> DiG 9.16.23-RH <<>> -t A www.baidu.com @2.2.2.129
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54037
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 53ac0feb6cde4a04010000006726e97df778881461e5cd15 (good)
;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		86400	IN	A	2.2.2.129

;; Query time: 0 msec
;; SERVER: 2.2.2.129#53(2.2.2.129)
;; WHEN: Sun Nov 03 11:09:49 CST 2024
;; MSG SIZE  rcvd: 86
[root@localhost named]# dig -t CNAME ftp.baidu.com @2.2.2.129

; <<>> DiG 9.16.23-RH <<>> -t CNAME ftp.baidu.com @2.2.2.129
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13953
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 7e4027f84f4dc660010000006726e9b87c4e229d96f09027 (good)
;; QUESTION SECTION:
;ftp.baidu.com.			IN	CNAME

;; ANSWER SECTION:
ftp.baidu.com.		86400	IN	CNAME	www.baidu.com.

;; Query time: 1 msec
;; SERVER: 2.2.2.129#53(2.2.2.129)
;; WHEN: Sun Nov 03 11:10:48 CST 2024
;; MSG SIZE  rcvd: 88

1.4 反向解析文件模板

[root@localhost named]# vim /etc/named.conf
[root@localhost named]# cat /etc/named.conf
options{	
        listen-on port 53 {2.2.2.129; };
	directory 	"/var/named";
};
zone "baidu.com" IN {
	type master;
	file "named.baidu.com";
};
zone "2.2.2.in-addr.arpa" IN {
	type master;
	file "named.fanxiang";
};
[root@localhost named]# ll
total 28
drwxrwx---. 2 named named    6 Sep 20  2023 data
drwxrwx---. 2 named named    6 Sep 20  2023 dynamic
-rw-r--r--. 1 named named  821 Nov  3 11:05 managed-keys.bind
-rw-r--r--. 1 named named 1045 Nov  3 11:05 managed-keys.bind.jnl
-rw-r--r--. 1 root  root   346 Nov  3 11:05 named.baidu.com
-rw-r-----. 1 root  named 2253 Sep 20  2023 named.ca
-rw-r-----. 1 root  named  152 Sep 20  2023 named.empty
-rw-r-----. 1 root  named  152 Sep 20  2023 named.localhost
-rw-r-----. 1 root  named  168 Sep 20  2023 named.loopback
drwxrwx---. 2 named named    6 Sep 20  2023 slaves
[root@localhost named]# cp named.baidu.com /var/named/named.fanxiang
[root@localhost named]# vim /var/named/named.fanxiang
[root@localhost named]# cat /var/named/named.fanxiang
$TTL  1D
@     IN   SOA   @  admin.baidu.com. (
                   0
                   1
                   3
                   5
                   10)
     IN   NS   ns.baidu.com.
130     IN   PTR   ns.baidu.com.
1     IN   PTR   www.baidu.com.
2     IN   PTR   www.baidu.com.
3     IN   PTR   mail.baidu.com.
[root@localhost named]# systemctl restart named
[root@localhost named]# dig -x 2.2.2.129 @2.2.2.129

; <<>> DiG 9.16.23-RH <<>> -x 2.2.2.129 @2.2.2.129
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 18992
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 1d7afebcea9903f6010000006726efb6257935a95f9e1af5 (good)
;; QUESTION SECTION:
;129.2.2.2.in-addr.arpa.		IN	PTR

;; AUTHORITY SECTION:
2.2.2.in-addr.arpa.	10	IN	SOA	2.2.2.in-addr.arpa. admin.baidu.com. 0 1 3 5 10

;; Query time: 0 msec
;; SERVER: 2.2.2.129#53(2.2.2.129)
;; WHEN: Sun Nov 03 11:36:22 CST 2024
;; MSG SIZE  rcvd: 130

1.5 转发服务器实验

[root@localhost named]# vim /etc/named.conf
[root@localhost named]# cat /etc/named.conf
options {	
        listen-on port 53 {2.2.2.129; };
        directory "/var/named";
        forward only;
        forwarders { 223.5.5.5; }; #阿里云的dns
};
[root@localhost named]# systemctl restart named
[root@localhost named]# nmcli device show | grep DNS
IP4.DNS[1]:                             2.2.2.2
[root@localhost named]# dig -t A www.baidu.com

; <<>> DiG 9.16.23-RH <<>> -t A www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4039
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 8

;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		5	IN	CNAME	www.a.shifen.com.
www.a.shifen.com.	5	IN	A	183.2.172.42
www.a.shifen.com.	5	IN	A	183.2.172.185

;; AUTHORITY SECTION:
a.shifen.com.		5	IN	NS	ns5.a.shifen.com.
a.shifen.com.		5	IN	NS	ns3.a.shifen.com.
a.shifen.com.		5	IN	NS	ns4.a.shifen.com.
a.shifen.com.		5	IN	NS	ns1.a.shifen.com.
a.shifen.com.		5	IN	NS	ns2.a.shifen.com.

;; ADDITIONAL SECTION:
ns5.a.shifen.com.	5	IN	AAAA	240e:940:603:a:0:ff:b08d:239d
ns5.a.shifen.com.	5	IN	AAAA	240e:bf:b801:1006:0:ff:b04f:346b
ns2.a.shifen.com.	5	IN	A	220.181.33.32
ns3.a.shifen.com.	5	IN	A	153.3.238.162
ns3.a.shifen.com.	5	IN	A	36.155.132.12
ns4.a.shifen.com.	5	IN	A	14.215.177.229
ns4.a.shifen.com.	5	IN	A	111.20.4.28
ns5.a.shifen.com.	5	IN	A	180.76.76.95

;; Query time: 5 msec
;; SERVER: 2.2.2.2#53(2.2.2.2)
;; WHEN: Sun Nov 03 11:45:01 CST 2024

1.6 解析web服务器实验

[root@localhost named]# vim /etc/named.conf
[root@localhost named]# cat /etc/named.conf
options {	
        listen-on port 53 {2.2.2.129; };
        directory "/var/named";
};
zone "haha.com" IN {
     type master;
     file "named.haha.com";
};
zone "2.2.2.in-addr.arpa" IN {
     type master;
     file "named.fanxiang";
};
[root@localhost named]# vim /var/named/named.haha.com
[root@localhost named]# cat /var/named/named.haha.com
$TTL  1D
@     IN   SOA   @  admin.haha.com. (
                   0
                   1
                   3
                   5
                   10)
     IN   NS   ns.haha.com.
     IN  MX 10  mail.haha.com.
ns     IN   A  2.2.2.129
www     IN  A  2.2.2.129
[root@localhost named]# systemctl restart named
[root@localhost named]# curl www.haha.com

1.7 区域传送

DNS主从复制,就是将主DNS服务器的解析库复制传送至从DNS服务器,进而从服务器就可以进行正
向、反向解析了。从服务器向主服务器查询更新数据,保证数据一致性,此为区域传送。也可以说,
DNS区域传送,就是DNS主从复制的实现方法,DNS主从复制是DNS区域传送的表现形式。

DNS区域传送有两种方式

axfr:完全区域传送
ixfr:增量区域传送

当一个新的DNS服务器添加到区域中并配置为从DNS服务器时,它则会执行完全区域传送,在主DNS服务器上获取完整的资源记录副本;同时,为了保证数据同步,主域名服务器有更新时也会及时通知辅助域名服务器从而进行更新(增量区域传送)。

克隆虚拟机

两个虚拟机的总内存不能超过电脑的物理内存
在这里插入图片描述

在这里插入图片描述
改主机名:

hostnamectl set-hostname master(新的主机名称)

  • vim编辑器,将 /var/named.conf 中的内容改成 zhangsan.com:

%s/haha/zhangsan/g
在这里插入图片描述


  • 在这里插入图片描述
    在这里插入图片描述

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

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

相关文章

JSON交互处理

目录 一、什么是JSON 二、JSON和JavaScript对象互转 ​三、Controller返回JSON数据 3.1 使用Jackson 编写Controller 1. 一个对象 2. 多个对象 3. 输出时间对象 4. 优化&#xff1a;抽取为工具类 一、什么是JSON Json是JavaScript对象的字符串表示法&#xff0c;它用…

GeoSever发布图层(保姆姬)

发布服务的具体步骤。 1. 安装 GeoServer 下载 GeoServer 安装包&#xff1a;GeoServer 官网按照安装说明进行安装&#xff0c;可以选择 Windows、Linux 或其他平台。 2. 启动 GeoServer 启动 GeoServer 通常通过访问 http://localhost:8080/geoserver 进行。默认用户名和密…

Linux中断、软中断、MMU内存映射-深入理解

中断&#xff1a; Linux中&#xff0c;中断上半部不能嵌套&#xff0c;如果一直保存上下文&#xff0c;栈可能会溢出。中断上半部处理紧急事情&#xff0c;下半部处理非紧急事情。下半部通常通过软中断来实现。在上半部执行完后会执行下半部的软中断&#xff0c;如果囤积了A和…

讲讲 kafka 维护消费状态跟踪的方法?

大家好&#xff0c;我是锋哥。今天分享关于【讲讲 kafka 维护消费状态跟踪的方法&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; 讲讲 kafka 维护消费状态跟踪的方法&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Kafka 中&#x…

CodeS:构建用于文本到 SQL 的开源语言模型

发布于&#xff1a;2024 年 10 月 29 日 #RAG #Text2 SQL #NL2 SQL 语言模型在将自然语言问题转换为 SQL 查询&#xff08;文本到 SQL &#xff09;的任务中显示出良好的性能。然而&#xff0c;大多数最先进的 &#xff08;SOTA&#xff09; 方法都依赖于强大但闭源的大型语言…

深入浅出 Spring Boot 与 Shiro:构建安全认证与权限管理框架

一、Shiro框架概念 &#xff08;一&#xff09;Shiro框架概念 1.概念&#xff1a; Shiro是apache旗下一个开源安全框架&#xff0c;它对软件系统中的安全认证相关功能进行了封装&#xff0c;实现了用户身份认证&#xff0c;权限授权、加密、会话管理等功能&#xff0c;组成一…

「Mac畅玩鸿蒙与硬件17」鸿蒙UI组件篇7 - Animation 组件基础

在应用开发中&#xff0c;动画效果可以增强用户体验。鸿蒙框架提供了 translate、scale 和 rotate 等动画功能&#xff0c;允许对组件进行平移、缩放和旋转等操作。本篇将介绍 Animation 组件的基础知识和示例代码。 关键词 Animation 组件动画效果位置动画自动动画缩放动画 一…

详解:模板设计模式

模板设计模式&#xff08;Template Pattern&#xff09;是一种行为设计模式&#xff0c;在软件设计中有着广泛的应用&#xff0c;旨在提高代码的可维护性和可复用性。 一、定义与特点 定义&#xff1a; 模板设计模式定义了一个算法的骨架&#xff0c;将某些步骤推迟到子类中实…

Java中的时区和带时区的时间对象:ZoneId类、ZonedDateTime类

在 Java 中&#xff0c;ZoneId 和 ZonedDateTime 是处理时区和带时区日期时间的重要类&#xff0c;它们属于 java.time 包&#xff0c;这个包是在 Java 8 中引入的&#xff0c;用于替代旧的日期和时间 API&#xff08;java.util.Date、java.util.Calendar 等&#xff09;。 1、…

微积分复习笔记 Calculus Volume 1 - 4.5 Derivatives and the Shape of a Graph

4.5 Derivatives and the Shape of a Graph - Calculus Volume 1 | OpenStax

Windows配置Nodejs及nmp简明教程(2024可用)

一、下载及安装Nodejs 下载 Node.js 中文网 (nodejs.com.cn)在此下载windows长期维护版本的.msi安装包&#xff0c;64位 安装&#xff1a; 双节安装包一直点击Next下一步&#xff0c;注意安装路径选择C盘默认路径&#xff08;C:\Program Files\nodejs\&#xff09;即可&#x…

MATLAB实现蝙蝠算法(BA)

MATLAB实现蝙蝠算法(BA) 1.算法介绍 蝙蝠算法&#xff08;简称BA&#xff09;是一种受微型蝙蝠回声定位机制启发的群体智能算法&#xff0c;由Xin-She Yang于2010年提出。这种算法模拟了微型蝙蝠通过向周围环境发出声音并监听回声来识别猎物、避开障碍物以及追踪巢穴的行为。…

JavaStream流

认识 在java.util.stream util包下的新增API&#xff0c;可以用于操作集合或者数组的数据。 功能强大&#xff08;提供了很多结合Lambda的API)&#xff0c;性能高效&#xff08;有很多优化&#xff09;&#xff0c;代码简洁&#xff08;Lambda&#xff09;&#xff0c;可读性好…

【LwIP源码学习4】主线程tcpip_thread

前言 本文对lwip的主要线程tcpip_thread进行分析。 正文 tcpip_thread是lwip最主要的线程&#xff0c;其创建在tcpip_init函数中 sys_thread_new(TCPIP_THREAD_NAME, tcpip_thread, NULL, TCPIP_THREAD_STACKSIZE, TCPIP_THREAD_PRIO);tcpip_init函数被TCPIP_Init函数调用。…

HarmonyOS鸿蒙开发入门,常用ArkUI组件学习(二)

书接上回&#xff0c;让我们继续来学习ArkUI的其他组件 目录&#xff0c;可以点击跳转到想要了解的组件详细内容 组件四&#xff1a;Button组件五&#xff1a;Slider组件六&#xff1a; Column & Row组件七&#xff1a;循环控制组件八&#xff1a; List 组件四&#xff1a;…

四、k8s快速入门之Kubernetes资源清单

kubernetes中的资源 ⭐️ k8s中所有的内容都抽象为资源&#xff0c;资源实列化之后&#xff0c;叫做对象 1️⃣名称空间级别 ⭐️ kubeadm在执行k8s的pod的时候会在kube-system这个名称空间下执行&#xff0c;所以说当你kubectl get pod 的时候是查看不到的查看的是默认的po…

【收藏版】产品经理工作全流程拆解:每一步都是成功的基石

在信息爆炸的今天&#xff0c;产品经理的角色愈加重要。市场分析、用户需求调研、竞品分析、市场定位、产品设计、开发测试……每一个环节都可能决定产品的成败。这篇文章将带你逐步解读从产品立项到上线运营的全流程&#xff0c;为你揭开产品经理的核心工作要点。无论你是新手…

11.1组会汇报-基于区块链的安全多方计算研究现状与展望

基础知识 *1.背书&#xff0c;这个词源来自银行票据业务&#xff0c;是指票据转让时&#xff0c;原持有人在票据背面加盖自己的印鉴&#xff0c;证明该票据真实有效、如果有问题就可以找原持有人。 区块链中的背书就好理解了。可以简单的理解为验证交易并声明此交易合法&…

客如云:大型业务报表的分区化改造提升性能|OceanBase 应用实践

一 概述 1 背景 在过去两到三年的时间里&#xff0c;客如云的KPOS产品在商户数量和订单量均实现了数倍的增长&#xff0c;充分展示了产品的市场吸引力和业务模式的成功。然而&#xff0c;随着更多的大型连锁商户的加入&#xff0c;客如云商家平台迎来了前所未有的挑战。特别是…

一:Linux学习笔记(第一阶段)-- 安装软件 vmware workstation 虚拟机软件 centos系统

目录 学习计划&#xff1a; 资源准备 虚拟机软件&#xff1a;就别自己找了 现在换网站了 下载比较费劲 Centos8&#xff1a; 阿里云镜像地址下载&#xff08;下载比较版 但是有不同版本&#xff09;&#xff1a;centos安装包下载_开源镜像站-阿里云 百度网盘地址&#xff…