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

做网站用不用thinkphp枸橼酸西地那非片是什么

做网站用不用thinkphp,枸橼酸西地那非片是什么,外国网站在内地做seo,网站建设用到的工具今天晚上和小小一起学习,上个晚自习。 已经是reuseport骨灰级玩家了,所以简单写。 最开始,Linux协议栈并没有完全兼容BSD的reuseport语义,也就是说,Linux 3.9之前,所谓的reuseport仅仅有socket热备份功能&…

今天晚上和小小一起学习,上个晚自习。


已经是reuseport骨灰级玩家了,所以简单写。

最开始,Linux协议栈并没有完全兼容BSD的reuseport语义,也就是说,Linux 3.9之前,所谓的reuseport仅仅有socket热备份功能,没有socket负载均衡功能,但是很快在3.9内核之后,Linux协议栈的reuseport功能便完善了:

  1. Active-Backup
  2. Active-Active

最开始的 Active-Active 实现非常Low,自己看代码就知道了,必须遍历所有的socket,计算hash,才能选出工作socket,如果系统的Listener(TCP的,或者UDP的,比如DNS)非常多,那么socket lookup将会成为热点,徒耗CPU。

而后,在Linux 4.6,事情起了变化,改成了取模算法,详见:
https://blog.csdn.net/dog250/article/details/80458669

增加了eBPF的支持,看起来很棒,但是好用吗?不一定。

比如,我想实现一致性哈希,Linux 4.6版本的reuseport调用eBPF很难吧。即便实现一个最简单的一致性哈希,为了简洁,我也首选kpatch这类hotfix方案,而不是去写一个eBPF程序。以下是我的一致性哈希的代码:
https://blog.csdn.net/dog250/article/details/89268404
然而,如何用一种更加优雅的方案去促成这件事呢?

等吧。


终于,在eBPF的大潮下,我们迎来了 BPF_PROG_TYPE_SK_REUSEPORT ,这是又一个新增的eBPF的HOOK点,当reuseport逻辑选择socket的时候,该类型的eBPF程序被调用,最终的效果是:

  • 给定一个数据包skb,该HOOK点的eBPF程序会为该skb选择一个处理它的socket。

先花一两分钟浏览下面的链接:
https://lwn.net/Articles/762101/
https://github.molgen.mpg.de/donald/linux/commit/8217ca653ec601246832d562207bc24bdf652d2f
它们交代了这个eBPF的HOOK点的来龙去脉。

reuseport这个HOOK点的eBPF程序依托两层嵌套的map:
在这里插入图片描述

首先,数据包根据元数据map到一个内层的reuseport map,该内层的map以数据包的内容为key,map到特定的socket。

有点意思,不是吗?

若要写代码,也不难,我这里没时间搞了,小小已经睡着了,我也要睡了,不过还是给出一个未完成的demo:

struct {__uint(type, BPF_MAP_TYPE_ARRAY_OF_MAPS);__uint(max_entries, 1);__uint(key_size, sizeof(__u32));__uint(value_size, sizeof(__u32));
} outer_map SEC(".maps");struct {__uint(type, BPF_MAP_TYPE_ARRAY);__uint(max_entries, NR_RESULTS);__type(key, __u32);__type(value, __u32);
} result_map SEC(".maps");SEC("select_by_skb_data")
int _select_by_skb_data(struct sk_reuseport_md *reuse_md)
{__u32  index = 0, flags = 0, dummy = 0, key = 0;void *data, *data_end;void *reuseport_array;enum result result;struct udphdr *uh;int err;data = reuse_md->data;data_end = reuse_md->data_end;if (reuse_md->eth_protocol != bpf_htons(ETH_P_IP))return SK_PASS;if (reuse_md->ip_protocol != IPPROTO_UDP)return SK_PASS;uh = data;if (uh + 1 > data_end)return SK_PASS;// 仅仅一个reuseport组而已reuseport_array = bpf_map_lookup_elem(&outer_map, &dummy);if (!reuseport_array)return SK_DROP;// ... key的获取过程,略!// key计算自数据包内容err = bpf_sk_select_reuseport(reuse_md, reuseport_array, &key, flags);if (err)return SK_DROP;return SK_PASS;
}char _license[] SEC("license") = "GPL";

如果想知道更加详细的信息,请自行debug内核源码树的下面的文件:

linux-source-5.3.0/tools/testing/selftests/bpf/progs/test_select_reuseport_kern.c
linux-source-5.3.0/tools/testing/selftests/bpf/test_select_reuseport.c

自诩reuseport,Netfilter/iptables,eBPF/XDP骨灰级玩家,欢迎志同道合者周末一起玩耍,然而也有我不会,不擅长的,比如DPDK,FPGA,Golang,数据库等,等等等等。


浙江温州皮鞋湿,下雨进水不会胖!

http://www.lbrq.cn/news/2642761.html

相关文章:

  • 青年旅舍网站开发背景及意义活动策划公司
  • 制作网页整体规划方案九江seo公司
  • 黄浦专业做网站制作一个网站大概需要多少钱
  • 营销型网站建设 上海百度推广软件
  • 国内网站制作欣赏创建自己的网页
  • 网站制作西安企业网站制作奶茶店推广软文500字
  • 建设玩外汇平台网站百度竞价怎么收费
  • 网站建设时间计划图系列推广软文范例
  • frontpage导入网站seo网站营销推广
  • 怎么做时时彩彩票网站百度大搜推广
  • 读经典做临床报名网站搭建一个网站需要多少钱?
  • 山西第二波疫情最新消息网站seo搜索引擎的原理是什么
  • wordpress文章首页爱站seo查询
  • 垂直类门户网站宁波seo在线优化公司
  • 最新企业网站北京官网seo
  • 企业网络信息安全长春做网站公司长春seo公司
  • 网站设计结构图用什么做app地推网
  • 做推广那个网站比较靠谱seoul是哪个国家
  • 建设工程合同备案网站企拓客软件怎么样
  • 自建b2c网站网站制作流程是什么
  • 纯静态网站 后台腾讯企点客服
  • 阿克苏网站建设武汉网络推广有哪些公司
  • 系统软件开发流程电脑优化是什么意思
  • 湖南网站建站系统哪家好网站google搜索优化
  • 58同城推广网站怎么做百度知道登录
  • wordpress密码无法重置密码错误河南做网站优化
  • 教育机构网站代码网站怎么收录到百度
  • 静态网站谷歌推广哪家公司好
  • 常用网站开发工具有哪些济南网站建设制作
  • 做网站 发现对方传销微信广告投放推广平台
  • Android MediaMetadataRetriever取视频封面,Kotlin(1)
  • 客服Agent革命:智能客服系统的技术实现与效果评估
  • 【n8n教程笔记——工作流Workflow】文本课程(第二阶段)——5 自动化业务工作流——0 用例 (Use case)
  • PromptPilot打造高效AI提示词
  • Selenium + Python + Pytest + Yaml + POM
  • 第七篇:动画基础:requestAnimationFrame循环