OpenResty cosocket介绍

cosocket是什么

“cosocket” objects官网介绍
cosocket 是各种 lua-resty-* 非阻塞库的基础

cosocket 是 OpenResty 中的专有名词,把协程和网络套接字的英文拼在一起形成的,即 cosocket = coroutine + socket

cosocket 支持 TCP、UDP 和 Unix Domain Socket(又叫IPC,进程间通信)
在这里插入图片描述

Lua 的协程会与 NGINX 的事件机制相互配合。如果 Lua 代码中出现类似查询 MySQL 数据库这样的 I/O 操作,就会先调用 Lua 协程的 yield 把自己挂起,然后在 NGINX 中注册回调;在 I/O 操作完成(也可能是超时或者出错)后,再由 NGINX 回调 resume 来唤醒 Lua 协程。这样就完成了 Lua 协程和 NGINX 事件驱动的配合,避免在 Lua 代码中写回调。

简单说就是用户的 Lua 脚本遇到网络 I/O 时,会交出控制权(yield),把网络事件注册到 Nginx 监听列表中,并把权限交给 Nginx;当有 Nginx 事件达到触发条件时

猜你喜欢

转载自blog.csdn.net/qq_33873431/article/details/113387608
今日推荐