V2EX - 技术 |
- 用 html、js、css 写客户端软件,除了 electron 还有哪些方案?
- 什么软件会存活一百年?
- 什么项目能同时用上 mysql/redis/nginx/es/mq/docker/k8s/rpc/protobuf/session/cookie/jwt?
- 现在安卓 8G RAM 是否足够
- 整理了一个订单全流程图,希望各位大佬提提意见
- Java 有类似于 Redis 锁的,只在本应用的锁吗?
- 不要轻易尝试阿里云 MFA ~~解绑很麻烦!
- 求教 管道环焊缝 X 射线数字图像 如何双丝测量
- 有没有知识检索系统,检索本地 PDF 内容,提供 web 服务的
- Jdbc 字符串拼接 sql 最佳实践是什么
- vue3 设置 @路径别名后, 编辑器没有提示
- Chrome 无法解析前端 url 导致网站打不开, 但是 nslookup 可以返回正确的解析信息
- 有道云笔记,本地笔记丢失。
- vue3 做响应式网站,大家用啥组件库?
- 阿里云安全问题求助
- 腾讯良心云 618 首单活动会有国内轻量 3 年的吗?
- 好兄弟自己定下的学习计划来让大家监督
- jenkins 有无插件可以创建 gitlab merge request
- Java 线程池使用 Future,任务没完成啥意思
- Tomcat HA 问题
- Visual Studio Code Python – 2022 年 5 月更新 – Black、isort 和 Jupyter Powertoys
- 请问有生成产品序列号的软件吗?
- 企查查、天眼查、爱企查这些网站的数据从哪里来的?
- PHP 编译器 BPC 新里程碑达成: 可以编译 web 应用了!
- 前端页面直接和连接到 PC 上的设备通信的方法
- 求助, android 入门后该怎么学习
- iOS 16 无法换行
- SpringBoot 服务启动的时候,不存在引用这个实现类,但是提示内省失败
- DecoHack #016 独立产品灵感周刊 - 苹果 WWDC 这周来了
- 14+还是等 14p?
- 如何升级 PHP 项目(类似 cms)?
- URL 的参数,长度最大的限制是多少?
- LocalDateTime.parse 无法解析秒跟毫秒连在一起的字符串是什么原因?
- Merbridge CNI 模式
- 怎么自建 obsidian 发布服务?
- 自己开发小程序 需要前端达到什么样的水平
- 写了一个路径管理工具,大家试试看给点评价哈
- 写了个脚本注销 Gitee 帐号
- 老哥们,有见过自然人有限公司 的外企代表处吗?这种的怎么样?
用 html、js、css 写客户端软件,除了 electron 还有哪些方案? Posted: 07 Jun 2022 01:46 PM PDT 用 html 、js 、css 写客户端软件,排除除了 electron ,还有哪些方案? 至少能调用 js 读取本地文件的内容 不能跨平台也没关系,能在 windows 或 linux 上跑起来就行,能跨平台那最好不过了。 |
Posted: 07 Jun 2022 01:32 PM PDT 这里的存活,指的是还有很多人用。 Linux 一定会,git 也许会 |
什么项目能同时用上 mysql/redis/nginx/es/mq/docker/k8s/rpc/protobuf/session/cookie/jwt? Posted: 07 Jun 2022 12:52 PM PDT 这两天面试很受打击,我很菜,工作的项目也菜,外面时髦的技术一概用不上,想换工作了,一面试,问的我全答不上来,没办法,我没用过呀。 我想做一个项目,把上面一大串全用一遍,怎么高级我怎么用,mysql 我要分库分表,读写分离,redis 我要集群部署,主从复制,nginx 我要反向代理,负载均衡,mq 我要削峰填谷,解耦分离,我还要做成微服务,docker ,k8s 全用上,什么服务发现,服务治理,全都折腾一遍,我要 rpc ,一个 add 函数我也要做成 rpc ,我要 protobuf ,无他,就是玩,session ,cookie ,jwt ,我要全用上,不然怎么知道他们的区别呢?说到区别,那我要做两个,一个用 tcp 协议,另一个用 udp 协议,一个用 http ,另一个用 https ,还有 restful api ,只用 get ,post 是不够的,还得 put ,patch ,delete 。 等我把这个项目做出来,再找工作就手到擒来了吧,做个什么项目好呢? |
Posted: 07 Jun 2022 10:10 AM PDT 如题,想了半天,还是决定给父母买安卓手机 看重荣耀 70Pro 8G 版本,但是同时也有 12G 版本。 不知道 8G 是否足够?有必要上 12G 吗 |
Posted: 07 Jun 2022 09:54 AM PDT |
Posted: 07 Jun 2022 09:43 AM PDT 想要的效果:lock(name, 30s) name 是变量,后边是自动失效时间 不知道有没有类似的成熟库 |
Posted: 07 Jun 2022 09:24 AM PDT 先说一下场景:由于自己不慎,手机掉坑里,碎屏了,没法进行屏幕操作。然后,需要解绑阿里云的 MFA 。这时,新的阿里云 APP 没有 MFA ,登录不了。 只有网页上申请解绑,(幸亏前 2 天操作过网页版,设置允许 7 天内无需 MFA 验证),也是需要 MFA 。 但是,我没有。只能走人工申诉。 填资料,还要在阿里云 APP 上照脸,进行人脸比对。。。都人脸比对通过了才能继续网页的人工解绑申诉; 这个白痴设计,都人脸比对是本人,还要什么 MFA ? 最神奇的是,这个人工申诉解绑的应该不是用于 MFA 的表单。里面有退款帐号,金额。估计是另外用途的。 还得上传资料,签字的免责。。。。等 3 天。 早知道如此,我就一直用短信验证好了。 SIM 卡坏了,到运营商营业厅换也不过个把小时的事情。 (我试过国外一家。可以 email 验证解绑 MFA 。) |
Posted: 07 Jun 2022 08:57 AM PDT |
有没有知识检索系统,检索本地 PDF 内容,提供 web 服务的 Posted: 07 Jun 2022 08:36 AM PDT |
Posted: 07 Jun 2022 08:29 AM PDT 感觉字符串拼接 sql 太麻烦了,尤其是 sql 中间还有动态参数,需要根据参数是否为空动态拼接 sql 段落,代码太丑了,可读性也很差。想问下有没有更好的拼接 sql 方式。 |
Posted: 07 Jun 2022 08:02 AM PDT 这样设置后编辑器导入的时候 @ 没有提示, 但是能正确导入 |
Chrome 无法解析前端 url 导致网站打不开, 但是 nslookup 可以返回正确的解析信息 Posted: 07 Jun 2022 06:59 AM PDT 打开无限卡检查浏览器 打开 chrome 控制台, 发现错误是 jquery 无法加载 报错是 无法解析的 url 是: https://cdnjs.tacool.com/jquery/3.5.1/jquery.min.js 查了一下 cdnjs.tacool.com 在国外各大主流公共 DNS 都没有解析(google,cf,qurad9,opendns 等) 于是在我的 adguard home 的上游 DNS 里添加了阿里的 DNS https://dns.alidns.com/dns-query 用 nslookup 和 dig 检查返回记录正常
然而 chrome 还是无法打开 试了清空缓存, 去 chrome://net-internals/#dns 清空 dns 用隐私模式打开都是同样的报错 ERR_NAME_NOT_RESOLVED 请问是哪里出了问题导致 chrome 无法正确解析 url 呢. |
Posted: 07 Jun 2022 06:10 AM PDT 真的无语,提醒用用有道云笔记的朋友们,如果修改完笔记以后点击上传云端失败,记得在自己电脑找个地方备份下,不然电脑重启,没有上传云端的笔记都会丢失,我因此丢了很多没有上传成功的笔记,不敢用了,自此跟有道云笔记说拜拜,开始去找替换方案。 |
Posted: 07 Jun 2022 05:01 AM PDT css 已选 tailwind / windicss 。UI 组件库有啥推荐的吗 |
Posted: 07 Jun 2022 04:58 AM PDT 最近一段时间阿里云总提示恶意入侵,查看后问题如下。 几乎每天执行一次,看起来应该有定时任务,有遇到的大佬知道怎么找出定时任务并清除吗? |
Posted: 07 Jun 2022 04:55 AM PDT 腾讯良心云 618 首单活动会有国内轻量 3 年的吗? 我是用来搭建企业邮箱的,要求就是长期使用,起码有个 3 年吧,一年的是便宜,恐怕后面续费就贵了. 或者有更有性价比的厂商麻烦大佬推荐一下. |
Posted: 07 Jun 2022 04:43 AM PDT 大龙猫自己立下的学习计划 |
jenkins 有无插件可以创建 gitlab merge request Posted: 07 Jun 2022 04:13 AM PDT |
Posted: 07 Jun 2022 04:03 AM PDT 线程池,核心数 10 个,我循环 2 次,等待第一次 10 个线程结束,无法立刻提交第二次的 10 个线程? 同一时刻只会有 10 个线程跑,咋回事啊,大佬指点迷津 提示的 Not completed,难道 call()方法执行完毕,不算一个任务完成吗 代码如图 报错 |
Posted: 07 Jun 2022 03:05 AM PDT 我的程序除了一个标准的后端 app 以外,还会运行一个(或多个)订阅线程 需求是这样的
我查看了一下 Haproxy 和 Tomcat 自己的 HA 功能,似乎都没有一个"切换脚本"这种东西 是不是必须用 LVS+keepalive 这种方法,或者商业的 HA 方案? |
Visual Studio Code Python – 2022 年 5 月更新 – Black、isort 和 Jupyter Powertoys Posted: 07 Jun 2022 02:57 AM PDT 我们很高兴地宣布,2022 年 5 月发布的适用于 Visual Studio Code 的 Python 和 Jupyter 扩展现已推出! 在此版本中,我们加入了三个新扩展: Black 、 isort 和 Jupyter Powertoys 。 如果您有兴趣,可以在我们的日志中查看 Python、Jupyter和 Pylance扩展的完整更新内容。 Black 正如我们曾表示的,我们的团队正在努力将我们在 Python 扩展中提供的工具支持分解为单独的扩展,以提高性能和稳定性。 我们现在有了一个新的 Black扩展,即 Python 格式化程序。 与 pylint扩展类似,这个新扩展使用语言服务器协议来提供格式支持,并且它附带最新版本的 Black——因此您不再需要将它安装在 Python 环境中。 今天您可以通过从市场上安装这个新扩展来试用它。 然后打开一个 Python 文件,右键单击编辑器并选择"Format document with ..."。 您还可以从命令面板( Ctrl + Shift + P 或 ⌘+ ⇧ + P )运行"Format document with ..."命令。 如果您有任何问题或功能请求,您可以将它们提交到 GitHub 存储库。 Isort 我们还有一个新的扩展,可以使用 isort对导入进行排序。 当您打开文件并且您的导入不遵循 isort 的标准时,它将显示错误诊断并提供代码操作来修复导入顺序。 浏览器上的 Jupyter Notebooks Jupyter扩展现在可以安装为可以与 vscode.dev一起使用的 Web 扩展。 不过功能目前受到限制,仅支持在不需要 https 的 Jupyter 服务器上运行的笔记本(.ipynb 文件)。 如果您想试验该功能,请从本地计算机启动 Jupyter: 并使用此命令连接到它: Jupyter: Specify Jupyter server for connections 。 团队将在即将发布的版本中启用许多功能,包括:
Jupyter 团队很高兴地宣布推出 Jupyter Powertoys扩展,该扩展为使用 Jupyter 笔记本提供实验性功能。 在其第一个版本中,以下功能已被原型化:
我们很乐意让您试一试,让团队知道您的想法,以便更多的用户支持该功能! 有关更多信息,请参阅 vscode-jupyter-powertoys存储库中的 README 文件。 对内核处理进行了许多更新:
我们还添加了一些小的增强功能并修复了用户请求的问题,这些功能应该可以改善您在 Visual Studio Code 中使用 Python 和 Jupyter Notebooks 的体验。 一些显著的变化包括:
我们还要特别感谢本月的贡献者: Quan Zhuo:修复从源代码构建时预构建的 ripgrep 二进制文件下载失败(https://github.com/microsoft/vscode-python/issues/19036vscode-python#19036 Dr-Irv:改进了使用 pandas 时的 IntelliSense ,这要归功于几个 pandas 存根修复(python-type-stubs#186、python-type-stubs#187、python-type-stubs#188、python-type-stubs#190) sunyinqi0508:修复文件路径包含特殊字符时的错误(vscode-python#18829) Capphosra:用更安全的方法替换 通过从 Marketplace 下载 Python扩展和 Jupyter扩展来尝试这些新的改进,或者直接从 Visual Studio Code 中的扩展视图安装它们( Ctrl + Shift + X 或 ⌘+ ⇧ + X )。 您可以在文档中了解有关 Visual Studio Code 中 Python 支持的更多信息。 如果您遇到任何问题或有建议,请在 Python VS Code GitHub页面上提出问题。 |
Posted: 07 Jun 2022 02:57 AM PDT 客户定制了一小批产品,需要加上产品序列号,因为作坊规模小,所以没有配置仓管软硬件,想问问 V 友是否有自动生成产品序列号的软件?在这里谢过了。 |
Posted: 07 Jun 2022 02:55 AM PDT 最近也想做个爬虫爬一爬企业信息,但是国家企业信息公示系统反爬好像很严重,企查查这些公司的数据是爬的吗?还是买的?如果是买的是从哪里买的呢? |
PHP 编译器 BPC 新里程碑达成: 可以编译 web 应用了! Posted: 07 Jun 2022 02:15 AM PDT 不清楚 BPC 是什么的参看这里: 开发了一年多的 PHP 编译器 BPC 初见成效,发一些测试程序给大家看看 新里程碑在过去的 3 个多月里,我们完成了 apache2 module mod_bpc 的开发,使得 bpc 可以将 php web 项目编译成动态链接库文件(.so)加载到 apache2 里,像 mod_php 那样运行. 扩展方面,我们实现了 session,spl,pdo,pdo_mysql,pdo_sqlite,filter. php 方面,我们改写了 phpunit,使之能够编译运行. mod_bpc 提供 web 访问,session 管理用户状态,pdo 连接数据库,phpunit 测试保障.到此,php web 开发的最小核心都 ready 了. php web 项目展示两年前,我写了一本电子书 《 PHPUnit in Action --- The Easy Way 》. 这本书通过一个完整的实战项目介绍了云招 OurATS 11 年来实践 PHPUnit/DbUnit 的经验. 这个实战项目是一个极简的 blog 项目,但麻雀虽小,五脏俱全,包含了用户注册 /激活 /登录 /退出 /文章的 CURD/打标签 /上传文件等功能及相应的测试方法. 这里我使用 bpc 将其编译成动态链接库,给大家展示下 bpc 编译的 web 项目是什么样子的. 该项目的 php 源码在这里: https://github.com/heguangyu5/PHPUnit-in-Action-Code/tree/bpc/ourblog 由于 php 代码最终被编译成了动态链接库,所以运行此项目不需要 php 环境. 以下假设我们在一台全新的 Ubuntu 18.04 amd64 server 上部署此项目. 第一步: 安装 apache2 和 mysql server 由于 apache 默认启用了 module mpm_event,而我们需要 mpm_prefork,所以切换下. 第二步: 创建 our_blog 数据库 第三步: 安装 bpc runtime 及扩展bpc 的 pdo_mysql 扩展基于 libmysqlclient 实现,所以需要先安装 libmysqlclient. 第四步: 安装并启用 mod_bpc 第五步: 部署 ourblog 项目 配置 配置 apache 虚拟主机 修改本机 浏览器访问 http://bpc.ourblog.me 即可. 要想进一步使用各个功能,需要点击 Sign Up 注册一个帐号,然后去数据库 mail_queue 表中找到激活链接激活帐号.然后就可以点击 Sign In 登录到后台进行文章的 CURD 操作.文件上传在 到此,一个 bpc 编译的极简的 php web 项目就运行起来了. 关于 phpunitphpunit 可以很好地保障编译后的 php 代码和 php 本身运行效果一致. 《 PHPUnit in Action --- The Easy Way 》 的读者可以下载 运行这几个程序需要 《 PHPUnit in Action --- The Easy Way 》中构建的 mysql-3307,所以如果你没有环境就不用试了. 运行效果如下: |
Posted: 07 Jun 2022 01:56 AM PDT 大致就是电脑上 USB 插上遥控器,通过遥控器直接远程控制设备,需要前端读取遥控器发出的控制信号,信号解析已经搞定,但是不知道数据怎么直接发给前端 |
Posted: 07 Jun 2022 01:51 AM PDT 我通过第一行代码入的门。但是在开发一个吸顶的 tablayout 时一头雾水不知该如何下手,网上找了别人代码也是看不懂,请问还需要再看哪个资料或书籍才能度过这个时期。 |
Posted: 07 Jun 2022 12:53 AM PDT 以前长按会出现 New Line ,现在没了。所以怎么换行? |
SpringBoot 服务启动的时候,不存在引用这个实现类,但是提示内省失败 Posted: 07 Jun 2022 12:39 AM PDT Error creating bean with name 'AImpl': Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [com.xxx.xxx.service.xxx.AImpl] from ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2] Caused by: java.lang.NoClassDefFoundError: com/xxx/xxx/xxVO 这个咋排查?这个类存在于上一个分支,但是这个分支不需要这个 AImpl 。但是又提示失败 |
DecoHack #016 独立产品灵感周刊 - 苹果 WWDC 这周来了 Posted: 06 Jun 2022 11:46 PM PDT
大新闻1.今年的 WWDC22 开始了,活动是在北京时间 6 月 7 日至 11 日线上举办。 开场:北京时间:6 月 7 号凌晨 1 点。WWDC 的开场会介绍 Apple 各平台最新的创新,会公布一些硬件产品。 Session:北京时间:6 月 8 号至 11 号。这 4 天时间里会有 100+ Session 放出。这是 WWDC 最重要的环节,由 Apple 开发工程师介绍 Apple 全平台最近做的一些升级、创新或者实践情况。 苹果设计大奖:Apple Design Awards 在上周公布了决赛名单。今年的北京时间:6 月 7 号早上 8 点揭晓最终获奖产品。Apple 设计大奖( Apple Design Award )是一个旨在表彰开发者在 App 和游戏设计方面的卓越创意、独创性于技术成就的奖项。该奖项于 1996 年设立,前两届名为「人机交互杰出设计奖」,自 1998 年起改为「 Apple 设计大奖」并沿用至今。 另外获得 2022 Apple Design Award 提名的来自国内团队的产品有三个 :「谜底时钟」「专注面条」与「笼中窥梦」。很强! 2.Google Play 独立游戏计划现已开放提交。这次活动面向的是小型游戏工作室。谷歌的 Indie Games Accelerator 和 Indie Games Festival 旨在帮助工作室发展游戏和业务。在这个地址提交你的游戏:Playindies。 应用推荐1.Pigzy - 这个产品想法挺不错,是一个规划孩子日常生活的工具。安排好孩子每天要做的事情,鸡娃专用!从工具入手还可以做很多事情,产品是由想象空间的。只不过在国内做下工具就行了吧,这个还是挺适合独立开发者做的。有 Android 和 iOS 版本。 2.Artvee - 这个网站收录的是古典艺术作品,完全免费浏览和下载高分辨率的公共领域艺术品。 3.Journalistic - 这是一个 PWA 简洁日记应用,多端都可用。不得不说 PWA 应用还是有很多优势的。 4.bookmarz - 这是一个可以共享浏览器书签的网站。你可以自己创建自己的一个列表分享给别人。例如这个下载电影网站列表。 5.Appyshot - 这是一个喝酒时玩游戏的应用,上线 2 个月,葡萄牙的娱乐榜单 TOP4 应用程序。这类产品国内也很多,但是交互视觉都做的不是很好。iOS 和 Android 两个平台都有上线。 6.Tweet Sweeper - 这个网站可以链接 Twitter 后自动删除的的旧推文。还是挺有用的。 7.3 Things - Todo List for Focus ,这个产品鼓励每天专注于 3 个待办事项。界面极简。 8.瓦尔登 - 这个 App 是集合了待办计划、进度管理和笔记的软件,界面设计很不错。和时光进度这个产品的定位非常像。支持 iCloud 自动同步、屏幕小组件。独立开发者 Bee 的作品,没搞错的话我之前还用过这个作者的产品小蜜蜂( BeePress )-WordPress-微信公众号文章采集插件。 9.Clorde - 一个用文字显示时间的 APP 。看了一下官网设计的挺不错的。图标都有 SVG 动画,很用心作者 @amolkmr05 也是两年 Apple WWDC 奖学金获得者。Apple Swift Student Challenge winner 。可以去他的个人网站看看其他的作品。 10.LUCH - 这个照片编辑软件主打一些滤镜和特效:散景、漏光、噪点和灰尘等。交互方式很不错。 11.The History Of The Web - 这个网站用时间线的形式展示了 Web 的发展历史。 12.You Can't Do Simple Maths Under Pressure - 这是一个简单的测试你算数能力的网站,我只玩到第二关。网站的意思是在你有压力的时候是没办法做数学题的。 13.ASCII Art Paint - 免费的在线工具,可以用于创建和编辑 ASCII 艺术。 开源项目1.Todonest - 这是开源的一个待办事项 Web 项目。使用 Vue.js 开发。 2.Social-Space - 这是一款免费的开源软件,可以并排打开社交应用程序。你可以使用它在一个页面中打开 Facebook 、Instagram 、Messenger 和 Telegram 。类似的 Mac 端可以用 Franz 5。 3.windows-dev-guide - 完整的 Windows 开发人员设置指南。 开放创业者(Open Startup Creator )
随便看看
|
Posted: 06 Jun 2022 11:30 PM PDT 感觉 14+还不错,是现在搞一个 14+ 32g 还是等今年新款的 14p ?做工,键盘手感等等,14p 会不会好一些?或者是等今年的 T14s |
Posted: 06 Jun 2022 11:15 PM PDT 我们做的商业软件,整体来说就是增删改查,数据库表也不复杂大约十张,目前想重构,面临几个问题 1.给客户安装之后,需要定期的在线升级 2.升级表结构 这部分有两个问题 php 没有打包,升级文件会巨多不太方便,能不能把 php 像前端一样打包一下 升级表结构也不太好整 数据库如果改成 sqlite 是不是会更好一些,旧数据用 mysql 有无可参考开源的解决方案呢 ? |
Posted: 06 Jun 2022 10:14 PM PDT 维护的老产品,现在在用 CEF 调用 webview 来展示新开发的界面。所以,参数都是通过 url params 传递进来的。例如,http://localhost:8080/index.html?name=1111&type=V2&data=xxx 这里的 data ,我想传一个 serailized 的 json 格式的数据,但是这样的话,我担心,如果数据太大,会不会超过 url 的参数长度限制? google 了一下,发现各种说法都有,有的说是 2000 多,有的说没有限制... p.s. |
LocalDateTime.parse 无法解析秒跟毫秒连在一起的字符串是什么原因? Posted: 06 Jun 2022 09:45 PM PDT 这样就报错"java.time.format.DateTimeParseException: Text '20220601132050399' could not be parsed at index 0"。 但是如果随便什么东西把毫秒跟秒隔开就没问题比如: 就都没问题。请问这是啥原因? 另外正向 format 是没问题的。 |
Posted: 06 Jun 2022 06:47 PM PDT
Merbridge CNI 模式的出现,旨在能够更好地适配服务网格的功能。之前没有 CNI 模式时,Merbridge 能够做得事情比较有限。其中最大的问题是不能适配注入 Istio 的 Sidecar Annotation ,这就导致 Merbridge 无法排除某些端口或 IP 段的流量等。同时,由于之前 Merbridge 只处理 Pod 内部的连接请求,这就导致,如果是外部发送到 Pod 的流量,Merbridge 将无法处理。 为此,我们精心设计了 Merbridge CNI ,旨在解决这些问题。 01 为什么 需要 CNI 模式?其一,之前的 Merbridge 只有一个很小的控制面,其监听 Pod 资源,将当前节点的 IP 信息写入 local_pod_ips 的 map ,以供 connect 使用。但是,connect 程序由于工作在主机内核层,其无法知道当前正在处理的是哪个 Pod 的流量,就没法处理如 excludeOutboundPorts 等配置。为了能够适配注入 excludeOutboundPorts 的 Sidecar Annotation ,我们需要让 eBPF 程序能够得知当前正在处理哪个 Pod 的请求。 为此,我们设计了一套方法,与 CNI 配合,能够获取当前 Pod 的 IP ,以适配针对 Pod 的特殊配置。 其二,在之前的 Merbridge 版本中,只有 connect 会处理主机发起的请求,这在同一台主机上的 Pod 互相通讯时,是没有问题的。但是在不同主机之间通讯时就会出现问题,因为按照之前的逻辑,在跨节点通讯时流量不会被修改,这会导致在接收端还是离不开 iptables 。 这次,我们依靠 XDP 程序,解决入口流量处理的问题。因为 XDP 程序需要挂载网卡,所以也需要借助 CNI 。 02CNI 如何 解决问题?这里我们将探讨 CNI 的工作原理,以及如何使用 CNI 来解决问题。 如何通过 CNI 让 eBPF 程序获取当前正在处理的 Pod IP ?我们通过 CNI ,在 Pod 创建的时候,将 Pod 的 IP 信息写入一个 Map (mark_pod_ips_map),其 Key 为一个随机的值,Value 为 Pod 的 IP 。然后,在当前 Pod 的 NetNS 里面监听一个特殊的端口 39807 ,将 Key 使用 setsockopt 写入这个端口 socket 的 mark 。 在 eBPF 中,我们通过 bpf_sk_lookup_tcp 取得端口 39807 的 Mark 信息,然后从 mark_pod_ips_map 中即可取得当前 NetNS (也是当期 Pod) 的 IP 。 有了当前 Pod IP 之后,我们可以根据这个 Pod 的配置,确认流量处理路径 (比如 excludeOutboundPorts)。 同时,我们还****使用 Pod 优化了之前解决四元组冲突的方案,改为使用 bpf_bind 绑定源 IP ,目的 IP 直接使用 127.0.0.1 ,为了后续支持 IPv6 做准备。 如何处理入口流量?为了能够处理入口流量,我们引入了 XDP 程序,XDP 程序作用在网卡上,能够对原始数据包做修改。我们借助 XDP 程序,在流量到达 Pod 的时候,修改目的端口为 15006 以完成流量转发。同时,考虑到可能存在主机直接访问 Pod 的情况,也为了减小影响范围,我们选择将 XDP 程序附加到 Pod 的网卡上。通过借助 CNI 的能力,在创建 Pod 时进行附加操作。 03如何体验 CNI 模式?****CNI 模式默认被关闭,需要手动开启。 可以使用以下命令一键开启: 04注意事项需要注意主机是否可开启 hardware-checksum 能力为了保证 CNI 模式的正常运行,我们默认关闭了 hardware-checksum 能力,这可能会影响到网络性能。建议大家在开启 CNI 模式前,先确认主机是否可开启 hardware-checksum 能力。如果可以开启,建议设置 --hardware-checksum=true 以获得最佳的性能表现。测试方法:ethtool -k <网卡> | grep tx-checksum-ipv4 为 on 表示开启。 CNI 模式处于测试阶段CNI 模式刚被设计和开发出来,可能存在不少问题,欢迎大家在测试阶段进行反馈,或者提出更好的建议,以帮助我们改进 Merbridge !如果需要使用注入 Istio perf benchmark 等工具进行测试性能,请开启 CNI 模式,否则会导致性能测试结果不准确。 项目地址: ****https://github.com/merbridge/merbridge 社区交流: ****https://join.slack.com/t/merbridge/shared_invite/zt-11uc3z0w7-DMyv42eQ6s5YUxO5mZ5hwQ 微信社群: 扫码添加微信 备注 [ Merbridge ] ,加入讨论群 本文作者 刘齐均 (Kebe Liu) 「 DaoCloud 道客」服务网格技术专家,Istio 社区指导委员会成员,Istio 及 Kubernetes 代码贡献者,Merbridge 开源项目发起人 |
Posted: 06 Jun 2022 06:19 PM PDT 就是发布成网页,官方服务是要花钱的,想着手上服务器有闲置的,或者发布到内网然后穿透到外网也可以,有好的方案吗 |
Posted: 06 Jun 2022 06:01 PM PDT 只会基本 html+弱鸡 JS 语法。 平时主要一些后端,AI 数据分析类的工作。 自己开发小程序 需要前端达到什么样的水平? 还是直接对着教程撸 就可以了? |
Posted: 06 Jun 2022 12:17 PM PDT 最近写了一个路径管理工具,请大家试用看看。说说评价。 我自己用起来觉得蛮喜欢的,可能也是自己需求的一种体现......平时想要却没找到类似工具,只好自己写一个了。 下面是使用截图。 |
Posted: 06 Jun 2022 11:48 AM PDT 代码: https://github.com/Tyrone2333/giteeDeleteAccount 如何注销 Gitee 帐号官方文档 https://gitee.com/help/articles/4286#article-header1 由于 Gitee 删除要求账户下没有仓库,所以先跑脚本把仓库全删了. 然后就可以发邮件删除账号了 |
老哥们,有见过自然人有限公司 的外企代表处吗?这种的怎么样? Posted: 06 Jun 2022 11:23 AM PDT 有一个貌似外企的工作机会,说是外企的代表处,但是劳动合同是跟一个国内的自然人有限责任公司签,这种的怎么样,我看工作氛围,工作内容,团队的确是外企没错。有老哥知道这种公司不,是外包吗? |
You are subscribed to email updates from V2EX - 技术. To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google, 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States |
No comments:
Post a Comment