API(八)cosocket常用SDK

一   同步且非阻塞的底层SDK:cosocket

说明: 本'篇章'只是对'cosocket'常用话API的汇总,并'没有'实际案例加以'辅证'

场景: 许多'单机版'的中间件都是基于'cosocket'做的二次开发

OpenResty 的核心和精髓 cosocket

①  coscoket常用的指令

个人建议: '初始'的时候可以先'不调整',先使用'默认值',后续再'调优'
  • lua_socket_connect_timeout
  • lua_socket_send_timeout
  • lua_socket_send_lowat
  • lua_socket_read_timeout
  • lua_socket_buffer_size
  • lua_socket_pool_size
  • lua_socket_keepalive_timeout
  • lua_socket_log_errors

API(八)cosocket常用SDK_第1张图片

TCP cosocket  ngx.socket.tcp

  • bind
  • connect
  • setclientcert
  • sslhandshake
  • send
  • receive
  • close
  • settimeout
  • settimeouts
  • setoption
  • receiveany
  • receiveuntil
  • setkeepalive
  • getreusedtimes

API(八)cosocket常用SDK_第2张图片 

备注: patterm遇到'什么情况'关闭连接

API(八)cosocket常用SDK_第3张图片 

API(八)cosocket常用SDK_第4张图片 

③  connect

'前置': tcpsock = ngx.socket.tcp()

API(八)cosocket常用SDK_第5张图片 

案例1: '域名'形式

API(八)cosocket常用SDK_第6张图片 

案例2: 'unix socket'

API(八)cosocket常用SDK_第7张图片

案例3:  settimeout method 比'lua_socket_connect_timeout' directive '优先级'高

API(八)cosocket常用SDK_第8张图片

最后: '可选 table'解读  --> '了解即可'

API(八)cosocket常用SDK_第9张图片

Nginx TCP backlog 分析优化和性能相关经验汇总  

Nginx 压测方法论和性能指标

Nginx 优化中在 Nginx 侧 和 Linux 系统侧必须要调整优化的参数详细和 最佳推荐配置

upstream 的 max_fails 和 fail_timeout 指标和实战经验

④  非阻塞调用

API(八)cosocket常用SDK_第10张图片

API(八)cosocket常用SDK_第11张图片

遗留: 通过'memecached.lua'来学习'cosocket'

路径: /usr/local/openresty/lualib/resty/memcached.lua

⑤   ngx.req.socket

说明: 获取'请求'的tcp连接,将tcp连接'包装'成一个cosocket对象

API(八)cosocket常用SDK_第12张图片

API(八)cosocket常用SDK_第13张图片

⑥  关于ssl握手

说明: 后续深入理解'tsl/ssl'再回头探究

API(八)cosocket常用SDK_第14张图片

⑦  UDP cosocket   ngx.socket.udp

API(八)cosocket常用SDK_第15张图片

遗留: 操作系统的socket'缓冲区'理解

你可能感兴趣的:(Openresty,linux,cosocket)