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

校园网站建设平台国内网站服务器

校园网站建设平台,国内网站服务器,厦门建站价格,企业网站建立教程近期参与的项目中#xff0c;依赖DNS服务器来解析外部的业务集群#xff0c;遇到了一连串的问题。 远端的业务集群基于HTTP/HTTPS协议#xff0c;提供业务服务#xff0c;集群中包含了多个业务节点#xff0c;当前方案中在DNS服务器上配置域名#xff0c;指向业务集群中的…近期参与的项目中依赖DNS服务器来解析外部的业务集群遇到了一连串的问题。 远端的业务集群基于HTTP/HTTPS协议提供业务服务集群中包含了多个业务节点当前方案中在DNS服务器上配置域名指向业务集群中的多个业务节点。 DNS服务器由客户提供。 产品的特性代码中使用libcurl来访问业务集群提供的HTTP/HTTPS的服务。 在本地开发、验证过程中上述组网方式没有什么问题一切都很美好。 结果进入大规模测试阶段时暴露了一个严重的问题由于产品的并发度比较高特性开启后在短时间内会触发大量的业务请求。这导致如下后果 libcurl代码发起了大量的域名解析请求DNS服务器的并发能力不足只能选择性回复部分报文。大量请求由于建立链接时因域名解析失败而失败。由于产品内建了重试逻辑于是引发了更多的请求。于是DNS不堪重负拒绝了更多的域名解析请求。结果其它依赖DNS解析域名的业务同样受到了波及。 测试团队反馈了上述问题之后开发团队做如下几件事情 在现有的重试逻辑中增加了休眠时间使用指数退减的方式逐次增加重试之间的间隔时间避免大量请求扎堆。经过实测本策略缓解了问题但并没有解决问题。修改libcurl的使用方法启用了DNS缓存特性并增大了缓存的失效时间。经过实测本策略的效果不明确。修改产品的业务代码降低并发度。本策略实施后有明显的效果失败的请求次数明显下降考虑到产品的代码中存在多个特性使用libcurl访问远端集群的服务本问题依然存在。 上述策略都是小打小闹并没有从根本上解决问题。 开发团队内部组织讨论重新讨论得出如下结论 降低并发度不可行。 一方面可能导致当前特性的性能规格不达标。另外前期多个特性均在使用libcurl各个业务都按照相同的策略去降低并发度修改、验证的工作量巨大管理团队无法接受开发、测试团队同样觉得疲惫难以为继。DNS服务器的并发能力不可预期。 交付场景下DNS服务器由客户提供其并发能力不可预期短时间内也不可能提升性能假如由于本产品的原因占满了客户DNS服务器的处理能力可能会阻塞客户的其它业务因此仍然需要直面问题。 开发团队经过讨论有如下决策 收编现有业务代码中libcurl的使用对各特性提供统一的HTTP协议客户端。在上述客户端的代码中增加域名解析结果的缓存。 这个方案工作量不大很快通过了测试团队组织的功能验证、性能验证。 本来觉得未来一片光明但测试团队在执行故障注入的用例时发现了新的问题域名解析操作执行时间过久单次调用居然要20秒才能返回。 这个新问题和前述方案中域名解析的实现相关换句话说这是域名解析的C函数的坑。 目前已知的用于完成域名解析的C函数如下 gethostbyname线程不安全排除。gethostbyname_r是gethostbyname的线程安全版本当前在用。 从实际测试的结果来看发现gethostbyname_r存在一个严重的问题函数的参数中不能指定超时值导致耗时不可控。 查阅了大量资料之后发现耗时的问题其实和DNS域名解析的过程相关不能怪设计API的前辈不用心。 虽然不能在调用gethostbyname_r时传入超时值但无意中发现了/etc/resolv.conf。通过修改options attempts:5 timeout:6中的attempts和timeout发现在一定程度上可以缓解在DNS故障场景下调用gethostbyname_r函数耗时过长的现象。 经过一系列折腾目前的解决方案虽不完美但至少获得了产品团队的认可因此优化工作暂告一段落。 如下是处理前述问题过程中使用到的配置文件或者工具。 /etc/resolv.conf文件的内容样例如下 $ cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN # 127.0.0.53 is the systemd-resolved stub resolver. # run systemd-resolve --status to see details about the actual nameservers.nameserver 127.0.0.53 search DHCP HOST options attempts:5 timeout:6/etc/hosts文件的样例如下 $ cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 jackie-ubuntu# The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allroutersdig命令的执行输出样例如下 $ dig www.baidu.com; DiG 9.16.1-Ubuntu www.baidu.com ;; global options: cmd ;; Got answer: ;; -HEADER- opcode: QUERY, status: NOERROR, id: 56073 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;www.baidu.com. IN A;; ANSWER SECTION: www.baidu.com. 1105 IN CNAME www.a.shifen.com. www.a.shifen.com. 29 IN A 36.152.44.96 www.a.shifen.com. 29 IN A 36.152.44.95;; Query time: 4 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: 日 11月 12 11:15:58 CST 2023 ;; MSG SIZE rcvd: 101dig的trace的选项执行输出样例如下 $ dig trace www.baidu.com; DiG 9.16.1-Ubuntu trace www.baidu.com ;; global options: cmd . 2687 IN NS f.root-servers.net. . 2687 IN NS m.root-servers.net. . 2687 IN NS e.root-servers.net. . 2687 IN NS l.root-servers.net. . 2687 IN NS c.root-servers.net. . 2687 IN NS h.root-servers.net. . 2687 IN NS j.root-servers.net. . 2687 IN NS a.root-servers.net. . 2687 IN NS k.root-servers.net. . 2687 IN NS g.root-servers.net. . 2687 IN NS i.root-servers.net. . 2687 IN NS d.root-servers.net. . 2687 IN NS b.root-servers.net. ;; Received 262 bytes from 127.0.0.53#53(127.0.0.53) in 12 mscom. 172800 IN NS a.gtld-servers.net. com. 172800 IN NS b.gtld-servers.net. com. 172800 IN NS c.gtld-servers.net. com. 172800 IN NS d.gtld-servers.net. com. 172800 IN NS e.gtld-servers.net. com. 172800 IN NS f.gtld-servers.net. com. 172800 IN NS g.gtld-servers.net. com. 172800 IN NS h.gtld-servers.net. com. 172800 IN NS i.gtld-servers.net. com. 172800 IN NS j.gtld-servers.net. com. 172800 IN NS k.gtld-servers.net. com. 172800 IN NS l.gtld-servers.net. com. 172800 IN NS m.gtld-servers.net. com. 86400 IN DS 30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766 com. 86400 IN RRSIG DS 8 1 86400 20231124170000 20231111160000 46780 . rTOgKkj9DMvMzykrKDz7dsie4Xx1jwuBlZdH9ntLEikavNoZMRN7SxE iweiVanZo1q9hhrSxAn8O1ScKkRwwHTSCiSvQnZ8bzy4ToM3I832VIiR OirCK7GtufMaxNCOmD14s7Zg24qLf9CmQTid3eIBMP4Sjuq4MSIsu tgSXJS6EI1OumSojANeO9mq1khc5cxLaeOqJfRb10Vvujl73jZpaXxE9 J4/GehjpG6YR04/37geOwOSaVwx6c3PndgT0L33O/maN/Tjng2UUhHtW lOh8gIVxFYRipqdDZ1XJQKx5o4o8Oh3YN3Vd1I5rrKJhEfwecej7nyI fe5BKA ;; Received 1173 bytes from 199.7.83.42#53(l.root-servers.net) in 20 msbaidu.com. 172800 IN NS ns2.baidu.com. baidu.com. 172800 IN NS ns3.baidu.com. baidu.com. 172800 IN NS ns4.baidu.com. baidu.com. 172800 IN NS ns1.baidu.com. baidu.com. 172800 IN NS ns7.baidu.com. CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q2D6NI4I7EQH8NA30NS61O48UL8G5 NS SOA RRSIG DNSKEY NSEC3PARAM CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20231118052525 20231111041525 63246 com. HHilTlIgM2bBSkNCrfIYydeweb7FpcSd/HCPjoMq9cDoI45LnU1trxYf GtncYfSgPxd01lt7BuBdTBRjFX2kHEWQNAjqKRwj9ohk9mqvk3naenD eWVPwSEZjYdVLPjL7rXvMWq6GRZXFG2OC0oR37mS4PCPT/pWYTARo7m 66PiR/ixIP8UPkUbxjZTHFuDsRlywg8Od0OsTopTj5rw HPVV1UNKTCF9TD77I2AUR73709T975GH.com. 86400 IN NSEC3 1 1 0 - HPVVAN8CFKHHHMEIDVJHFNQEOI5G6C89 NS DS RRSIG HPVV1UNKTCF9TD77I2AUR73709T975GH.com. 86400 IN RRSIG NSEC3 8 2 86400 20231115212015 20231108201015 63246 com. jtcfLKFI33jWFyVS/iT/x73jJM7gultJQD6xHY0yl4ZWp2ktqwCrA wk8ybADERvnpDU/u9LKgBVGkT7rIDnheKGcXzKe5Lgjilu9aHWjIiyny J/kwYkBeXCqXofFrkq5QS/El4Esu4Hp7FCUAm5lRMNlGL8H9QrdqESl G4NIUZFsyhqj3Ulz0/u1QjPRm13QmKOuUh/DvWhj63Ru5g ;; Received 849 bytes from 192.48.79.30#53(j.gtld-servers.net) in 284 mswww.baidu.com. 1200 IN CNAME www.a.shifen.com. ;; Received 100 bytes from 36.155.132.78#53(ns3.baidu.com) in 8 msnslookup命令的执行输出样例如下 $ nslookup www.baidu.com Server: 127.0.0.53 Address: 127.0.0.53#53Non-authoritative answer: www.baidu.com canonical name www.a.shifen.com. Name: www.a.shifen.com Address: 36.152.44.96 Name: www.a.shifen.com Address: 36.152.44.95 Name: www.a.shifen.com Address: 2409:8c20:6:1d55:0:ff:b09c:7d77 Name: www.a.shifen.com Address: 2409:8c20:6:1135:0:ff:b027:210c相关资料 resolv.conf(5)Linux DNS 解析与配置 nslookup使用 与 /etc/resolv.conf文件的配置浅析resolv.conf常用参数Linux /etc/resolv.conf文件解析REHL7/CentOS7 中/etc/resolv.conf 详解用resolvconf配置DNS服务器dns配置文件/etc/resolv.conf中search和options ndots详解Linux /etc/resolv.conf文件说明域名解析——gethostbyname()函数及socket客户端域名解析gethostbyname()函数详解gethostbyname()、getaddrinfo()函数基本情况关于gethostbyname_r的参数及返回值gethostbyname 和 gethostbyname_r可重入的得到dns信息【UNP笔记】第十一章 名字地址转换gethostbyname_r的注意事项C gethostbyname_r函数代码示例如何在linux中使用gethostbyname_rDIG域名解析查询工具掌握 DNS 查询技巧dig 命令基本用法DNS篇之dig使用详解linux 【网络】dig查询DNS详解
http://www.dnsts.com.cn/news/157459.html

相关文章:

  • dede做购物网站北京好网站制作公司
  • 产品类网站模板wordpress转服务器
  • 浙江做网站的公司有哪些珠海移动网站建设公司排名
  • 谷歌怎么建网站营销网站建设服务平台
  • 景区智慧旅游网站建设中国服务器市场
  • 专业建设网站的公司网站加入wordpress
  • go 语言 做网站深圳建设网站和公众号
  • 桐梓县工程建设交易网站旅游网站设计论文摘要
  • 自己如何在网上做网站电脑怎么打不开建设银行网站
  • 移动营销做手机网站南京建设工程质量监督站网站
  • 受欢迎的扬中网站建设wordpress 分页显示
  • 无锡网站建设在哪里梅林 做服务器 网站
  • 网站建设 市场规模wordpress主题woocomece
  • 广东做网站公司房产信息网查不到楼盘信息
  • 网站制作公司 全贵州北京建站的
  • 江西赣州网站最好看免费观看高清大全新员工
  • 手机版网站怎么做的做玩网站怎么上传图片
  • 深圳网站建设自己人项目网络图用什么软件
  • 怎样创建网站快捷方式到桌面京东联盟网站推广位怎么做
  • 宁波市鄞州区建设局网站网站logo怎么做才清晰
  • 揭阳网站如何制作做网站需要
  • 烟台网站建设首推企汇互联见效付款wordpress 5编辑器使用
  • 网站收录量是什么意思公司logo设计免费
  • 教育培训机构网站建设阳泉软件定制网站建设
  • 网站开发最好用什么软件办公室工作绩效 网站建设
  • 做网站头视频md5 wordpress
  • 不同域名一样的网站wordpress评论互动
  • 转笔教学网站seo李守洪排名大师
  • 做招聘网站需要什么资质功能型pc端网站框架
  • 网站突然没有收录seo怎么读