名字解析的作用:

TCP/IP网络中,设备之间的通信依赖IP地址来实现,但是IP地址不好记忆,所以就将每一台设备用一个名字来进行标识,但是这个名字计算机不能解析。所以就需要借助名字解析服务来实现将名字解析为IP地址。

主机名和域名的联系

主机名:

主机名:计算机的名字,用于唯一标识一台设备

域名:

域名:domain name,是由一串用点分隔的名字,表示互联网上的一台或者一组设备。

完全限定域名:FQDN

FQDN:full qualified domain name,完全限定域名。FQDN=主机名+域名

一个域下面就包含了很多主机。比如baidu.com这个域名下面可能就包含了www.baidu.com,mail.baidu.com等主机名。
例如:如www.baidu.com. 就是一个完全限定域名(注意最后有一个点,默认结尾点可以省略不写。最末尾的点所有名称的最上级的根)。

在查看完全限定域名时,主机名通常位于域名之前。

主机名表示用于将用户传送到某个地址或位置的网络或系统。

域名代表用户正在访问的站点或项目。

比如www.baidu.com就告诉我们,baidu.com这个域中,有一台名叫www的机器.

常见的www就是主机名,标识的对应主机,还有blog、study等都是主机名。
#www
www:World Wide Web,万维网。由www客户端和www服务端组成。 #www客户端指的是设备上的浏览器。 #www服务端指的是服务器(存放资源的主机)。 #www经常被简称作web,所以www客户端、www服务端又叫web客户端、web服务端 #www的作用就是:web客户端访问web服务端 #所以www表示访问指定web服务器上面的资源,故www表示的是一台主机。

范例

#www.baidu.com
. #根域
|
|
gov edu com net org cn #顶级域:最初只有七个
|
|
360 baidu google sougou #二级域
|
|
www #主机

域名的分类

  • 根域

  • 顶级域

  • 二级域

  • ....

  • 最多可达到127级域名

#常见的顶级域名

com(商业公司)、

net(互联网组织)、

edu(教育)、

org(非营利性组织)、

int(internet)、

mil(军事)、

gov(政府)、

cn(国家地区域名,cn表示中国)

DNS:Domain Name Server

利用名称分布式的特性,在每一级域都搭建对应的DNS服务器,每个DNS服务器只负责一部分名称和ip的解析。

DNS服务器存放的是它的下级域DNS的名称和IP。如果一个DNS的下级是主机,就存放主机的名称和ip

DNS查询的类型

  • 递归查询

  • 迭代查询

递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后, 若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结
果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询 迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对
方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起
进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询.

DNS名称请求的流程

1.客户端需要解析一个名称会先查询hosts文件,如无对应内容就下一步

2.查询本地的缓存(linux默认没有设置缓存,windows默认设置了缓存)

3.向指定的DNS服务器发起请求,如果这个DNS服务器没找到就像根查找,然后进行迭代查询,找到结果以后由这个DNS返回给客户端

#权威DNS:存放要访问的域名和ip的对应关系的服务器就叫做权威DNS服务器

缓冲和缓存

缓存:Cache,为了提升性能开辟一块空间,缓存是将反复使用的数据存储起来,在有效期之内供系统去调用。

缓冲:Buffer,缓冲的作用是协调上下层应用之间的性能差异。

#比如A-->B,A的流量大速度快,但是B的流量小速度慢,A-->B的时候B接收不了这么多的数据,所以中间加一个缓冲区,A把数据放在缓冲区,B再到缓冲区去拿数据。解决了两这性能不一样的问题。

范例:

#浏览器输入一个域名回车以后背后所作的工作:

名称解析为ip地址:DNS工作过程

连接到对应的主机:TCP三次握手

数据传输:HTTP工作过程

linux DNS服务的实现

提供DNS服务器软件:bind,powerdns,dnsmasq,unbound,coredns(主要用在k8s环境中)

bind实现DNS服务

1.安装bind软件

yum install bind bind-utils

bind-utils是bind的一个管理工具(客户端)。

BIND的相关程序包:yum list all bind*

BIND包相关文件: rpm -ql bind

bind的配置文件:/etc/named.conf

可以通过rpm -ql bind来查看他的对应文件。

配置文件的格式

由三部分组成:

  • 选项:配置相关功能

  • 日志:(基本不用改)

  • 区域:本机能够为哪些zone进行解析(域下面就有很多区域)


/var目录:var:variable(变量、可变的)。目录存放的就是可变的数据 /etc/services文件是记录网络服务名和它们对应使用的端口号及协议的对应关系(相当于一个手册,记录大部分服务使用的默认端口,不用更改) /etc/services文件:四个字段组成:服务名称”、“使用端口”、“协议名称”以及“别名 查看dns是否生效: /etc/reslve文件
/etc/resolv.conf是DNS客户机的配置文件,用于设置DNS服务器的IP地址及DNS域名

dns服务基础配置实现互联网访问

只需要正确安装bind这个软件包,修改配置文件的一下内容即可。
options {
listen-on port 53 { localhost; }; #需要监听的指定地址端口,可以直接注释掉表示所有iplocalhost表示监听本地所有地址的53端口
......
allow-query { any; }; #允许谁查询 any:代表所有的ip,所有的ip都可以查(包括远程的ip) 注释掉这一行也表示所有ip都能访问
} #dns配置文件中的:localhost:表示本机配置的所有ip
#hosts中的localhost表示的是127.0.0.1这个地址
#dns务基础配置实现互联网访问:注释掉allow-query和listen-on 表示默认允许所有

DNS服务的管理工具 rndc

rndc 监听端口: 953/tcp

#命令格式:
rndc COMMAND
COMMAND:
status: 查看状态
reload: 重载主配置文件和区域解析库文件
reload zonename: 重载区域解析库文件
retransfer zonename: 手动启动区域传送,而不管序列号是否增加
notify zonename: 重新对区域传送发通知
reconfig: 重载主配置文件
querylog: 开启或关闭查询日志文件/var/log/message
trace: 递增debug一个级别
trace LEVEL: 指定使用的级别
notrace:将调试级别设置为 0
flush:清空DNS服务器的所有缓存记录

DNS解析服务的测试和诊断工具

由bind-utils这个客户端提供。于测试dns系统,不会查询hosts文件进行解析

  • dig

  • host

  • nslookup

例如:查询dns能否正常解析:www.baidu.com
dig www.baidu.com
host www.baidu.com
nslookup www.baidu.com #查询指定的DNs服务器能否正常解析:www.baidu.com
dig www.baidu.com @10.10.0.11 #服务器的ip地址

搭建私有DNS实现正向解析dns服务(正向主服务器)

需要实现正向解析:FQDN-->IP ,就需要配置对应的区域。

域是一个概念,比如baidu就是一个域,在这个域之下还有区域

bind区域的配置方法

  1. 在主配置文件中定义区域

  2. 定义区域解析库文件(区域数据库),由一条条资源记录(RR)组成。

搭建DNS正向主服务器,实现web服务器基于FQDN的访问

环境配置:
关闭SElinux
关闭防火墙
时间同步 设备:
需要三台主机
DNS服务端:10.0.0.8
web服务器:10.0.0.7
DNS客户端:10.0.0.6 修改住配置文件,定义需要解析得区域:
zone "redhat.org" IN { #redhat.org:表示需要管理的域的域名
  type master; #DNS的类型 master slave frawalld
  file  "magedu.org.zone"; #指定定义区域数据库的文件 #区域数据库配置
$TTL 1D #表示有效时间 1D:表示1D内有效
@ IN SOA @ admin.redhat.org. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 192.168.26.129 #需要解析的区域
www A 192.168.26.130 #需要解析的区域
资源记录的格式及类型
资源记录的格式:name [TTL] IN rr_type value
资源记录的类型:
  • SOA:说明当前这个区域解析库为哪一个区域所用,由谁负责

  • A:作用是把FQDN解析成为IPV4的IP地址

  • NS:name server 专用于标识当前区域的DNS服务器

  • MX:Mail eXchanger,邮件交换器

  • CNAME: Canonical Name,别名记录

  • PTR:作用是把IP解析成为FQDN,反向解析

#SOA  name [ttl] in rr_type value 

(1)name:表示的是当前这个区域解析库的域名。用@可表示当前区域的名字

(2)TTL:表示缓存过期的时间

(3)IN:代表internet,没有实际意义,可以当做固定格式

(4)SOA:表示资源记录的类型为SOA

(5)value: 当前这个域的DNS服务器是谁,可以直接写区域名字,会自动把域名补齐。
#使用value指定当前域的DNS服务器以后,还要使用A这种类型来指定这个DNS服务器的IP地址。
#SOA记录与其它记录不同的是就是value部分,SOA的value部分由很多的字段组成 value:由以下三部分组成:
1.负责当前这个域的主(master)DNS服务器是谁。 可以是FQDN,也可以是当前 域 的名字(用@可表示当前 域的名字),这个名字随便起,但是需要配置A来指定它的ip地址。 2.当前区域管理员的邮箱地址,但是地址不能有@符号,一般用.来代替,例如15069028007.163.com 3.(主从服务器协调属性的定义以及否定的答案的统一的TTL)
#例如:
10235.com 86400 IN SOA ns1.abc.com. root.ns1.abc.com. (
2007061402 ; serial
3600 ; refresh (1 hour)
900 ; retry (15 minutes)
1209600 ; expire (2 weeks)
3600 ; minimum (1 hour)
) 10235.com:代表当前区域的域名,可以用@代替(因为在配置文件中定义区域的时候就定义了域名) 86400:代表86400秒后缓存过期 ns1.abc.com.:指定当前域的主DNS SERVER #主DNS:master,这个名字可以随便起,下面还需要使用A这种类型的资源记录来指定主DNS的ip地址 d root.ns1.abc.com.:管理员邮箱(@使用.代替),等同于root@ns1.abc.com. Serial :数值Serial代表这个Zone的序列号。供Slave DNS判断是否从Master DNS获取新数据。每次Zone文件更新,都需要修改Serial数值 refresh:数值Refresh设置Slave DNS多长时间与Master Server进行Serial核对。目前Bind的notify参数可设置每次Master DNS更新都会主动通知Slave DNS更新 retry:数值Retry设置当Slave DNS试图获取Master DNS Serial时,如果Master DNS未响应,多长时间重新进行检查 expire:数值Expire将决定Slave DNS在没有Master DNS的情况下权威地提供域名解析服务的时间长短 minimum:否定答案的TTL,当服务器没有解析到域名时,设置客户端缓存时间

配置文件检查

  • named-checkconf

  • named-checkzone

#检查配置文件
named-checkconf #检查的是named.conf这个配置文件 named-checkzone xxx.org /var/named/redhat.org.zone # 域名 域名对应的区域数据库文件

资源记录的类型详解

NS记录定义规则
  • name: 当前域名(通过定义区域规则的时候指定的域名)。用来标识当前的域名中那些是DNS

  • value: 当前区域的某DNS服务器的名字,例如: ns.redhat.org.

#value的名字是随便起的。只需要添加A这种资源记录的时候,对应上指定的ip地址就可以了。

1. 相邻的两个资源记录的name相同时,后续的可省略。#会自动继承上一条记录的一些信息

2. 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
#表示当前区域中谁是DNS服务器,因为可能存在多个dns服务器,soa只标识了主dns服务器 3. 一个域可以有多个NS记录(一个域名可以有多个dns服务器) 范例:
redhat.org. IN NS ns1.redhat.org. #前面的FQDN可以只写主机名,域名会自动补全
NS ns2.redhat.org. #完整:redhat.org. IN NS ns2.redhat.org.会自动继承上面的内容
A记录定义规则
  • name: 某主机的FQDN,例如:www.redhat.org.

  • value: 主机名对应主机的IP地址

www.redhat.org. IN A 1.1.1.1

www.redhat.org. IN A 2.2.2.2

mx1.redhat.org. IN   A 3.3.3.3

mx2.redhat.org. IN   A 4.4.4.4

$GENERATE 1-254 HOST$   IN A 1.2.3.$

*.redhat.org. IN A 5.5.5.5  #表示输入任何的子域名都可以解析。例如 wwwwwwwww.redhat.com

redhat.org. IN   A 6.6.6.6 #直接输入域名便可解析

#注意:如果有和DNS的IP相同的多个同名的A记录,优先返回DNS的本机IP

#避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
CNAME别名记录
  • name: 别名的FQDN

  • value: 真正名字的FQDN

例如:www.magedu.org. IN CNAME   websrv.magedu.org.
PTR记录
name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;
而有特定后缀:in-addr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa.
value: FQDN 例如:
4.3.2.1.in-addr.arpa. IN PTR www.magedu.org.
#如1.2.3为网络地址,可简写成:
4 IN PTR www.magedu.org. #注意:网络地址及后缀可省略;主机地址依然需要反着写

反向解析的实现

反向区域:即将IP反向解析为FQDN

区域名称:网络地址反写.in-addr.arpa.

www.baidu.com. 从上到下对应的为:.--com--baidu--www

172.16.100.10 --> 10.100.16.172.in-addr.arpa.

#域名:172.16.100. --> 100.16.172.in-addr.arpa.
定义区域
zone "ZONE_NAME" IN {
type {master|slave|forward};
file "网络地址.zone"
};
zone "26.168.192.in-addr.arpa." IN {
type master;
file "192.168.26.zone"; };
定义解析库:
[root@CentOS8 named]# cat 192.168.26.zone
$TTL 1D
@ IN SOA master rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master IN A 10.0.0.10
10 PTR www.redhad.com
20 PTR www.tom.com
30 PTR www.bob.com

启用DNS客户端缓存功能

客户端启用DNS缓存功能,可以大幅减轻DNS服务器的压力,同时也能提高DNS客户端名称解析速度。

nscd
CentOS 默认没有启用DNS客户端缓存,安装nscd(Name Service Cache Daemon,名称服务缓存守护进
程)包可以支持DNS缓存功能 ubuntu 默认会启用DNS客户端缓存
[root@ubuntu1804 ~]#systemctl status systemd-resolved.service #清空缓存
[root@ubuntu1804 ~]#systemd-resolve --flush-caches
[root@centos7 ~]#yum -y install nscd

[root@centos7 ~]#systemctl enable --now nscd

#查看缓存统计信息
[root@centos7 ~]#nscd -g #清除DNS客户端缓存
[root@centos7 ~]#nscd -i hosts

从服务器的实现

DNS的类型:

  • 主服务器

  • 从服务器

  • 转发服务器

从服务器:
(1)时间和主服务器要同步(ntp) (2)主服务器的区域解析库文件有一条NS资源记录指向从服务器 (3)从服务器只需要定义区域,而无须提供解析库文件(放置于/var/named/slaves/目录) (4)主服务器需要允许从服务器作区域传送
从服务器区域的定义
zone "ZONE_NAME" IN {
type slave; #定义服务器类型
masters { MASTER_IP; }; #定义使用的主服务器
file "slaves/ZONE_NAME.zone"; #定义区域文件
};
范例:搭建从服务器实现冗余功能

主服务器配置:

配置文件:
//#只允许从服务器进行区域传输,如果不写默认所有的服务器都能进行传输
allow-transfer { 10.0.0.12;}; 区域数据库:
$TTL 1D
@ IN SOA master rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
NS slave
master IN A 10.0.0.10
slave IN A 10.0.0.12 #指定slave服务器的ip地址 www IN A 10.0.0.11
blog IN A 10.0.0.110
mail IN A 10.0.0.111

从服务器配置:

//#不允许其它主机进行区域传输,不写就默认所有的主机都可以
allow-transfer { none;};
#指定区域
zone "redhad.com" IN { #域名和主服务器的一样
type slave; #DNS的类型
masters {10.0.0.10;}; #指定主服务器
file "slaves/redhad.com"; #指定同步过来的资源记录存放位置
};

验证:

查看slaves/redhad.com中是否存在数据(乱码)

停止掉主服务器,指定从服务器为测试及其的DNS,测试能否正常访问www.redhad.com等。

DNS实现子域

子域委派授权

子域委派授权:将子域委派给其它主机管理,实现分布式DNS数据库。

父域DNS配置:

#父域中指定子域的DNS服务器和IP地址。然后再子域的DNS服务器上面定义对应的解析规则就行了。
这样通过父域的DNS地址也能找到子域的对应解析。 $TTL 1D
@ IN SOA master rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS master shanghai IN NS shanghais #指定子域的区域使用的DNS服务器名字 master IN A 10.0.0.10
shanghais IN A 10.0.0.11 #子域DNS对应的IP地址
www IN A 10.0.0.11

子域DNS配置:

zone "shanghai.heyongshen.com" IN {
type master;
file "shanghai.heyongshen.zone";
};
#在子域中定义相应的解析规则
$TTL 1D
@ IN SOA master rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS master
master IN A 10.0.0.11 www IN A 10.0.0.10

测试:

[root@CentOS8 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
BOOTPROTO=none
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=10.0.0.12
PREFIX=24
GATEWAY=10.0.0.2
DNS1=10.0.0.10 #指定DNS服务器 [root@CentOS8 ~]# ping www.heyongshen.com
[root@CentOS8 ~]# ping www.shanghai.heyongshen.com

DNS转发(forward)(缓存)服务器

将用户的DNS请求,转发至指定的DNS服务,而非默认的根DNS服务器,并将指定

服务器查询的返回结果进行缓存,提高效率

#建议关闭加密验证
dnssec-enable no;
dnssec-validation no;

全局转发:对非本机所负责解析区域的请求,全转发给指定的服务器

Options {
forward first|only;
forwarders { ip;};
};

特定区域转发:仅转发对特定的区域的请求,比全局转发优先级高

zone "ZONE_NAME" IN {
type forward;
forward first|only;
forwarders { ip;};
};
两种转发类型:
  • first:先转发至指定DNS服务器,如果无法解析查询请求,则本服务器再去根服务器查询

  • only: 先转发至指定DNS服务器,如果无法解析查询请求,则本服务器将不再去根服务器查询

范例:实现DNs服务器的转发功能

// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; }; 允许查询的主机

缓存服务器主要配置:

#关闭加密验证:
dnssec-enable no;
dnssec-validation no; #配置转发规则
forward first; #转发规则
forwarders {10.0.0.10; }; #主服务器

主服务器主要配置:

#关闭加密验证:
dnssec-enable no;
dnssec-validation no; #定义区域
zone "heyongshen.com" IN {
type master;
file "heyongshen.zone";
}; #配置规则
$TTL 1D
@ IN SOA master rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 10.0.0.10 www IN A 10.0.0.2

智能DNS的实现

GSLB:
  • GSLB:Global Server Load Balance 全局负载均衡

  • GSLB是用户发起请求后判断由哪个地点的服务器来提供服务

  • GSLB主要的目的:是在整个网络范围内将用户的请求定向到最近的节点(或者区域)

CND服务

CDN: (Content Delivery Network)内容分发网络

工作原理
1. 用户向浏览器输入www.a.com这个域名,浏览器第一次发现本地没有dns缓存,则向网站的DNS服务器请求

2. 网站的DNS域名解析器设置了CNAME,指向了www.a.tbcdn.com,请求指向了CDN网络中的智能DNS负载均衡系统

3. 智能DNS负载均衡系统解析域名,把对用户响应速度最快的IP节点返回给用户;

4. 用户向该IP节点(CDN服务器)发出请求

5. 由于是第一次访问,CDN服务器会通过Cache内部专用DNS解析得到此域名的原web站点IP,向原站点服务器发起请求,并在CDN服务器上缓存内容

6. 请求结果发给用户
CDN服务商
  • 服务商:阿里,腾讯,蓝汛,网宿,帝联等

  • 智能DNS: dnspod dns.la

Linux 域名和DNS的更多相关文章

  1. Linux 学习之DNS服务器

    概念: DNS:Domain Name System 域名系统 FQDN:Fully Qualified Domain Name 完整主机名 正向解析:由主机名查IP地址 SOA:开始验证(Start ...

  2. Linux 自动化部署DNS服务器

    Linux 自动化部署DNS服务器 1.首先配置主DNS服务器的IP地址,DNS地址一个写主dns的IP地址,一个写从dns的地址,这里也可以不写,在测试的时候在/etc/resolv.conf中添加 ...

  3. 域名管理系统DNS

    域名系统DNS,将域名转化为ip地址.域名到ip地址解析过程是以这种方式进行的,当某一程序需要把主机名解析为IP地址时,该应用进程就调用解析程序(本地程序),这时候该进程就变成了DNS的一个客户,将待 ...

  4. Linux中与DNS相关的内容

    Linux中与DNS有关的三个东西: 1. 主机名 2. DNS服务器 3. Host文件 Linux中和DNS有关的三个文件: 1. /etc/hostname 2. /etc/resolv.con ...

  5. Ubuntu等Linux系统清除DNS缓存的方法

    buntu等Linux系统清除DNS缓存的方法 直接说方法: 如果系统下有nscd,那么就直接 sudo /etc/init.d/nscd restart 如果没有也没关系,网上接受的方法大都是 su ...

  6. linux下的DNS

    Linux下设置DNS的位置主要是, 1网卡设置配置文件里面DNS服务器地址设置;2 hosts文件指定 3.系统默认DNS服务器地址设置/etc/resolv.conf文件修改 生效顺序是: 1 h ...

  7. Linux 系统的DNS配置文件

    系统的DNS配置文件 方式一: 界面操作 setup -->界面配置网络,网关等 方式二: 修改配置文件 # 修改配置 ==>vi /etc/resolv.conf -->man r ...

  8. “GIS DICTIONARY A-Z” 查询页面开发(3)—— 基础知识之服务器、IP地址、域名、DNS、端口以及Web程序的访问流程

    今天补一补基础知识: 一.服务器:能够提供服务的机器,取决于机器上安装的软件(服务软件).服务器响应服务请求,并进行处理. Web服务器:提供Web服务,即网站访问.常见Web服务软件:Apache( ...

  9. linux环境中,查看域名的DNS信息?

    需求说明: 今天在linux主机上,要查询一个域名是在哪个DNS上进行解析的,这个域名下面还有哪些的地址 操作过程: 1.linux环境中通过nslookup命令来进行查看 [deployer@CBS ...

随机推荐

  1. JNPF移动办公解决方案

    市场背景 随着办公自动化系统的普及,电子化.数据化的办公方式已进入越来越多的企业和政府单位,信息化的办公系统在企事业内部编织起一套高效.畅通的信息互联体系,极大推动了企事业单位生产力的发展.但与此同时 ...

  2. 功耗优化之Sensor功耗分析

    功耗优化之Sensor功耗分析 一.Sensor功耗问题分类 二.Sensor功耗问题分析方法 SSC子系统引起系统无法进入AOSD问题分析: SSC子系统频繁唤醒AP问题分析方法 SSC子系统的GP ...

  3. Typecho博客转移服务器,数据备份.

    目录 Typecho博客转移服务器,数据备份. 简述操作(有基础的mjj看这个简述就可以了.) 详细步骤(建议小白来看, 已经在很多详细方面进行说明了.) 备份篇 备份导入与数据库转移篇 重新部署ty ...

  4. ShardingSphere 异构迁移最佳实践:将3.5亿量级的顾客系统 RTO 减少60倍

    Apache ShardingSphere 助力当当 3.5 亿用户量级顾客系统重构,由 PHP+SQL Server 技术栈无缝转型为 Java+ShardingSphere+MySQL,性能.可用 ...

  5. 在Winform开发中,使用Async-Awati异步任务处理代替BackgroundWorker

    在Winform开发中有时候我们为了不影响主UI线程的处理,以前我们使用后台线程BackgroundWorker来处理一些任务操作,不过随着异步处理提供的便利性,我们可以使用Async-Awati异步 ...

  6. C#.NET中的程序集版本

    更新记录 2022年4月16日:本文迁移自Panda666原博客,原发布时间:2021年8月22日. 在Visual Studio中查看程序集版本 在程序运行中获得程序集版本信息 除了在Visual ...

  7. 一篇文章带你使用Typescript封装一个Vue组件

    一.搭建项目以及初始化配置 vue create ts_vue_btn 这里使用了vue CLI3自定义选择的服务,我选择了ts.stylus等工具.然后创建完项目之后,进入项目.使用快捷命令code ...

  8. Spring Security自定义认证器

    在了解过Security的认证器后,如果想自定义登陆,只要实现AuthenticationProvider还有对应的Authentication就可以了 Authentication 首先要创建一个自 ...

  9. SpringBoot + JWT + Redis 开源知识社区系统

    「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识.准备 Java 面试,首选 JavaGuide!:https://javaguide.cn/ 你好,我是 Guide!这 ...

  10. 深入理解springboot的自动注入

    一.开篇   在平时的开发过程中用的最多的莫属springboot了,都知道springboot中有自动注入的功能,在面试过程中也会问到自动注入,你知道自动注入是怎么回事吗,springboot是如何 ...