如何配置 NTP 以在 Ubuntu 16.04 上的 NTP 池项目中使用

2023-11-04

介绍

准确的计时对于几乎所有服务或软件都至关重要。电子邮件、记录器、事件系统和调度程序、用户身份验证机制以及在分布式平台上运行的服务都需要准确的时间戳来按时间顺序记录事件。这些服务使用网络时间协议(NTP)将系统时钟与可信的外部源同步。该源可以是原子钟、GPS 接收器或已使用 NTP 的其他时间服务器。

这就是NTP池项目项目开始发挥作用。它是一个庞大的全球时间服务器集群,为世界各地数千万客户提供轻松访问已知“美好时光”的服务。它是 Ubuntu 和大多数其他主要 Linux 发行版以及许多网络设备和软件应用程序的默认时间服务器。

在本指南中,您将在服务器上设置 NTP 并将其配置为 NTP 池项目的一部分,以便为 NTP 池项目的其他用户提供准确的时间。提供空闲的 CPU 周期和未使用的带宽是回馈社区的完美方式。

所需的带宽相对较低,可以根据您可以提供的数量和服务器所在的位置进行调整。每个客户端每 20 分钟仅发送几个 UDP 数据包,因此大多数服务器每秒仅接收大约十几个 NTP 数据包,每天会出现几次峰值,每秒最多可达一百个数据包。这意味着带宽使用率为 10-15Kb/秒,峰值为 50-120Kb/秒。

加入 NTP 池项目之前,您必须满足三个基本要求:

  1. 您的服务器必须有一个静态 IP 地址。
  2. 您的服务器必须具有永久且稳定的互联网连接。
  3. 您的 IP 地址通常不会改变,或者很少改变(每年一次或更少)。

对于大多数基于云的服务器,通常会自动满足前两个要求。第三个要求强调加入NTP池项目构成长期承诺。当然,如果您的情况发生变化,可以将服务器从池中取出,但需要很长时间(大多数是几周,但有时是几个月甚至几年)流量才会完全消失。

先决条件

要完成本教程,您将需要:

  • 一台配置了 IPv6 网络的 Ubuntu 16.04 服务器。如果您需要在现有 Droplet 上配置 IPv6 网络,您可以按照本教程.
  • sudo 非 root 用户和防火墙,您可以按照以下步骤进行设置使用 Ubuntu 16.04 教程进行初始服务器设置.

第 1 步 — 安装 NTP

默认情况下不安装 NTP 包,因此您将使用包管理器来安装它。首先,更新你的包:

  1. sudo apt-get update

然后安装NTP:

  1. sudo apt-get install ntp

如果您已按照先决条件中指定的方式配置了防火墙,则必须允许端口上的 UDP 流量123为了与 NTP 池通信:

  1. sudoUFW 允许123/udp

有关 UFW 的更多信息,请参阅如何在 Ubuntu 上使用 UFW 设置防火墙.

NTP 现已安装,但配置为使用默认 NTP 池时间服务器。让我们选择一些特定的时间服务器。

第 2 步 — 选择合适的上游服务器

NTP Pool项目要求想要加入该池的运营商选择良好的网络本地时间服务器,而不是使用默认的pool.ntp.org服务器。这确保了 NTP 池项目保持可靠、快速和健康。选择时间源时,您需要稳定的网络连接,无数据包丢失,并且服务器之间的跳数尽可能少。

多层、分层的 NTP 协议将涉及的各方分为主服务器、辅助服务器和客户端。主服务器称为第 1 层并直接连接到时间源,称为层数 0。该源可以是原子钟、GPS 接收器或无线电导航系统。链中的辅助服务器称为第2层, 第3层等等。

每个服务器也是一个客户端。 Stratum 2 客户端从上游 Stratum 1 服务器接收时间,并向下游 Stratum 3 服务器或其他客户端提供时间。为了使 NTP 池项目成员正常工作,NTP 守护程序需要至少配置三台服务器。该项目建议至少四个且不超过七个来源。

NTP 池项目提供了公共 Stratum 1 和 Startum 2 时间服务器的列表。该列表指定了在规定限制下可供公众访问的 NTP 时间服务器。你会发现三种类型:

  • 开放存取:该时间服务器对任何符合NTP池的客户端开放使用建议.
  • 禁止进入:除了 NTP 池使用建议之外,此时间服务器还有一些访问限制。
  • 封闭访问:本次服务器已关闭或需要提前安排。

Warning:不要使用未列出的服务器开放存取除非您已获得这样做的批准。

参观层 1 时间服务器列表。您将看到如下所示的列表:

Stratum 1 servers

对列表进行排序ISO code列并查找地理位置靠近您的服务器数据中心的一台或两台服务器。当服务器的准入政策列状态开放存取,您可以毫无问题地使用它。如果显示“限制访问”,请单击以打开该条目并阅读其中注明的说明访问详情场地。很多时候,你会发现通知消息被设定为Yes,这意味着您必须制作一封非正式电子邮件,发送至中提供的地址服务器联系方式,通知服务器操作员您希望使用此时间服务器作为 NTP 池项目成员的时间源。

确定要使用的服务器后,单击列表中每个服务器的链接ISO列并复制其主机名或 IP 地址。您将在步骤 3 中使用这些地址。

接下来,从服务器中选择三到四台服务器第2层列表,遵循相同的过程。

选择时间服务器后,就可以配置 NTP 客户端以使用它们了。

步骤 3 — 配置 NTP 以加入池

要将您的服务器与 NTP 池一起使用并配置新的时间服务器,您需要对 NTP 守护程序的配置进行一些修改。为此,请编辑/etc/ntp.conf file:

  1. sudo nano/etc/ntp.conf

首先,确保漂移文件已配置。漂移文件存储以其标称频率运行的系统时钟与与正确时间保持同步所需的频率之间的频率偏移。它有助于实现稳定且准确的时间。在默认安装中,您应该在配置文件的顶部找到此内容:

/etc/ntp.conf
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift
...

接下来,从配置中删除默认时间源条目。您正在寻找属于该模式的所有线条pool [0-3].ubuntu.pool.ntp.org iburst or pool ntp.ubuntu.com。如果您使用默认配置,请删除突出显示的行:

/etc/ntp.conf

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
pool 0.ubuntu.pool.ntp.org iburst
pool 1.ubuntu.pool.ntp.org iburst
pool 2.ubuntu.pool.ntp.org iburst
pool 3.ubuntu.pool.ntp.org iburst

# Use Ubuntu's ntp server as a fallback.
pool ntp.ubuntu.com

使用您在上一步中选择的精心挑选的服务器替换您删除的行server关键字而不是pool关键词。

/etc/ntp.conf
...
server ntp_server_hostname_1 iburst
server ntp_server_hostname_2 iburst
server ntp_server_hostname_3 iburst
server ntp_server_hostname_4 iburst
server ntp_server_hostname_5 iburst
...

我们使用iburst根据 NTP 池建议,每个服务器的选项。这样,如果服务器无法访问,则会发送八个数据包,而不是通常的一个数据包。使用burstNTP池项目中的选项被认为是滥用,因为它会在每个轮询间隔发送这八个数据包,而iburst仅第一次发送八个数据包。

接下来,确保默认配置不允许管理查询。如果不这样做,您的服务器可能会被用于 NTP 反射攻击,或者可能容易受到ntpq and ntpdc尝试修改服务器状态的查询。检查是否noquery选项被添加到默认值restrict lines:

/etc/ntp.conf
...
# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

您可以在以下位置找到有关其他选项的更多信息官方文档.

您的 NTP 守护程序配置文件现在应如下所示,尽管您的文件可能有其他注释,您可以安全地忽略它们:

/etc/ntp.conf

driftfile /var/lib/ntp/ntp.drift

server ntp_server_hostname_1 iburst
server ntp_server_hostname_2 iburst
server ntp_server_hostname_3 iburst
server ntp_server_hostname_4 iburst
server ntp_server_hostname_5 iburst

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

保存文件并退出编辑器。

现在重新启动 NTP 服务,让您的时间服务器将其时钟同步到上游服务器。

  1. sudosystemctl 重新启动 ntp.service

几分钟后,使用以下命令检查时间服务器的运行状况ntpq命令:

  1. ntpq -p

输出应类似于以下内容:

Output
remote refid st t when poll reach delay offset jitter ============================================================================== mizbeaver.udel. .INIT. 16 u - 64 0 0.000 0.000 0.000 montpelier.ilan .GPS. 1 u 25 64 7 55.190 2.121 130.492 +nist1-lnk.binar .ACTS. 1 u 28 64 7 52.728 23.860 3.247 *ntp.okstate.edu .GPS. 1 u 31 64 7 19.708 -8.344 6.853 +ntp.colby.edu .GPS. 1 u 34 64 7 51.518 -5.914 6.669

The remote列告诉您 NTP 守护程序正在使用的服务器的主机名,以及refid列告诉您服务器正在使用的源。因此对于 Stratum 1 服务器来说,refid字段应显示GPS, PPS, ACTS, or PTB,并且Stratum 2及更高级别的服务器将显示上游服务器的IP地址。这st列显示层,并且delay, offset and jitter告诉您时间源的质量。这三个字段的值越低越好。

您的时间服务器现在可以向公众提供时间。您可以通过致电来验证这一点ntpdate来自另一位主机:

  1. ntpdate -q your_server_ip

输出应该与此类似,它告诉您它调整了时间服务器和偏移量:

Output
server your_server_ip, stratum 2, offset 0.001172, delay 0.16428 2 Mar 23:06:44 ntpdate[18427]: adjust time server your_server_ip offset 0.001172 sec

您现在已准备好向 NTP 池项目注册您的 NTP 服务器,以便其他人可以使用它。

步骤 4 — 将服务器添加到 NTP 池

要添加您的服务器以便其他人可以使用它,请访问管理.ntppool.org并注册一个帐户。您将收到一封电子邮件NTP池help@ntppool.org要求您验证您的帐户。按照电子邮件中的说明确认您的帐户,然后登录管理.ntppool.org.

登录后,您将看到添加服务器的简单界面:

Add a server

输入服务器的 IP 地址并单击Submit.

下一个屏幕要求您验证它是否识别了您的服务器区域。如果它显示您的服务器位于与您预期不同的区域,请使用Comment框让他们知道。

The verification screen

如果您满意,请单击确认输入是的,这是我的服务器,添加它!

Your server is now part of the NTP Pool Project. Visit http://www.pool.ntp.org/scores/your_server_ip to see information the NTP Pool’s monitoring system has collected about your server. It checks your server a few times per hour and displays offset data, alog with the score of your system. As long as your server is keeping good time and is reachable, the score will rise untill it reaches 20 points. Only servers with a score higher than 10 are used in the pool.

解决连接问题

如果您在同步服务器时遇到问题,您可能安装了数据包防火墙,从而丢弃了您的服务器outgoing端口上的数据包123。看一眼如何在 Ubuntu 上使用 UFW 设置防火墙了解如何检查防火墙的状态。

如果 NTP 池项目的监控站无法到达您的 NTP 服务器并且您的服务器分数正在下降,或者您无法使用您的服务器同步其他时钟,则您可能有一个数据包防火墙,会丢弃您的incoming港口流量123。检查您的防火墙状态。

如果您确定没有安装防火墙,或者您已打开端口123对于传入和传出流量,您的服务器提供商或其他传输提供商可能会沿途丢弃您的数据包。如果您不具备自行解决这些问题的知识,最好向社区寻求帮助。这NTP 池项目论坛是一个很好的起点。您还可以加入邮件列表 or 发送电子邮件给 NTP 池项目运营商。在寻求帮助之前,请确保您可以展示您已尝试解决问题的所有步骤。

结论

在本教程中,您成功设置了自己的时间服务器并使其成为 NTP 池项目的成员,为社区提供时间服务。与计时社区保持联系。加入NTP 池项目论坛 or the 邮件列表。请务必监控服务器的分数并进行必要的调整。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何配置 NTP 以在 Ubuntu 16.04 上的 NTP 池项目中使用 的相关文章

  • 使用 TCP 时是否需要使用校验和来保护我的消息?

    使用 TCP 作为网络协议 在通过线路发送消息之前 我会为每条消息的大小 以及可能的校验和 添加前缀 我想知道 计算和传输消息的校验和是否有意义 以确保消息将被不变地传递 如果以及何时传递 例如因为一些网络错误 目前 我在发送消息本身之前发
  • 从套接字读取 C HTTP

    我想知道如何判断是否已从套接字接收到所有数据 这是一个简单的网络代理 现在我正在处理请求部分 所以发送的内容应该以 r n r n 结尾 我不知道请求会持续多久 我在这里读过一些帖子 说我应该检查读取函数是否返回 0 但其他人说0只在客户端
  • Docker 容器是否有自己的 TCP/IP 堆栈?

    我试图了解来自连接到主机的线路并定向到 Docker 容器内的应用程序的网络数据包在幕后发生了什么 如果它是一个经典的 VM 我知道到达主机的数据包将由虚拟机管理程序 例如 VMware VBox 等 传输到 VM 的虚拟 NIC 并从那里
  • C:为什么这个服务器/客户端设置只能在一台计算机上运行?

    我是网络新手 我想知道为什么会这样TCP 服务器 客户端 C 语言实现 https www geeksforgeeks org tcp server client implementation in c 只能在一台计算机上运行 1 我的意思
  • “192.168.1.1/21”是什么意思?

    当他们在 IP 地址后面写上一个斜杠和一个数字时 这意味着什么 斜杠后面的部分是要使用多少个子网掩码位 由于使用无类路由 您可以使用斜线而不是说 A 类或 B 类 例子 192 168 1 1 24 is 192 168 1 1 255 2
  • 了解路由表条目

    我想问一个关于Linux中route命令的问题 我已在 Linux 终端中输入以下命令 gt route 并得到输出 Destination Gateway Genmask Flags Metric Ref Use Iface 192 16
  • 如何限制 docker 容器仅侦听来自本地主机的连接?

    我正在运行一个 docker 容器docker run p 8080 8080 其他计算机可以通过访问访问我的服务器 my ip 8080 但是 出于安全原因 我希望只有 localhost 127 0 0 0 能够访问我的服务器 我不希望
  • 使用 JMS,是否有任何方法可以将消息存储在间歇性断开连接的客户端上,并在网络可用时将其转发给代理?

    我正在考虑一种架构 其中我的客户端间歇性地连接到网络 当网络不可用时 我希望将在这些客户端上创建的消息存储在 JMS 队列中 并在客户端位于网络上时将这些消息转发到中央消息代理 用户可以控制网络 例如拨入 因此它不像手机那样是间歇性连接 是
  • 在本地主机上使用相同的 IP 和端口创建套接字

    我在 Linux 上看到奇怪的行为 我看到远程端和本地端都显示相同的 IP 和端口组合 以下是 netstat 输出 netstat anp 网络统计grep 6102 tcp 0 0 139 185 44 123 61020 0 0 0
  • 在 scapy 中通过物理环回发送数据包

    我最近发现了 Scapy 它看起来很棒 我正在尝试查看 NIC 上物理环回模块 存根上的简单流量 但是 Scapy sniff 没有给出任何结果 我正在做的发送数据包是 payload data 10 snf sniff filter ic
  • Retrofit + Rxjava 服务器连接失败时调用onError需要很长时间

    我正在使用 Retrofit Rxjava 从服务器获取实体列表 根据我的设计 当任务失败时 它首先检查互联网连接 然后检查与服务器的连接doOnError的方法Observable 当客户端没有连接到互联网时doOnError在合理的时间
  • Chrome 在传输一定量的数据后挂起 - 等待可用的套接字

    我有一个浏览器游戏 最近我开始向游戏添加音频 Chrome 无法加载整个页面并卡在 91 requests 8 1 MB transferred 并且不再加载任何内容 它甚至破坏了所有其他选项卡中的网站 说Waiting for avail
  • 如何才能将 TCP 连接返回到同一端口?

    机器是 RHEL 5 3 内核 2 6 18 有时我在 netstat 中注意到我的应用程序有连接 建立了 TCP 连接本地地址 and 国外地址是一样的 其他人也报告了同样的问题 症状与链接中描述的相同 客户端连接到本地运行的服务器的端口
  • javax.net.ssl.SSLException:没有可用的 PSK。无法恢复

    我正在使用 Jetty 客户端发送传出请求 在 Java 10 下完美运行的代码在 Java 11 下突然出现以下异常 javax net ssl SSLException No PSK available Unable to resume
  • 使用 IP 地址连接到另一台计算机

    我在计算机上安装了 NodeJS 并运行了一些测试 一切正常my机器 现在我想要一个不在同一网络中的朋友连接到我的计算机 以便 NodeJS 可以响应我朋友的请求 但我不知道 我必须在哪个IP和端口上监听 我也不知道 我必须给我的朋友哪个I
  • 这种文件锁定方法可以接受吗?

    我们有 10 个 Linux 机器 每周必须运行 100 个不同的任务 这些计算机主要在我们晚上在家时执行这些任务 我的一位同事正在开发一个项目 通过使用 Python 自动启动任务来优化运行时间 他的程序将读取任务列表 抓取一个打开的任务
  • UDP打洞

    我有一些关于 UDP 打洞的问题 基于维基百科http en wikipedia org wiki UDP hole punching http en wikipedia org wiki UDP hole punching 1 要在两方
  • 无法使用专用终结点将 Azure Function 与 Azure SQL 连接

    我创建了一个 SQL Server 然后使用私有 IP 创建了与我的 TESTVNET SUBNET1 的私有链接10 1 1 4 我现在已禁用 SQL 服务器的公共访问 I have an Azure function running o
  • 在 Linux 上使用命令行 PHP 检查互联网连接

    我在 Linux 上使用命令行 PHP 来打开蓝牙拨号连接 并且我需要一种快速的方法来检查互联网连接是否处于活动状态 嗯 不一定要脏 但要快 使用exec运行外部命令不是问题 我正在考虑 ping 一些稳定的服务器 例如谷歌 但我想知道是否
  • 如何用python从客户端向服务器发送消息

    我正在阅读带有客户端和服务器的 Python 2 7 10 中的两个程序 如何修改这些程序以便从客户端向服务器发送消息 服务器 py usr bin python This is server py file import socket I

随机推荐

  • 如何在 Ubuntu 18.04 上设置 OpenVPN 服务器

    无论您是想在连接不可信的公共 Wi Fi 网络时安全可靠地访问互联网 绕过地理限制内容还是允许您的同事在远程工作时安全地连接到您的公司网络 使用 VPN 都是最佳解决方案 VPN 允许您连接到远程 VPN 服务器 使您的连接加密且安全 并通
  • Android布局-LinearLayout、RelativeLayout

    在本教程中 我们将概述 Android 布局 我们还将探索一些可用于组织屏幕内容的特定布局控件 即 Android LinearLayout 和 AndroidrelativeLayout 安卓布局 用户界面的基本构建块是View从 Vie
  • Python 文件操作 - 使用 Python 读取和写入文件

    在本教程中 我们将研究 Python 中的不同文件操作 我们将介绍如何使用 Python 读取文件 写入文件 删除文件等等 所以 事不宜迟 让我们开始吧 在 Python 中处理文件 在之前的教程中 我们使用了控制台接受输入 现在 我们将使
  • 如何在 JavaScript 中编写条件语句

    介绍 在编程中 很多时候您会希望根据用户输入或其他因素运行不同的代码块 例如 如果每个字段都正确填写 您可能希望提交表单 但如果缺少某些必填字段 您可能希望阻止该表单提交 为了完成这样的任务 我们有条件语句 它们是所有编程语言的组成部分 条
  • 如何在 CentOS 7 上使用 Apache 作为带有 mod_proxy 的反向代理

    介绍 A 反向代理是一种代理服务器 它接受 HTTP S 请求并将其透明地分发到一个或多个后端服务器 反向代理非常有用 因为许多现代 Web 应用程序使用后端应用程序服务器处理传入的 HTTP 请求 这些服务器并不意味着用户可以直接访问 并
  • 如何在 Ubuntu 16.04 上安装和配置 Elasticsearch

    介绍 弹性搜索是一个实时分布式搜索和分析数据的平台 它的流行是由于它的易用性 强大的功能和可扩展性 Elasticsearch 支持 RESTful 操作 这意味着您可以将 HTTP 方法 GET POST PUT DELETE 等 与 H
  • 如何在 CentOS 7 上使用 Let's Encrypt 保护 Apache

    介绍 让我们加密是一个证书颁发机构 CA 为以下用户提供免费证书传输层安全 TLS 加密 从而在 Web 服务器上启用加密的 HTTPS 它通过提供可自动执行大部分步骤的软件客户端 简化了证书的创建 验证 签名 安装和续订过程 Certbo
  • 如何在 Ubuntu 12.04 LTS(精确穿山甲)上安装 nginx

    Status 已弃用 本文介绍不再受支持的 Ubuntu 版本 如果您当前运行的服务器运行 Ubuntu 12 04 我们强烈建议您升级或迁移到受支持的 Ubuntu 版本 升级到Ubuntu 14 04 从 Ubuntu 14 04 升级
  • R 中的 head() 和 tail() 函数 - 详细参考

    The R 中的 head 和 tail 函数通常用于读取数据集的前 n 行和后 n 行 您可能是一名在职专业人员 程序员或新手 但有时您需要阅读大型数据集并对其进行分析 消化一个拥有 20 多列甚至更多列 数千行的庞大数据集确实很困难 本
  • NoSQL 数据库管理系统和模型的比较

    介绍 当大多数人想到数据库时 他们通常会想到传统的关系数据库模型 其中涉及由行和列组成的表 虽然关系数据库管理系统仍然处理互联网上的大部分数据 但近年来 随着开发人员寻求解决关系模型局限性的方法 替代数据模型变得更加普遍 这些非关系数据库模
  • 理解 JavaScript 中的类

    介绍 JavaScript 是一种基于原型的语言 JavaScript 中的每个对象都有一个隐藏的内部属性 称为 Prototype 可用于扩展对象属性和方法 您可以在我们的文章中阅读有关原型的更多信息了解 JavaScript 中的原型和
  • 如何在角度测试中使用 Spies

    介绍 茉莉花间谍用于跟踪或存根函数或方法 间谍是一种检查函数是否被调用或提供自定义返回值的方法 我们可以使用间谍来测试依赖于服务的组件 并避免实际调用服务的方法来获取值 这有助于使我们的单元测试专注于测试组件本身的内部而不是其依赖项 在本文
  • Java 棘手面试问题

    不久前我写过一篇文章前 50 个 Java 编程问题 我们的读者非常喜欢它 所以今天我们将研究一些 Java 面试中棘手的问题 Java 棘手面试问题 这些都是编程问题 但除非您对 Java 有深入的了解 否则很难猜测输出并解释它 1 Nu
  • 了解 JavaScript 中的原型和继承

    介绍 JavaScript 是一个基于原型的语言 这意味着对象属性和方法可以通过具有克隆和扩展能力的通用对象来共享 这称为原型继承 与类继承不同 在流行的面向对象编程语言中 JavaScript 相对独特 因为 PHP Python 和 J
  • 如何在 Python 3 中使用列表方法

    介绍 Python 3 有许多内置数据结构 包括列表 数据结构为我们提供了一种组织和存储数据的方法 我们可以使用内置方法来检索或操作该数据 为了充分利用本教程 您应该熟悉列表数据类型 其语法及其索引方式 您可以通过阅读教程来查看列表理解 P
  • Mockito 教程

    Mockito 是一个基于 java 的模拟框架 与其他测试框架结合使用 例如JUnit and TestNG 它内部使用Java反射API 并允许创建服务对象 模拟对象返回虚拟数据并避免外部依赖 它通过模拟外部依赖项并将模拟应用到被测代码
  • Linux 中的存储术语和概念简介

    介绍 Linux 拥有强大的系统和工具来管理硬件设备 包括存储驱动器 在本文中 我们将从高层次上介绍 Linux 如何表示这些设备以及如何将原始存储转化为服务器上的可用空间 什么是块存储 块存储是 Linux 内核中块设备的另一个名称 A块
  • JPA EntityManager - Hibernate EntityManager

    JPA EntityManager 是 Java Persistence API 的核心 休眠是使用最广泛的 JPA 实现 JPA实体管理器 程序最重要的方面之一是与数据库的连接 数据库连接和与数据库的事务被认为是最昂贵的事务 ORM 在这
  • Apache Spark 示例:Java 中的字数统计程序

    阿帕奇火花 Apache Spark 是一个开源数据处理框架 可以在分布式环境中对大数据执行分析操作 这是加州大学伯克利分校的一个学术项目 最初由加州大学伯克利分校 AMPLab 的 Matei Zaharia 于 2009 年启动 Apa
  • 如何配置 NTP 以在 Ubuntu 16.04 上的 NTP 池项目中使用

    介绍 准确的计时对于几乎所有服务或软件都至关重要 电子邮件 记录器 事件系统和调度程序 用户身份验证机制以及在分布式平台上运行的服务都需要准确的时间戳来按时间顺序记录事件 这些服务使用网络时间协议 NTP 将系统时钟与可信的外部源同步 该源