当前位置: 首页 > news >正文

dw做的网站怎么百度优化怎么做

dw做的网站怎么,百度优化怎么做,做deal网站,百度网站怎么做信息PgSQL技术内幕 - 客户端psql与服务端连接与交互机制 简单来说,PgSQL的psql客户端向服务端发起连接请求,服务端接收到请求后,fork出一个子进程,之后由该子进程和客户端进行交互,处理客户端的SQL等,并将结果返…

PgSQL技术内幕 - 客户端psql与服务端连接与交互机制

简单来说,PgSQL的psql客户端向服务端发起连接请求,服务端接收到请求后,fork出一个子进程,之后由该子进程和客户端进行交互,处理客户端的SQL等,并将结果返回给客户端。那么,他是如何做到客户端和服务端子进程进行交互呢?服务端怎么做到和多个客户端交互呢?

1、客户端如何连接

psql客户端连接及发送SQL命令过程如下图所示:

fb85abfa1c737ffb5e4e8ed7824efeea.png

1)通过parse_psql_options函数解析出psql连接时指定的端口号、用户名、database名等

2)然后将这些参数以keywors[]和values[]数组保存,并作为入参带入PQconnectdbParams函数连接服务端

(1)PQconnectdbParams连接主要由PQconnectPoll完成,可以看到它仅通过socket函数创建套接字后,就直接调用connect连接服务端。由于没有通过bind函数绑定一个端口,所以在客户端会自动分配一个随机端口。

3)连接成功后,后面在MainLoop函数中接收psql端的输入,接收到命令后通过SendQuery函数将其在上面的套接字上将其发送给服务端。

举例:在windows版本上通过psql连接postgres后端口情况:

504c9ff0e011ee3da5266c266514d150.png

psql的进程ID为14856:

62a0c6621f691af5a015f9ee8bf05c04.png

通过netstat命令可以看到客户端随机分配了端口53761。服务端10900为postgres主进程,他绑定在5432端口上:

3ded34d3b9ec7edd69e42998f786eb7c.png

2、服务端如何构建连接

52b36d006350d57548199cce7c0f5a27.png

1)Postgres进程启动的时候就会绑定配置项port设置的端口,由函数StreamServerPort函数完成。上图所示,StreamServerPort完成socket、bind、listen的操作。

2)然后,进入ServerLoop函数中,通过select等待客户发来连接请求。一旦接收到后,就通过ConnCreate函数调用accept与客户端构建连接,返回对应的socket。

3)接着,通过BackendStartup函数调用fork_process函数fork出子进程,子进程会继承父进程上一步构建好连接的socket。

4)子进程不使用监听socket,所以需要将从父进程继承而来的监听socket关闭掉。

5)子进程进入BackendRun->PostgresMain中,初始化一系列内容,并通过recv函数在2)中的socket上接收客户端发来的命令,然后判断命令类型,比如简单查询,就会exec_simple_query去执行

6)父进程由于不需要执行客户端命令,所以fork出子进程后,通过StreamClose将2)中的socket关闭掉,这样就做到了在主进程中不接收客户端命令。

http://www.dinnco.com/news/59688.html

相关文章:

  • 浦东做网站的公司今天的国内新闻
  • jsp做的网站如何查看网站推广渠道
  • 今日国际新闻最新头条10条台州seo网站排名优化
  • 重庆网站建设吧ios aso优化工具
  • 西宁好的网站建设免费个人网站服务器
  • 表白网页在线生成网站源码百度客服24小时人工电话
  • 企业网站建设费用 珠海湖北seo服务
  • 北京建设高端网站的百度网盘下载安装
  • 网站建设中iis小广告
  • 建筑网站资料百度快速收录权限域名
  • 一个网站的制作特点关键词seo是什么
  • 深圳网站建设叶林什么软件可以发布推广信息
  • 做机械出口用哪个网站好建站为应用技术
  • 书画院网站模板关键词的选取原则有
  • 巩义公司做网站中国十大网站有哪些
  • 网站开发公司网站模板宣传网站怎么做
  • 上海平台网站建设企业嘉峪关seo
  • 常见的办公网网站开发如何在百度发布广告信息
  • 网站 信用卡支付接口淘宝推广费用多少钱一天
  • 做网站放博彩广告手机百度搜索app
  • 沙井网站制作联系电话搜索引擎优化案例
  • 做网站制作外包google网页版登录入口
  • 在微信上做彩票网站全网络品牌推广
  • 社交电商app开发关键词优化公司哪家推广
  • 网易邮箱企业邮箱密码忘了谷歌seo工具
  • 专业做简历的网站深圳关键词优化报价
  • 龙岗网站建设工程有什么软件可以推广
  • 一般做自己的网站需要什么天津seo推广服务
  • 做百度推广需要自己有个网站吗国产十大erp软件
  • ui个人作品集网站分销平台