🗒️秒杀系统时间配置、Nginx查看服务器系统时间

type
status
slug
date
tags
summary
category
password
icon
 
秒杀系统时间配置、Nginx查看服务器系统时间

时间配置

在秒杀活动中,页面往往需要显示秒杀倒计时。倒计时未结束时,按钮无法点击。如此,就会涉及到倒计时时钟的统一问题。倒计时的时钟绝对不能依赖于客户端,因为当用户的设备时钟不准确或用户处于非当前时钟时,那么倒计时就会出错。所以,倒计时的时间需要服务端统一返回,客户端根据服务端的时间进行倒计时数秒,并根据服务端的状态控制按钮。对于服务端如何提供统一的时间,有不同的方案。讲究点的可以提供统一的时间接口,这个时间是绝对准确的,不会依赖于服务器主机。当然,不讲究的可以使用下面这种方式,直接在返回秒杀品详情数据的时候返回时间和状态。在很多组织中,对于分布式的服务器都会进行统一的时间管理,不允许出现服务器之间的时钟差异。

ECS阿里云

一般公司运维会同步、校准各服务器时间,如果不可靠可以找其他替代方案,阿里云有个基于nginx的时间接口,支持百万级QPS(可能是centos默认做了NTP同步,直接nginx配置获取本地时间即可)。
阿里云提供了内网和公网NTP服务器,用于同步各网络中ECS实例的本地时间。内网和公网NTP服务器NTP是用于同步网络中计算机时间的协议,全称为网络时间协议(Network Time Protocol)。时区和时间一致性对于云服务器ECS非常重要,有时会直接影响到任务执行的结果。例如,您在更新数据库或者分析日志时,时间顺序对结果有很大影响。为避免在ECS实例上运行业务时出现逻辑混乱和网络请求错误等问题,您需要统一相关ECS实例的时区设置。另外,您还可以通过NTP服务同步各网络中ECS实例的本地时间。云服务器ECS为您提供了高精度的时间参考NTP服务器,其中ntp.cloud.aliyuncs.com服务器提供分布式的一级时钟源,适用于金融、通讯、科研和天文等以时间精度核心的生产行业。
Chrony为阿里云官方和社区推荐配置的时钟同步服务,相较于NTP有更高的时钟稳定性与更小的时间误差。当前阿里云ECS实例中,CentOS 7及以上镜像版本已默认配置Chrony服务,您无需额外配置即可正常使用。

配置

通过Nginx配置文件添加一个location,返回服务器的时间。例如:
通过Nginx模块ngx_http_lua_module,使用lua脚本获取服务器的时间。例如:
通过Linux命令date查看系统时间。例如:
  • Nginx单机百万QPS环境搭建需要注意以下几点:
    • 关闭多余的服务和进程,释放内存和CPU资源。
    • 调整Linux内核参数,优化网络连接和文件描述符等。
    • 调整Nginx配置参数,优化worker进程数、连接数、缓冲区大小等。
    • 使用wrk或ab等工具进行压力测试和性能分析。

性能:

简单查询,nginx调整后应该可以达到百万qps

Nginx单机百万QPS

  • nginx单机百万qps的硬件配置没有一个固定的标准,因为不同的应用场景和请求类型会影响服务器的性能和资源消耗。
  • 一般来说,要达到nginx单机百万qps的水平,需要具备以下条件:
    • 服务器的CPU核数足够多,至少16核以上。
    • 服务器的内存足够大,至少64G以上。
    • 服务器的网络带宽足够高,至少10Gbps以上。
    • 服务器的磁盘性能足够好,最好使用SSD或者RAID。
  • 另外,除了硬件配置之外,还需要对Linux内核参数和Nginx配置参数进行优化调整,以提高网络连接和文件描述符等资源的利用率。

参考

上一篇
先ORDER后JOIN引发乱序,附解决方法
下一篇
二级缓存版本号设计
Loading...
文章列表
王小扬博客
Git
AI
产品
film
AI Code
Java
其他
计算机网络
DB
云原生
Node
Docker
操作系统
Elasticsearch
Apollo
Nestjs
Think
大前端
PHP
软件开发
设计
生活技巧
CI
缓存