IP,操作系统OS,国家,浏览器信息GIF展示图 发布于 三月 24, 2021 图片URL:https://www.wieistmeineip.de/ip-address/ 图片URL:https://www.mzwu.com/pic/20070121/ipimg/ipimg.asp 评论
PHP资源整理 发布于 四月 26, 2019 PHP 优秀资源汇集: https://shockerli.net/post/php-awesome https://github.com/shockerli/php-awesome https://github.com/ziadoz/awesome-php PHP设计模式 https://learnku.com/docs/php-design-patterns/2018 https://designpatternsphp.readthedocs.io/zh_CN/latest/README.html oAuth 2.0 server库 https://bshaffer.github.io/oauth2-server-php-docs/ PHP技能树 https://raw.githubusercontent.com/justjavac/awesome-awesomeness-zh_CN/master/assets/php-mind-map.jpg 阅读全文
关于Restful API文档和接口测试,以及easy-mock 发布于 五月 18, 2021 前后端分离 提高前后端的开发效率是非常必要的,那么如何利用好RESTful标准来做好前后端分离呢? 规定API标准 RESTful API 当然你也可以制定自己的API的标准,使用开发人员的编程习惯来决定会比较人性化。这里我选择用 RESTful API 来举例。 REST全称是 Resource Representational State Transfer 翻译为表现层状态转移 用一句话表示其含义为 用URL定位资源,用HTTP动词(GET,POST,DELETE,PUT,PATCH)描述操作 API 全称是 Application Programming Interface 翻译为应用程序编程接口 关于 RESTful api 的设计可以参考阮大的博客 RESTful API 设计指南 API 编写工具 Swagger 是一套开源的API管理工具 其中 Swagger edit 是Swagger推荐的工具,你可以选择在线编辑,或者在本地部署一套自己的 github Swagger edit 然而我推荐使用 vscode 编辑器的两个插件 OpenAPI (Swagger) Editor 和 Swagger Viewer 来编写。 这两个编写工具相比较,vscode有更舒适的字体,字号和配色,但是debug能力稍弱于swagger-editor,所以debug难时也可以配合使用。 目前swagger常用的版本有 swagger: ‘2.0’ 与 openapi: 3.0.1,两个版本中openapi更为强大,但我最后还是选择了swagger: ‘2.0’, 原因在最后面。 API 查看工具 本地部署一套 Swagger UI 吧,还是比较好用的,记得每当更新接口后,查看浏览器要强制刷新。 接口测试工具 要做到前后端松耦合,并行开发,利用接口测试工具是至关重要的。 Postman 后端的接口测试工具 mock 前端的测试工具,这里我推荐 easy-mock 国人主导的开源项目,表示支持,也确实很好用。 关于easy-mock 这个工具也推荐本地部署,它支持swagger yaml和json格式的api 文档加载,自动生成后端接口和模拟返回数据,真正解决前后端并行开发难的问题。 之前说,我选择swagger: ‘... 阅读全文
Tailscale 开源版中文部署指南(支持无限设备数、自定义多网段 、自建中继等高级特性) 发布于 六月 15, 2022 目前国家工信部在大力推动三大运营商发展 IPv6,对家用宽带而言,可以使用的 IPv4 公网 IP 会越来越少。有部分地区即使拿到了公网 IPv4 地址,也是个大内网地址,根本不是真正的公网 IP,访问家庭内网的资源将会变得越来越困难。 部分小伙伴可能会选择使用 frp 等针对特定协议和端口的内网穿透方案,但这种方案还是不够酸爽,无法访问家庭内网任意设备的任意端口。更佳的选择还是通过 VPN 来组建大内网。至于该选择哪种 VPN,毫无疑问肯定是 WireGuard,WireGuard 就是 VPN 的未来。 我已经不止一次向大家推荐使用 WireGuard 了,我累了,不想再讲了,你爱 JB 用辣鸡 OpenVPN 之类的就用吧,你开心就好。 WireGuard 相比于传统 VPN 的核心优势是没有 VPN 网关,所有节点之间都可以点对点(P2P)连接,也就是我之前提到的 全互联模式(full mesh) ,效率更高,速度更快,成本更低。 WireGuard 目前最大的痛点就是上层应用的功能不够健全,因为 WireGuard 推崇的是 Unix 的哲学,WireGuard 本身只是一个内核级别的模块,只是一个数据平面,至于上层的更高级的功能(比如秘钥交换机制,UDP 打洞,ACL 等),需要通过用户空间的应用来实现。 所以为了基于 WireGuard 实现更完美的 VPN 工具,现在已经涌现出了很多项目在互相厮杀。笔者前段时间一直在推崇 Netmaker ,它通过可视化界面来配置 WireGuard 的全互联模式,它支持 UDP 打洞、多租户等各种高端功能,几乎适配所有平台,非常强大。然而现实世界是复杂的,无法保证所有的 NAT 都能打洞成功,且 Netmaker 目前还没有 fallback 机制,如果打洞失败,无法 fallback 改成走中继节点。Tailscale 在这一点上比 Netmaker 高明许多,它支持 fallback 机制,可以尽最大努力实现全互联模式,部分节点即使打洞不成功,也能通过中继节点在这个虚拟网络中畅通无阻。 没错,我移情别恋了,从 Netmaker 阵营转向了 Tailscale,是渣男没错了。 Tailscale 是什么 Tailscale 是一种基于 WireGuard 的虚拟组网工具,和 Netmaker... 阅读全文
挖财 Kubernetes 容器化之路 发布于 六月 03, 2020 其实年初的时候就有想过写这篇文章了,不过一拖就拖到了现在,再拖下去就有点说不过去了。 挖财内部对容器化项目的代号为 K2 (乔戈里峰),乔戈里峰是世界第二高峰,但攀登极富挑战,寓意就是面对挑战,勇攀高峰 ;)。项目从 2016 年 11 月到现在已经有三年的时间了,如今挖财内部测试环境早已全部 Docker 容器化,而线上环境也运行着重要的业务。经历从零到一的整个落地过程,回顾下来,这座高峰算是拿下了。再看 K8s 技术本身现在也是遍地开花,早已赢得容器编排的战争,剩下来就是各个企业的落地实践。倒是 Docker 公司最近的境遇,这个创建 Docker 的企业沦落如此,多少有点令人唏嘘,唯有 Respect。 1 时间线 看了一下项目提交的 Git 记录,第一次提交时间是 <2016-11-01 Tue> 。 2016 年 11 月初开启 2017 年 1 月底 V1.0 上线 2017 年 6 月底测试环境全面推开 2017 年 7 月线上机器学习环境线上试点 2017 年 10 月线上业务试点 2018 年 7 月 V2.0 版本 2018 年 9 月挖财云版本(整合运维监控、告警、日志和容器系统) 2018 年 12 月支持多集群管理 2019 年 6 月私有化分支版本上线 2 现状 2.1 测试环境 当前测试环境有一个 K8s 集群(K8s 1.11.x),空间( namespace )总数有 500+,应用数( Deployment + StatefulSet ) 4400+,实例数( Pod ) 4000+(因为测试环境大部分应用都只有 1 个,有些是处于暂停状态,即 0 个副本,因此实例数少于应用数)。 题外话,话说 K8s 升级的历程也相当血泪,早期的配置变更,向下的兼容性等等,关于升级相关可以参见之前的文章 Kubernetes 版本升级标注 2.2 线上环境 线上环境有三个集群,一个机器学习集群(K8s 1.7.x),一个私有云集群(K8s 1.13.x),有个主体业务集群(K8s 1.13.x),粗率统计了一下,空间数 50+,应用数 500+,实例数 1000+。 测试环境 + 线上环境总体运行有 5000+ ... 阅读全文
群晖上查找占用带宽最大的进程的一种解决方案(异常流量排查) 发布于 六月 02, 2022 起因 有天,在群晖的 Web 界面,看到网络监控那里,上传速度竟然有 1-2M/s,漏油器上也看到群晖的上传很高,也就是说流量上传到了外网,卧槽,这到底是哪个进程吃我带宽的,找出来我非得杀掉不可。 可惜,群晖自带的 “资源监控” 无法查看进程对网络的占用。 过程 通常我们在 Linux 上是如何做的呢? 1 Linux/Mac iftop 通过 iftop ,我们可以找出占用 上传/下载 最高的TCP连接 这里以 Debian 为例吧 安装 iftop 1 apt install iftop 运行 iftop (默认是监听 eth0) 1 iftop 可以通过 -i 来指定其他的网络接口,比如 1 iftop -P -i en8 参数说明 1 2 -i interface 监听指定网络接口 -P 显示主机名及其端口 netstat 上一步查到的 TCP 连接,包含 remote ip 和 端口。 使用 netstat ,可以定位到具体的进程。 1 netstat -pantu | grep [port] 在群晖上 因为群晖的系统,虽然是基于 debian,但是默认没有包管理器,无法通过 apt/yum 安装 iftop。不过群晖支持 docker。 群晖 - 套件中心 - docker - 安装 ssh 连接群晖 janten/iftop 这个镜像为我们提供了 iftop 命令 1 docker run -it --rm --net host janten/iftop -P -i eth0 如果本地没有没有这个镜像,会自动进行拉取,拉取镜像完成后,就可以看到 iftop 的运行界面 使用 netstat 定位进程 1 netstat -pantu | grep [port] 这样就能找到具体的进程了 参考: https://forum.synology.com/enu/viewtopic.php?t=143588 https://askubuntu.com/questions/2411/how-do-i-find-out-which-process-is-eating-up-my-bandwidth 来源:https://... 阅读全文
评论