Configuración de la hora del sistema Seckill, Nginx ver la hora del sistema del servidor

configuración de tiempo

En la actividad de seckill, la página a menudo necesita mostrar la cuenta regresiva para el seckill. Cuando la cuenta regresiva no ha terminado, no se puede hacer clic en el botón. De esta manera, se verá envuelto el problema de unificar el reloj de cuenta regresiva. El reloj para la cuenta regresiva nunca debe depender del cliente, ya que la cuenta regresiva fallará cuando el reloj del dispositivo del usuario sea inexacto o el usuario tenga un reloj diferente al actual. Por lo tanto, el servidor debe devolver el tiempo de cuenta regresiva de manera uniforme, y el cliente cuenta regresivamente durante unos segundos de acuerdo con el tiempo del servidor y controla el botón de acuerdo con el estado del servidor. Existen diferentes soluciones sobre cómo el servidor proporciona un tiempo unificado. Si presta atención, puede proporcionar una interfaz de tiempo unificado. Este tiempo es absolutamente preciso y no dependerá del host del servidor. Por supuesto, si no le presta atención, puede usar el siguiente método para devolver la hora y el estado directamente al devolver los datos de detalles del producto de venta flash. En muchas organizaciones, la gestión unificada del tiempo se realiza en servidores distribuidos y no se permiten diferencias de reloj entre servidores.

Nube de Alibaba de ECS

Generalmente, la operación y el mantenimiento de la empresa sincronizarán y calibrarán el tiempo de cada servidor. Si no es confiable, puede encontrar otras alternativas. Alibaba Cloud tiene una interfaz de tiempo basada en nginx que admite QPS de nivel millón (tal vez centos tiene sincronización NTP por predeterminado, y puede obtenerlo directamente desde la configuración de nginx (hora local).

Alibaba Cloud proporciona servidores NTP públicos e intranet para sincronizar la hora local de las instancias de ECS en cada red. Servidores NTP de intranet y red pública NTP es un protocolo que se utiliza para sincronizar la hora de las computadoras en la red, y su nombre completo es Network Time Protocol (Protocolo de tiempo de red). La zona horaria y la coherencia horaria son muy importantes para el servidor en la nube ECS y, a veces, afectan directamente los resultados de la ejecución de tareas. Por ejemplo, cuando actualiza una base de datos o analiza registros, el orden del tiempo puede tener un gran impacto en los resultados. Para evitar la confusión lógica y los errores de solicitud de red al ejecutar servicios en instancias de ECS, debe unificar la configuración de la zona horaria de las instancias de ECS relacionadas. Además, también puede usar el servicio NTP para sincronizar la hora local de las instancias de ECS en cada red. El servidor en la nube ECS le proporciona servidores NTP de referencia de tiempo de alta precisión, entre los cuales el servidor ntp.cloud.aliyuncs.com proporciona una fuente de reloj primaria distribuida, que es adecuada para industrias de producción con precisión de tiempo como núcleo, como finanzas, comunicaciones, investigación científica y astronomía.

Chrony es un servicio de sincronización de reloj recomendado por Alibaba Cloud y la comunidad. En comparación con NTP, Chrony tiene una mayor estabilidad de reloj y un error de tiempo menor. En la instancia actual de Alibaba Cloud ECS, las versiones de imagen de CentOS 7 y superiores se han configurado con el servicio Chrony de forma predeterminada, y puede usarlo normalmente sin configuración adicional.

configuración

Agregue una ubicación a través del archivo de configuración de Nginx y devuelva la hora del servidor. Por ejemplo:

location /time {
    default_type text/plain;
    return 200 "$time_local\n";
}

A través del módulo Nginx ngx_http_lua_module, use el script lua para obtener la hora del servidor. Por ejemplo:

location /time {
    default_type text/plain;
    content_by_lua '
        local time = os.date("%Y-%m-%d %H:%M:%S")
        ngx.say(time)
    ';
}

Use la fecha del comando de Linux para verificar la hora del sistema. Por ejemplo:

date
  • Se debe prestar atención a los siguientes puntos al crear un entorno Nginx de un millón de QPS de una sola máquina:
    • Cierre servicios y procesos redundantes, libere memoria y recursos de CPU.
    • Ajuste los parámetros del kernel de Linux, optimice las conexiones de red y los descriptores de archivos, etc.
    • Ajuste los parámetros de configuración de Nginx, optimice la cantidad de procesos de trabajo, la cantidad de conexiones, el tamaño del búfer, etc.
    • Utilice herramientas como wrk o ab para realizar pruebas de estrés y análisis de rendimiento.

actuación:

Consulta simple, nginx debería poder alcanzar un millón de qps después del ajuste

Nginx independiente millones de QPS

  • No existe un estándar fijo para la configuración de hardware de un millón de qps de una sola máquina nginx, porque los diferentes escenarios de aplicación y tipos de solicitudes afectarán el rendimiento y el consumo de recursos del servidor.
  • En términos generales, para alcanzar el nivel de un millón de qps de nginx independiente, se deben cumplir las siguientes condiciones:
    • El servidor tiene suficientes núcleos de CPU, al menos 16 núcleos o más.
    • La memoria del servidor es lo suficientemente grande, al menos 64G o más.
    • El ancho de banda de la red del servidor es lo suficientemente alto, al menos 10 Gbps o más.
    • El rendimiento del disco del servidor es lo suficientemente bueno, es mejor usar SSD o RAID.
  • Además de la configuración del hardware, también es necesario optimizar y ajustar los parámetros del kernel de Linux y los parámetros de configuración de Nginx para mejorar la utilización de recursos como las conexiones de red y los descriptores de archivos.

referencia

ECS hora local

Diseño del sistema de picos

Supongo que te gusta

Origin blog.csdn.net/qq_39517116/article/details/129649869
Recomendado
Clasificación