当前位置: 首页 > news >正文

【Linux】NTP时间同步服务与NFS网络文件共享存储服务器(配置、测试)

一、NTP时间同步服务

1、NTP介绍

NTP服务器【Network Time Protocol(NTP)】是用来使计算机时间同步化的一种协议,它可以使计机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。时间按NTP服器的等级传播。按照离外部UTC源的远近把所有服务器归入不同的Stratum(层)中。

ntpd(Network Time Protocol daemon)是 Linux 操作系统的一个守护进程,用于校正本地系统与钟源服务器之间的时间,完整的实现了 NTP 协议。ntpd 与ntpdate 的区别是 ntpd 是步进式的逐渐校正时间,不会出现时间跳变,而 ntpdate是断点更新

  • 部分操作系统采用 chrony 作为默认 NTP 服务,请确认 ntpd 正在运行并设置为开机自启动。在CentOS8.0中默认不再支持ntp软件包,时间同步将由chrony来实现。

  • 使用 systemctl is-active ntpd.service 命令,可查看 ntpd 是否正在运行。

  • 使用 systemctl is-enabled ntpd.service 命令,可查看 ntpd 是否开机自启动。

  • NTP 服务的通信端口为 UDP 123,设置 NTP 服务之前,请确保您已经开放UDP 123 端口。


2、主要结构

(1) 时间来源

现在的标准时间是由原子钟报时的国际标准时间UTC(Universal Time Coordinated,世界协调时),所以NTP获得UTC的时间来源可以是原子钟、天文台、 卫星,也可以从Internet上获取。

(2) 传播

在NTP中,定义了时间按照服务器的等级传播,按照离外部UTC源远近将所有的服务 器归入不同的Stratum(层)中,例如把通过GPS取得发送标准时间的服务器叫 Stratum-1的NTP服务器,而Stratum-2则从Stratum-1获取时间,Stratum-3从 Stratum-2获取时间,以此类推,但Stratum层的总数限制在15以内。所有这些服务 器在逻辑上形成阶梯式的架构相互连接,而Stratum-1的时间服务器是整个系统的基 础,这种阶梯式的架构示意图如下图所示:

计算机主机一般同多个时钟服务器连接,利用统计学的算法过滤来自不同服务器的时 间,以选择最佳的路径和来源以便校正主机时间。即使在主机长时间无法与某一时钟 服务器联系的情况下,NTP服务依然可以有效运转。


3、架构和安装

架构

如上图所示,对于一些服务依赖于时间的集群(如hadoop集群),需要有一部主机 作为ntp服务器,其他客户端主机从这部主机进行时间同步,另外ntp服务主机从更 高一层的服务器获得时间信息。


安装配置

NTP服务主机规划

centos7.x 虚拟机两台

服务端:192.168.198.140

客户端: 192.168.198.138

服务端配置

服务端和客户端都分别按照ntp服务:

yum install –y ntp

查看是否安装成功:

rpm -qa |grep ntp

配置文件为: /etc/ntp.conf

server 0.cn.pool.ntp.org iburst
server 1.asia.pool.ntp.org iburst #iburst 当一个远程NTP服务器不可用时,向他发送一系列的并发包进行检测
server 2.asia.pool.ntp.org iburst
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10 #这行是时间服务器的层次。设为0则为顶级,如果要向别的NTP服务器更新时间,请不要把它设为0,最好设置的数字靠后
interface listen 192.168.198.140

配置好后,需要重启服务

使用如下命令检查是否同步成功,如出现running表示运行,否则失败。


客户端配置

vim /etc/ntp.conf

这里的server指向服务器的IP,改完后重启服务

上面红色的那一行不影响使用;


ntp同步测试

【在进行所有ntp测试时最好关闭服务端的防火墙】

[root@NAT-139 ~]# iptables -F
[root@NAT-139 ~]# systemctl stop firewalld
[root@NAT-139 ~]# setenforce 0

服务器端执行ntpstat命令看下服务端同步上游服务器情况,这个命令需要等待2-3分钟

当状态由unsynchronised变为synchronised代表同步上游服务器成功,此过程需要 几分钟时间 。

然后执行ntpq -pn命令查看服务器同步详细情况

以星号 (*)开头这就意味着您的计算机已经从网络上获取了时间,当前的refid是local代表我们配置的本地ntp服务器


ntp链接状态

ntpq -p
  • remote:本机和上层ntp的ip或主机名,“+”表示优先,“*”表示次优先

  • refid:参考上一层ntp主机地址

  • st:stratum阶层

  • when:多少秒前曾经同步过时间

  • poll:下次更新在多少秒后

  • reach:已经向上层ntp服务器要求更新的次数

  • delay:网络延迟

  • offset:时间补偿

  • jitter:系统时间与bios时间差#

参数详解:

remote – 用于同步的远程节点或服务器。“LOCAL”表示本机 (当没有远程服务器可用
时会出现)
表中第一个字符(统计代码)是状态标识(参见 Peer Status Word),包含 "
","x","-","#","+","*","o":
• " " – 无状态,表示: 没有远程通信的主机
• "LOCAL" 即本机 (未被使用的)高层级服务器 远程主机使用的这台机
器作为同步服务器
• “x” – 已不再使用
• “-” – 已不再使用
• “#” – 良好的远程节点或服务器但是未被使用 (不在按同步距离排序的前六个节点
中,作为备用节点使用)
• “+” – 良好的且优先使用的远程节点或服务器(包含在组合算法中)
• “*” – 当前作为优先主同步对象的远程节点或服务器
“o” – PPS 节点 (当优先节点是有效时)。实际的系统同步是源于秒脉冲信号
(pulse-per-second,PPS),可能通过PPS 时钟驱动或者通过内核接口。refid – 远程的服务器进行同步的更高一级服务器
st – 远程节点或服务器的 Stratum(级别,NTP 时间同步是分层的)
t – 类型 (u: unicast(单播) 或 manycast(选播) 客户端, b: broadcast
(广播) 或 multicast(多播) 客户端, l: 本地时钟, s: 对称节点(用于备份),
A: 选播服务器, B: 广播服务器, M: 多播服务器, 参见“Automatic Server
Discovery“)
when – 最后一次同步到现在的时间 (默认单位为秒, “h”表示小时,“d”表示天)
poll – 同步的频率:rfc5905建议在 NTPv4 中这个值的范围在 4 (16秒) 至 17
(36小时) 之间(即2的指数次秒),然而观察发现这个值的实际大小在一个小的多的范围内
:64 (26 )秒 至 1024 (210 )秒
reach – 一个8位的左移移位寄存器值,用来测试能否和服务器连接,每成功连接一次
它的值就会增加,以 8 进制显示
delay – 从本地到远程节点或服务器通信的往返时间(毫秒)
offset – 主机与远程节点或服务器时间源的时间偏移量,offset 越接近于0,主机和
NTP 服务器的时间越接近(以方均根表示,单位为毫秒)
jitter – 与远程节点同步的时间源的平均偏差(多个时间样本中的 offset 的偏差,
单位是毫秒),这个数值的绝对值越小,主机的时间就越精确

客户端测试

使用ntpdate 服务器ip进行同步,发现报ntp socket被占用,是因为客户端开启了ntp服务,需要停掉ntp服务然后同步;

到这里同步完成,我们可在服务端和客户端同时执行date命令查看时间是否同步 ;

4、ntpd、ntpdate的区别

下面是网上关于ntpd与ntpdate区别的相关资料。如下所示:

使用之前得弄清楚一个问题,ntpd与ntpdate在更新时间时有什么区别。

ntpd不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进行同步时 间,而且是平滑同步,

并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行

时钟的跃变,对于某些程序会导致很严重的问题。

许多应用程序依赖连续的时钟——毕竟,这是一项常见的假定,即,取得的时间是线 性的,

一些操作,例如数据库事务,通常会地依赖这样的事实:时间不会往回跳跃。

不幸的是,ntpdate调整时间的方式就是我们所说的”跃变“:在获得一个时间之后, ntpdate使用settimeofday(2)设置系统时间。

这有几个非常明显的问题:

1)这样做不安全

  • ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利用一些软件设计上的缺 陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。

  • 由于ntpdate采用的方式是跳变,跟随它的服务器无法知道是否发生了异常(时间不 一样的时候,唯一的办法是以服务器为准)。

2)这样做不精确

  • 一旦ntp服务器宕机,跟随它的服务器也就会无法同步时间。

  • 与此不同,ntpd不仅能够校准计算机的时间,而且能够校准计算机的时钟。

3)这样做不够优雅

  • 由于是跳变,而不是使时间变快或变慢,依赖时序的程序会出错 (例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应 用而言,这是致命的)。尤其对数据库等对时间敏感的程序应用。

  • 因而,唯一一个可以令时间发生跳变的点,是计算机刚刚启动,但还没有启动很多服 务的那个时候。

  • 其余的时候,理想的做法是使用ntpd来校准时钟,而不是调整计算机时钟上的时 间。

  • NTPD在和时间服务器的同步过程中,会把BIOS计时器的振荡频率偏差——或者说 Local Clock的自然漂移(drift)——记录下来。 这样即使网络有问题,本机仍然能维持一个相当精确的走时。


二、NFS网络文件共享存储服务器

NFS介绍

  • NFS是Network File System的缩写,中文意思是网络文件系统。它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。

  • NFS客户端(一般为应用服务器,例如Web)可以通过挂载的方式将NFS服务器端共享的数据目录挂载带NFS客户端本地系统中(就是某一个挂载点下)。从客户端本地看,NFS服务器端共享的目录就好像是客户端自己的磁盘分区或目录一样,而实际上确实远端的NFS服务器的目录。

  • NFS网络文件系统很像Windows系统的网络共享、安全功能、网络驱动器映射,这也和Linux系统里的samba服务类似。只不过一般情况下,Windows网络共享服务或samba服务用于办公局域网共享,而互联网中小型网站集群架构后端常用NFS进行数据共享,如果是大型网站,那么有可能还会用到更复杂的分布式文件系统,例如:Moosefs(mfs)、GlusterFS、FastDFS.

为什么要使用共享存储

  1. 实现多台服务器之间数据共享

  1. 实现多台服务器之间数据一致

集群没有共享存储的情况

  1. A用户上传图片经过负载均衡,负载均衡将上传请求调度至WEB1服务器上。

  1. B用户访问A用户上传的图片,此时B用户被负载均衡调度至WEB2上,因为WEB2 上没有这张图片,所以B用户无法看到A用户传的图片。

集群有共享存储的情况

  1. A用户上传图片无论被负载均衡调度至WEB1还是WEB2, 最终数据都被写入至共享存储*

  1. B用户访问A用户上传图片时,无论调度至WEB1还是WEB2,最终都会上共享存储访问对应的文件,这样就可以访问到资源了。

  1. 也就是用户上传文件时都上传到共享存储,不同服务器通过连接共享存储进行查看;


NFS工作原理

  • 在NFS服务器端设置好一个共享目录/video后,其他有权限访问NFS服务器端的客户 端都可以将这个共享目录/video挂载到客户端本地的某个挂载点,图中的两个NFS客 户端本地的挂载点分别为/v/video和/video,不同客户端的挂载点可以不相同。

  • 客户端正确挂载完毕后,就进入到了nfs客户端的挂载点所在的/v/video或/video目 录,此时就可以看到NFS服务器端/video共享出来的目录下的所有数据。在客户端上 查看时,NFS服务器端的/video目录就相当于客户端本地的磁盘分区或目录,几乎感 觉不到使用上的区别。

  • 已经挂载完后用df -h可以看到本地挂载信息,和本地的磁盘分区几乎没什么差别, 只是文件系统的开始是以IP地址开头而已。

  • NFS服务所使用的端口号在每次启动的时候是不同的,通过RPC(远程过程调用Remote Procedure Call简称RPC)协议/服务来实现,这个RPC服务的应用在门户级的网站有很多。例如:百度。


什么是RPC

因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此,NFS的功能所对应的端口无法固定,它会随机取用一些未被使用的端口来作为传输之用,其中CentOS5.x的随机端口都小于1024,而CentOS6.x的随机端口都是较大的。

因为端口不固定,这样一来就会造成NFS客户端与NFS服务端的通信障碍,因为NFS客户端必须要知道NFS服务器端的数据传输端口才能进行通信,才能交互数据。

要解决上面的困扰,就需要通过远程过程调用RPC服务来帮忙了,NFS的RPC服务最主要的功能就是记录每个NFS功能所对应的端口号,并且在NFS客户端请求时将该端口和功能对应的信息传递给请求数据的NFS客户端,从而确保客户端可以连接到正确的NFS端口上去,达到实现数据传输交互数据目的。

服务端的RPC服务如何知道每个NFS的端口的:

当NFS读取端启动服务时会随机取用若干端口,并主动向RPC服务注册相关端口的对应的功能,然后RPC服务使用固定的111端口来监听NFS客户端提交的请求,并将正确的NFS端口信息回复给请求的NFS客户端。


NFS实例搭建

我们需要两台CentOS7机器,我们用虚拟机做测试,分别做NFS服务器和客户端,配置如下:

NFS-Server ip:192.168.198.140

NFS-Client ip:192.168.198.138

实现的目标是:在NFS服务器上共享一个目录,在客户端上可以直接操作NFS服务器上的这个共享目录下的文件。

NFS服务端配置

①安装NFS服务和rpcbind

首先使用yum安装nfs服务:

yum -y install rpcbind nfs-utils

②创建共享目录

在服务器上创建共享目录,并设置权限。

mkdir -p /data/share/
chmod 755 -R /data/share/

③配置NFS

nfs的配置文件是 /etc/exports ,在配置文件中加入一行:

/data/share/ 192.168.198.140(rw,no_root_squash,no_all_squash,sync)
这行的意思是把共享目录/data/share/共享给192.168.198.138这个客户端ip,后面括号里的内容是权限参数,其中:rw 表示设置目录可读写。 sync表示数据会同步写入到内存和硬盘中,相反 rsync 表示数据会先暂存于内存中,而非直接写入到硬盘中。

no_root_squash NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。

no_all_squash 不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限。

如果有多个共享目录配置,则使用多行,一行一个配置。

④启动服务

按顺序启动rpcbind和nfs服务:

systemctl start rpcbind
systemctl start nfs

加入开机启动【centos7】:

systemctl enable rpcbind
systemctl enable nfs

⑤验证服务

nfs服务启动后,可以使用命令 rpcinfo -p 查看端口是否生效。

111端口为rpcbind服务对外提供服务的主端口。

#设置服务开机自启动【centos6】

chkconfig rpcbind on
chkconfig nfs on#查看
systemctl list-unit-files |grep rpcbind
systemctl list-unit-files | grep nfs

我们可以使用 showmount 命令来查看服务端(本机)是否可连接:

出现上面结果表明NFS服务端配置正常。


NFS客户端配置

①安装rpcbind服务

Centos6.6版本及以上的系统需要安装nfs-utils软件,否则再挂载的时候会报错,Centos6.5以前的没有这个问题。

yum -y install nfs-utils rpcbind#客户端只需要启动rpcbind服务即可:
service rpcbind start

②挂载远程nfs文件系统

查看服务端已共享的目录:

 showmount -e 192.168.198.140

建立挂载目录,执行挂载命令:

mkdir /mnt/sharemount -t nfs 192.168.198.140:/data/share /mnt/share -o nolock,nfsvers=3,vers=3

如果不加 -o nolock,nfsvers=3 则在挂载目录下的文件属主和组都是nobody,如果指定nfsvers=3则显示root。

查看挂载结果,在客户端输入 df -h

如果要解除挂载,可执行命令:

umount /mnt/share

开机自动挂载

如果按上面的配置好,NFS即部署好了,但是如果你重启客户端系统,发现不能随机器一起挂载,需要再次手动操作挂载,这样操作比较麻烦,因此我们需要设置开机自动挂载。我们不要把挂载项写到/etc/fstab文件中,因为开机时先挂载本机磁盘再启动网络,而NFS是需要网络启动后才能挂载的,所以我们把挂载命令写入到/etc/rc.d/rc.local文件中即可。

[root@localhost ~]# vim /etc/rc.d/rc.local
#在文件最后添加一行:
mount -t nfs 192.168.42.101:/data/share /mnt/share/ -o nolock,nfsvers=3,vers=3
#同时需要给此脚本加执行权限
chmod +x /etc/rc.d/rc.local
保存并重启机器看看。

测试验证

查看挂载结果,在客户端输入 df -h

看到最后一行了没,说明已经挂载成功了。接下来就可以在客户端上进入目录/mnt/share下,新建/删除文件,然后在服务端的目录/data/share查看是不是有效果了,同样反过来在服务端操作在客户端对应的目录下看效果。

测试结果

在138客户端的/mnt/share目录中创建一个1.txt文件,可以在服务端/data/share目录下看到此文件。

你也可以这样理解:将服务端的/data/share目录挂载到了客户端/mnt/share上,相当于将服务端的/data/share目录共享给了客户端的/mnt/share;

所以在客户端/mnt/share进行创建文件或删除文件的操作相当于直接对服务端/data/share目录下进行操作;

在服务端/data/share进行创建文件或删除文件的操作相当于直接对客户端/mnt/share目录下进行操作。

在客户端进行操作:

在服务端进行操作


三、NFS的优缺点

NFS服务可以让不同的客户端挂载使用同一个共享目录,也就是讲其作为共享存储使用,这样可以保证不同节点客户端数据的一致性,在集群架构环境中经常会使用到(仅支持类UNIX系统)。如果是Windows和Linux混合环境的集群系统,可以使用samba来实现。

优点:

  1. 简单,容易上手,容易掌握。

  1. NFS文件系统内数据是在文件系统之上的,即数据是能看得见的。

  1. 部署快速,维护简单方便,且可控,满足需求就是最好的。

  1. 可靠,从软件层面上看,数据可靠性高,经久耐用。

  1. 服务非常稳定。

缺点:

  1. 存在单点故障,如NFS Server宕机了,所有客户端都不能访问共享目录,后期会 通过负载均衡及高可用方案弥补

  1. 在大数据高并发的场合,NFS效率、性能有限(2千万/日 以下PV的网站不是瓶 颈,除非网站架构设计太差)

  1. 客户端认证是基于IP和主机名的,权限需要根据ID识别,安全性一般(用于内网 则问题不大)

  1. NFS数据是明文的,NFS本身不对数据完整性作验证(传输的文件可能完整也可能不完整)。

  1. 多台客户机器挂载一个NFS服务器时,连接管理维护麻烦(耦合度高)。尤其 NFS服务端出问题后,所有NFS客户端都处于挂掉状态(测试环境可使用autofs自动 挂载解决,正式环境可修复NFS服务或强制卸载umount -lf)

耦合性(英语:Coupling,dependency,或称耦合力或耦合度)是一种软件度量,是指一程序中,模块及模块之间信息或参数依赖的程度。 内聚性是一个和耦合性相对的概念,一般而言低耦合性代表高内聚性,反之亦然。
  1. 涉及了同步(实时等待)和异步(解耦)的概念,NFS服务端和客户端相对来说就是耦合度有些高。网站程序也是一样,尽量不要耦合度太高,系统及程序架构师的重要职责就是为了解决程序及架构解耦,让网站的可扩展性变得更好。

相关文章:

【Linux】NTP时间同步服务与NFS网络文件共享存储服务器(配置、测试)

一、NTP时间同步服务1、NTP介绍NTP服务器【Network Time Protocol(NTP)】是用来使计算机时间同步化的一种协议,它可以使计机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正&a…...

windows下php连接oracle安装oci8扩展报错(PHP Startup: Unable to load dynamic library ‘oci8_11g‘)

记录一下php7.29安装oci8的艰苦过程,简直就是唐僧西天取经历经九九八十一难。 使用的是phpstudy_pro安装的ph扩展wnmp环境下; 1 、安装oralce Instant Client 首先,安装oci8和pdo_oci扩展依赖的Oracle client。了解到需要连接的Oracle版…...

TensorRT的功能

TensorRT的功能 文章目录TensorRT的功能2.1. C and Python APIs2.2. The Programming Model2.2.2. The Runtime Phase2.3. Plugins2.4. Types and Precision2.5. Quantization2.6. Tensors and Data Formats2.7. Dynamic Shapes2.8. DLA2.9. Updating Weights2.10. trtexec本章…...

433MHz无线通信--模块RXB90

1、接收模块RXB90简介 两个数据输出是联通的。 2、自定义一个编码解码规则 组数据为“0x88 0x03 0xBD 0xB6”。 3、发射模块 如何使用示波器得到捕捉一个周期的图像? 通过date引脚连接示波器CH1,以及示波器探针的接地端接芯片的GND,分…...

Seata源码学习(三)-2PC核心源码解读

Seata源码分析-2PC核心源码解读 2PC提交源码流程 上节课我们分析到了GlobalTransactionalInterceptor全局事务拦截器,一旦执行拦截器,我们就会进入到其中的invoke方法,在这其中会做一些GlobalTransactional注解的判断,如果有注解…...

IO流概述

🏡个人主页 : 守夜人st 🚀系列专栏:Java …持续更新中敬请关注… 🙉博主简介:软件工程专业,在校学生,写博客是为了总结回顾一些所学知识点 目录IO流概述IO 流的分类总结流的四大类字…...

【node.js】node.js的安装和配置

文章目录前言下载和安装Path环境变量测试推荐插件总结前言 Node.js是一个在服务器端可以解析和执行JavaScript代码的运行环境,也可以说是一个运行时平台,仍然使用JavaScript作为开发语言,但是提供了一些功能性的API。 下载和安装 Node.js的官…...

Python优化算法—遗传算法

Python优化算法—遗传算法一、前言二、安装三、遗传算法3.1 自定义函数3.2 遗传算法进行整数规划3.3 遗传算法用于旅行商问题3.4 使用遗传算法进行曲线拟合一、前言 优化算法,尤其是启发式的仿生智能算法在最近很火,它适用于解决管理学,运筹…...

数据埋点(Data buried point)的应用价值剖析

一、什么是数据埋点?数据埋点指在应用中特定的流程中收集一些信息,用来跟踪应用使用的状况,后续用来进一步优化产品或是提供运营的数据支撑。比如访问数(Visits),访客数(Visitor),停…...

一文弄懂硬链接、软链接、复制的区别

复制 命令:cp file1 file2 作用:实现对file1的一个拷贝。 限制:可以跨分区,文件夹有效。 效果:修改file1,对file2无影响;修改file2,对file1无影响。删除file1,对file…...

界面组件Telerik ThemeBuilder R1 2023开创应用主题研发新方式!

Telerik DevCraft包含一个完整的产品栈来构建您下一个Web、移动和桌面应用程序。它使用HTML和每个.NET平台的UI库,加快开发速度。Telerik DevCraft提供最完整的工具箱,用于构建现代和面向未来的业务应用程序,目前提供UI for ASP.NET包含一个完…...

在FederatedScope 如何查看clientserver之间的传递的参数大小(通讯量)? 对源码的探索记录

在FederatedScope 如何查看client/server之间的传递的参数大小(通讯量)? 对源码的探索记录 背景需求 想给自己的论文补一个通讯开销对比实验:需要计算出client和server之间传递的信息(例如,模型权重、embedding)总共…...

2023爱分析 · 数据科学与机器学习平台厂商全景报告 | 爱分析报告

报告编委 黄勇 爱分析合伙人&首席分析师 孟晨静 爱分析分析师 目录 1. 研究范围定义 2. 厂商全景地图 3. 市场分析与厂商评估 4. 入选厂商列表 1. 研究范围定义 研究范围 经济新常态下,如何对海量数据进行分析挖掘以支撑敏捷决策、适应市场的快…...

20230215_数据库过程_高质量发展

高质量发展 —一、运营结果 SQL_STRING:‘delete shzc.np_rec_lnpdb a where exists (select * from tbcs.v_np_rec_lnpdbbcv t where a.telnumt.telnum and a.outcarriert.OUTCARRIER and a.incarriert.INCARRIER and a.owncarriert.OWNCARRIER and a.starttimet.STARTTIME …...

【百度 JavaScript API v3.0】LocalSearch 位置检索、Autocomplete 结果提示

地名检索移动到指定坐标 需求 在输入框中搜索,在下拉列表中浮动,右侧出现高亮的列表集。选中之后移动到指定坐标。 技术点 官网地址: JavaScript API - 快速入门 | 百度地图API SDK 开发文档:百度地图JSAPI 3.0类参考 实现 …...

运用Facebook投放,如何制定有效的竞价策略?

广告投放中,我们经常会遇到一个问题,就是不知道什么样的广告适合自己的业务。其实,最简单的方法就是根据我们业务本身进行定位并进行投放。当你了解了广告主所处行业及目标受众后,接下来会针对目标市场进行搜索和定位(…...

大数据框架之Hadoop:HDFS(五)NameNode和SecondaryNameNode(面试开发重点)

5.1NN和2NN工作机制 5.1.1思考:NameNode中的元数据是存储在哪里的? 首先,我们做个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访问,还有响应客户请求,必然是效率过低。因此&am…...

计算机网络 - 1. 体系结构

目录概念、功能、组成、分类概念功能组成分类分层结构概念总结OSI 七层模型应用层表示层会话层传输层网络层数据链路层物理层TCP/IP 四层模型OSI 与 TCP/IP 相同点OSI 与 TCP/IP 不同点为什么 TCP/IP 去除了表示层和会话层五层参考模型概念、功能、组成、分类 概念 &#x1f…...

银行业上云进行时,OLAP 云服务如何解决传统数仓之痛?

本文节选自《中国金融科技发展概览:创新与应用前沿》,从某国有大行构建大数据云平台的实践出发,解读了 OLAP 云服务如何助力银行实现技术平台化、组件化和云服务化,降低技术应用门槛,赋能业务创新。此外,本…...

特定领域知识图谱融合方案:文本匹配算法之预训练Simbert、ERNIE-Gram单塔模型等诸多模型【三】

特定领域知识图谱融合方案:文本匹配算法之预训练模型SimBert、ERNIE-Gram 文本匹配任务在自然语言处理中是非常重要的基础任务之一,一般研究两段文本之间的关系。有很多应用场景;如信息检索、问答系统、智能对话、文本鉴别、智能推荐、文本数据去重、文本相似度计算、自然语…...

【2023最新教程】从0到1开发自动化测试框架(0基础也能看懂)

一、序言 随着项目版本的快速迭代、APP测试有以下几个特点: 首先,功能点多且细,测试工作量大,容易遗漏;其次,代码模块常改动,回归测试很频繁,测试重复低效;最后&#x…...

linux备份命令小记 —— 筑梦之路

Linux dump命令用于备份文件系统。 dump为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。 dump命令只可以备份ext2/3/4格式的文件系统, centos7默认未安装dump命令,可以使用yum install -y dump安…...

vue项目(vue-cli)配置环境变量和打包时区分开发、测试、生产环境

1.打包时区分不同环境在自定义配置Vue-cli 的过程中,想分别通过.env.development .env.test .env.production 来代表开发、测试、生产环境。NODE_ENVdevelopment NODE_ENVtest NODE_ENVproduction本来想使用上面三种配置来区分三个环境,但是发现使用test…...

Python 命名规范

Python 命名规范 基本规范 类型公有内部备注Packagepackage_namenone全小写下划线式驼峰Modulemodule_name_module_name全小写下划线式驼峰ClassClassName_ClassName首字母大写式驼峰Methodmethod_nameprotected: _method_name private: __method_name全小写下划线式驼峰Exce…...

操作系统——2.操作系统的特征

这篇文章,我们来讲一讲操作系统的特征 目录 1.概述 2.并发 2.1并发概念 2.1.1操作系统的并发性 3.共享 3.1共享的概念 3.2共享的方式 4.并发和共享的关系 5.虚拟 5.1虚拟的概念 5.2虚拟小结 6.异步 6.1异步概念 7.小结 1.概述 上一篇文章,我们…...

【计算机网络期末复习】第六章 应用层

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📣专栏定位:为想复习学校计算机网络课程的同学提供重点大纲,帮助大家渡过期末考~ 📚专栏地址:https://blog.csdn.net/Newin2020/arti…...

TypeScript基本教程

TS是JS的超集,所以JS基础的类型都包含在内 起步安装 npm install typescript -g运行tsc 文件名 基础类型 Boolean、Number、String、null、undefined 以及 ES6 的 Symbol 和 ES10 的 BigInt。 1 字符串类型 字符串是使用string定义的 let a: string 123 //普…...

使用Windows API实现本地音频采集

Windows API提供了Winmm(Windows多媒体)库,其中包括了音频设备相关的函数,可以用来实现音频设备的枚举和测试。 下面是一个简单的示例代码,演示了如何使用Winmm库中的waveInGetNumDevs()函数来枚举计算机上的音频输入…...

实用的费曼学习法 | 一些思考

文章目录 一、前言二、费曼学习法CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 大数据与人工智能背景下,最重要的是:捕捉机会和快速学习的能力 一、前言 费曼学习法是美国著名的物理学家,理查德 ∙ \bullet ∙ 费曼总结出来的学习方法。 这个方法的核心是:当你学习了…...

Linux安装Docker配置docker-compose 编排工具【超详细】

一、介绍Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有…...

在国外的网站做推广方案/sem优化推广

Array.from Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。 所谓类数组对象,最基本的要求就是具有 length 属性的对象 将类数组对象转换为真正数组: let arrayLike {0: tom, 1: 65,2: 男,3: [jane,john,Mary],length: 4…...

58网站开发要多少钱/淘宝推广方式

filter函数的目的是从列表(或一般情况下,任何iterable)中选择满足特定条件的元素。它并不是真正用于基于索引的选择。因此,尽管您可以使用它来挑选CSV文件的指定列,但我不推荐它。相反,您可能应该使用这样的方法:with …...

网站微营销公司哪家好/怎么做app推广代理

一.IO模型介绍 为了更好的学习IO模型,可以先看同步,异步,阻塞,非阻塞 http://www.cnblogs.com/linhaifeng/articles/7430066.html#_label4 二.IO模型分析比较 到目前为止,已经将四个IO Model都介绍完了。现在回过头来回…...

win2003建设网站/世界杯球队最新排名

【总目录/源代码】:https://blog.csdn.net/qq_40636117/article/details/94383044 【下一篇】:https://blog.csdn.net/qq_40636117/article/details/94415960 我们知道,哪怕运行像输出“Hello World”这样简单的程序,java虚拟机都…...

福州新增疫情最新消息今天福州4/微博搜索引擎优化

新增web.xml 选中项目(右键) _ Java EE Tools _ Generate Deployment Descriptor Stub转载于:https://www.cnblogs.com/kitsune/p/6845824.html...

潍坊做外贸网站建设/淄博网络推广公司哪家好

整整一个月,帕特森将大奖章投资组合中的各种投资品的收盘价偷偷记下来,对照华尔街日报一行挨一行的仔细检查,看它们是否对得上。 只有在西蒙斯的数字都得到验证之后,帕特森才放下心来,转而将他全部的注意力放到用数学…...