东拉西扯

张戈博客正式启用全新个性域名:zhang.ge

Docker

Nexus3最佳实践系列:搭建Docker私有仓库

Docker

零门槛!基于Docker快速部署ES集群

网站建设

分享张戈博客的WordPress优化方案,缓解国内云服务器配置低下的问题

Docker

Docker新手入门实战教程

Docker

基于Docker部署ceph分布式文件系统(Luminous版本)

东拉西扯

浅谈个人博客网站or屌丝vps服务器暴露真实IP的危险性

WEB应用

APISIX插件开发之精细化限速插件

网站建设

如何正确配置CDN高速缓存,避免越用越慢的尴尬

WEB应用

APISIX插件开发之Kong网关HMAC鉴权插件(附客户端SDK)

WEB应用

APISIX运维优化之解决长尾请求(耗时抖动)问题

1月16日 · 2025年

FastTTS:支持私有化部署和源阅读无缝对接的语音合成服务

370 2
概述长话短说,最近发现微软的语音服务莫名扣费了,然后看着国内云服务动辄几千上万的语音合成服务资源包,一阵苦涩。搜了下,发现挺多基于 edge-tts 的白嫖项目,试用了下确实能用,就是和源阅读对接的体验有待提高。因此决定自己封装一个更适合源阅读 APP 的语音合成服务,以下是介绍,有需要的直接拿。项目介绍本项目基于 Edge-TTS 和 FastFlyer 开发框...
8月17日 · 2022年

gRPC开发过程中遇到的问题记录

2843 4
最近我在改造手头负责的一个HTTP Restful API服务,集成对gRPC协议(在鹅厂叫tRPC,是gRPC的本土衍生版本)的支持。由于是从0学习这个协议,因此也踩了不少坑,这里用一篇文章来记录下,希望可以帮助到同样从0学习gRPC的朋友。列表参数赋值老的Rest接口中,大量用到了列表参数,看了下pb协议,给这个参数定义如下:message Foo { rep...
8月3日 · 2022年

SQLAlchemy因密码含有@符号连接MySQL失败

2861 2
最近新来的实习生小伙子在重构一个我入职时开发的老系统,这个系统之前用的是Python twisted框架开发的,这次重构希望可以换到FastAPI,也就是我上一篇文章分享的Flyer开发框架。小伙子很给力,花了几天自学了下FastAPI和Flyer就开始开发了,结果用Flyer框架的时候,连接MySQL报错如下:sqlalchemy.exc.OperationalError: (...
6月17日 · 2022年

Flyer:基于FastAPI的轻量级API开发框架

3407 0
概述我们经常会听到“不会开发的运维不是个好运维”,确实在运维工作当中,娴熟的开发经验能让运维工作如鱼得水,事半功倍!高级的运维除了需要精通Shell脚本编程之外,最好还需要掌握一门高级语言,比如Python、Golang、PHP、Lua等。高级语言除了可以解决一些更复杂的运维场景,还可以帮助我们更好的理解业务,做好业务运维,毕竟知己知彼才能百战不殆。经常看到很多运维同学写接口通常...
3月18日 · 2022年

APISIX高级路由之301/302跳转配置

3324 0
我们这有个内部网站同时支持2个域名访问,最近因升级需求希望统一到一个域名,即老域名做一个301跳转到新域名。这个在Nginx直接配置一个if逻辑,判断是老的host并跳转到新的域名即可。那这个Case在APISIX里面应该怎么配置呢?看了下APISIX文档,发现有两种跳转插件:redirect和response-rewrite,前者只能跳转uri不包含协议主机部分,后者可以通过修改返回头...
3月1日 · 2022年

解决paramiko使用invoke_shell交互式命令超时问题

5063 1
最近手头有个业务是基于Apache Karaf开发的,运行在K8S里面,跑了一堆的bundle,偶尔里面挂一两个bundle容器是没什么感知的,但是业务可能会局部异常。要推动业务优化的话,周期就会拉得很长,因此先弄个定时拨测来监控下bundle是不是都在正常运行的。看了下要查看Karaf里面的bundle需要ssh进去执行bundle list命令,因此基于之前的经验利用Python p...
2月25日 · 2022年

分享一个APISIX网关返回502的典型案例

2115 1
APISIX为了提高性能,默认会打开keepalived特性,预设会话保持时长为60s,我们在部署网关的时候也保留了这个优化特性,恰好我的上游服务基于Gunicorn+FastAPI开发框架,也开启了keepalived,会话保持默认设置为5s。这样就有问题了:网关和上游服务建立连接后60s内,新请求会继续复用这个连接,但是上游却在5s后主动关闭了连接,因为网关将新请求转发给上游时,才发现连接已经被关闭了,因此就出现了上述报错。...
12月23日 · 2021年

解决百度搜索出现安全中心提醒

1711 4
自从博客几乎断更之后,就已经很少关注SEO了。昨天机缘巧合在百度搜了下“zhang.ge”这个国外线路域名的时候,居然发现有如下提示:纳尼?还有这种事情?但是搜索“zhangge.net”却没有,看起来应该是误报。点击打开会有如下提示:看到有个“申请解封”按钮,就点过去,填写表单提交了下:结果,没等多久,大概之后个把小时就收到了百度发来的审核通过的...
12月12日 · 2021年

APISIX运维优化之解决长尾请求(耗时抖动)问题

3277 0
自从APISIX网关推广使用以来,在我们部门已经有很多生产业务接入使用。有一天被拉进了一个问题群,被告知APISIX网关性能有问题,整体表现还不如之前的ZUUL网关。纳尼?APISIX性能再怎么不济也不至于比ZUUL差吧?废话少说,直接上手弄了个串行请求对比测试了一下生产环境的APISIX网关和ZUUL网关,结果大跌眼镜!正常情况下,APISIX的耗时都优于ZUUL网关,但是AP...
12月23日 · 2013年

WordPress(Twenty Ten主题)文章副标题修改教程

4031 1
刚开始使用wordpress的时候就一直用着Twenty Ten这个主题,发现文章列表或文章内容界面的副标题感觉怪怪的,并不符合国人习惯,而百度搜了半天也没找到相关教程,于是寻思着自己去研究修改下...在这个主题中,副标题显示格式是:发表于20**年**月**日 由**真是老外式的读法。博客刚建立也没去花心思修改,今天空下来了,就去DIY了下,变成了我们习惯的读法:...
11月21日 · 2014年

WordPress前端html代码压缩优化,附对应知更鸟主题压缩报错的解决方案

9729 44
今天,逛松果博客的时候,看到了他分享的《wordpress通过代码压缩网页》一文,让我想起了其实张戈博客之前也用过这个功能,当时是在WP迷博客看到的纯代码版本,用了之后发现和知更鸟主题会产生冲突,比如底部滚动条停止滚动、图片暗箱无法弹出等错误。再次看到这篇文章,我已经将WP玩得比较熟了,想着应该可以搞定这种问题吧?折腾ing...一、压缩产生乱码于是,我复制了松果博客的代码,部署后...
11月26日 · 2014年

原创插件:WordPress读者排行榜插件WP Readers Ranking

1711 38
貌似在上个月,我就和中国历史、梦轩丽人等几位博友提过,张戈博客分享的《WordPress酷炫CSS3读者墙,排名按年度、本月、本周划分的小方法》,其实可以封装成WordPress插件,方便一些不会部署代码的童鞋。最近,连续开发了3个WordPress插件,也有了些心得和经验,干脆就把之前的想法也来实现一下!说干就干,绝不含糊,目前该插件已制作成功,并上传到了WordPress官方插...
脚本编程阅读更多
11月15日 · 2014年

grep无法查找shell传过来的变量?先注意一下文本格式吧!

12564 6
昨天,同事告诉我发现一个诡异的问题,grep无法搜索shell中的变量,着实很惊讶。到他所说的服务器上试了下,还真是不行!大概就是这样一个要求:①、有个文本为userid.txt,里面每一行一个用户id,类似如下:00010003000500070009②、另外还有一个文本为record.txt,里面是所有用户的操作记录,一行一条,并且包含有id,类似如下:...
2月8日 · 2020年

网站预缓存工具,提升网站整体加载速度

6300 0
由于电信宽带和谐了443端口,近期我花了不少时间折腾了下近半年都没瞅一眼的博客。经过一番折腾(详见前文),博客总算可以运行在家里的NAS上,整体部署方案如下:图1. 张戈博客部署架构图一、预缓存从上图可以看到,由于中间用于代理转发的腾讯云CDN和阿里云CDN都是没有缓存的,如果CloudFlare的缓存过期,将需要绕过多层链路回源获取网页内容,相比速度就会慢很多。所以,需...
12月27日 · 2013年

Tomcat重启脚本For Windows

7312 4
Tomcat重启脚本,送给有需要的JSP环境运维同行们~运行环境:XP/windows 2003测试通过,其他环境由于手头上条件限制未测试;脚本功能:在常规调用tomcat自带的关闭/重启脚本中加入假死判断,若出现假死则予以强行Kill掉相关JAVA进程;脚本特点:可在tomcat/Jboss/apache混合平台使用,针对性的只重启tomcat相关进程;注意事项:...
1月10日 · 2014年

Win平台Web访问白名单设置脚本(IP安全性原则)

3853 0
最近老是有用户申请开通某网站的访问权限,我接手之前浏览权限的设置方法是修改tomcat下的server.xml配置文件,通过定义allow="IP.."的访问规则来控制浏览权限。这种方法有个很不好的地方,每加一次权限,你就得重启一次tomcat,用户老是挤牙膏一样,一次一两个IP的发邮件来申请开通,不但很烦人,而且对正在使用的用户体验也非常的糟糕!于是我决定要改善这个糟糕的局面。在Linu...
5月26日 · 2014年

js获取url中?后的参数,修复移动版无法切换到电脑版的BUG

4474 18
昨天,发布了《完美实现移动主题在360网站卫士缓存全开情况下的切换》一文,通过JS实现了主题在移动端访问时的自动切换,最后提到了可以在电脑版和移动版的footer里面加上手动切换链接,实现手动版本切换功能。今早发现,电脑版切换到移动版是没问题了,但是移动版切换到电脑版,JS将会再次工作uaredirect.js会再次做UA判断,然后由又跳回了电脑版! 也就是说,手机上浏览无法手动切换到电脑...
6月25日 · 2016年

巧用echo命令解决Samba批量添加用户难题

6010 19
最近实在太忙,没时间研究和折腾,所以也没有什么可以分享到博客的。果然,个人博客坚持原创太不不容易了。张戈博客上线2年多,从1天多更,到一天1更、一周一更,直到现在2星期可能有一更的节奏。。。好了,废话不说了。翻了翻在工作上的印象笔记,发现还是有一些存货可以分享的。挺久之前,组内新申请了一批开发测试机,需要部署环境。除了一些常见的软件要安装之外,还有一个我之前很少用到的Samba。...
6月16日 · 2017年

Python远程控制模块paramiko遇到的问题及解决记录

5724 17
最近一直在开发自动化运维发布平台,底层命令行、文件通道主要基于paramiko模块,使用过程中遇到各种各样的问题,本文主要用于收集问题及解决记录,以备后续使用。一、Error reading SSH protocol banner连接错误这个关键词,在百度、谷歌一搜一大把的提问,也有少部分给出了解决方案,但是最终都无法解决,我经过不断尝试和解读paramiko源码,终于搞定了这个问题,在此...
2月26日 · 2014年

菜单式Shell运维脚本调试小记

3672 7
今天上午,同事叫我帮他看下他正在写的脚本到底哪里出了问题,执行总是达不到预期功能。于是ssh连过去看能否发现问题,经过多次Debug定位与排除,问题终于得到解决。 同事在网上down了一个脚本菜单模板,想把我们已经存在的功能脚本整合到一起,做成多功能的Linux运维工具。目前已经添加了挺多功能,而早上才添加的一个抓取高占用CPU的Java线程功能时出现了无法出现交互界面的问题...
8月3日 · 2022年

SQLAlchemy因密码含有@符号连接MySQL失败

2861 2
最近新来的实习生小伙子在重构一个我入职时开发的老系统,这个系统之前用的是Python twisted框架开发的,这次重构希望可以换到FastAPI,也就是我上一篇文章分享的Flyer开发框架。小伙子很给力,花了几天自学了下FastAPI和Flyer就开始开发了,结果用Flyer框架的时候,连接MySQL报错如下:sqlalchemy.exc.OperationalError: (...
5月16日 · 2014年

百度开放适配&360移动适配专用Sitemap格式转换工具

8538 52
此工具可将标准版的sitemap.xml转换成电脑版—移动版的对应关系sitemap,用于百度开放适配&360移动适配的文件提交。工具用批处理制作,仅起到批量转换的辅助功效,免去手动制作的麻烦!可以用于移动适配的提交测试!张戈不会php,而shell又不能普遍适用,所以只能挑了自己比较拿手的批处理来制作这个辅助工具!因为批处理的局限性,做出来的工具只能用于尝鲜测试使用!或长期不更新的CMS企业网站来提交移动适配sitemap。另外,响应式站点亦无需提交适配!...
操作系统阅读更多
12月31日 · 2013年

用户需当心:Windows崩溃信息有可能被黑客截取

2246 2
       根据Websense安全实验室最新的研究报告指出消费者PC端递交给微软的错误报告有可能被黑客截取,并依据这些信息帮助黑客制定相关攻击策略。当系统出现崩溃的时候会弹出相应的对话框,这些信息中详细包含了设备的运行状态,Windows的版本信息,应用等信息,而这些信息都有可能被黑客监听到。       虽然当系统或者应用程序崩溃的时候会弹出错误报告,通常需要用户的确认才是否将这些错...
10月15日 · 2014年

Linux系统最大文件打开数优化,解决Too many open files报错

1467 3
这是一个Linux系统常见的故障,网络上也能轻易的找到解决办法,我也只是在工作中遇到了这个问题,所以在博客记录下,以备不时之需。一、报错截图:图为resin的报错日志,很明显提示了Too many open files:  二、临时解决临时的解决办法很简单,先执行ulimit -n 65535,然后重启resin即可。Ps:请注意启动环境是否生效:...
12月18日 · 2013年

LVS+Keepalived负载均衡主备&双主架构全攻略

11993 2
LVS+Keepalived 介绍LVSLVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR);十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq...
11月18日 · 2014年

Linux系统crontab备份数据库执行不成功?可能是百分号%在作怪!

4238 4
之前博客分享过一篇《Linux/vps本地七天循环备份和七牛远程备份脚本》,我自己也一直在用。某天检查备份的时候,突然发现数据库的备份的压缩包是空的!看了下crontab的日志,发现有如下错误:Access denied for user \'dbuser\'@\'localhost\' to database \'db\' when using LOCK TABLES原来,我在计划任务中备份...
2月10日 · 2014年

国内外流行的Linux发行版

633 12
近年来,Linux开始获得越来越多的关注,那你知道国内外流行的Linux版本都有哪些吗?本文中整理了五大Linux发行版,他们分别是RedHat、SUSE、Debian、ubuntu、Gentoo,一起来看看吧。Linux长时间以来都是极客圈子内的玩物,大众对其知之甚少,但谁都无法否认其重要性。近年来,Linux开始获得越来越多的关注,那你知道国内外流行的Linux版本都有哪些吗?一起来看看网...
9月29日 · 2014年

Linux网络实时流量监测工具iftop的安装使用

7792 1
概述:网络管理是基础运维中一个很重要的工作,在看似平静的网络运行中,其实暗流汹涌,要保证业务系统稳定运行,网络运维者必须要了解网络的流量状态、各个网段的使用情形,带宽的利用率、网络是否存在瓶颈等,同时,当网络发生故障时,必须能够及时发现问题,迅速定位问题,进而解决问题,这就需要一些网络监测工具的辅助,本节将介绍一款小巧但功能很强大的网络实时流量监测工具iftop。一、iftop概述ifto...
3月3日 · 2014年

Linux中的完美截图工具:Deepin-ScreenShot

9354 48
 跟了我5年多的本本已步入花甲,CPU严重老化,运行Windows异常吃力,于是考虑换成Linux试试。忙活了一天,测试了2个“家用”Linux发行版,一个是深度的Linux Deepin 2013,另一个是雨林木风的StartOS 5.1。在测试过程中也遇到一些有用的经验,现在就一一记录一下。这个是在安装完StartOS发现的问题,我第一个安装的是Linux Deepin 2013,发现自带...
1月2日 · 2014年

安装完Win7之后推荐做的一些设置

3544 1
 前言:不知道写什么,就总结一下我个人安装完成windows7之后要做的一些设置吧!以下全文均为个人回忆总结,文章也很冗长,难免有纰漏或者不符合你个人习惯的内容,如果发现有让你觉得很不屑的内容,立即关闭此网页,以免浪费时间~~虽然Win8已经推广使用,但目前windows7还是普通用户的主流系统,个人虽然也挺喜欢Win8的一些功能,比如超级任务管理器、可暂停的复制/粘贴等。但个人比...
4月22日 · 2014年

Llinux文件目录权限及chmod命令简析

1166 10
这些天,在互推联盟群(344134224 )遇到几例关于WP升级失败以及FTP账号登陆的问题。最终发现都是主机的目录权限设置存在问题。比如,博友【PPT分享网】提出,能否让2个账号都能访问同一个FTP目录,其实只要使用chmod对目录赋相应的权限即可。本文整理了关于Linux目录权限的一些基础知识,希望可以帮助一些刚接触Linux的朋友,比如使用VPS的博友等。 ...
8月28日 · 2014年

Linux/VPS系统安全设置整理

1299 12
最近入手了一台创宇云的VPS,然后将2个网站都给搬家了。作为一个运维工程师,终于不用再处处受制于人了,虚拟主机真的只能玩个球!拿到VPS并快速部署好环境后,开始着手完善一下安全设置,以下过程记录,供大家参考:一、用户权限安全设置root权限太高,误操作就相当危险,所以日常操作使用普通账号,只有特定时候才使用su切换到root身份。①、新建普通用户,比如zhangge...
WEB应用阅读更多
4月2日 · 2014年

ipvsadm启动报错解决办法,另附ipvsadm详细参数

6125 10
记录ipvsadm 启动报错的解决办法,并附上详细的ipvsadm参数说明报错信息:[root@localhost ~]# service ipvsadm start Clearing the current IPVS table: [确定] Applying IPVS configuration: /etc/init.d/ipvsadm: line 62: /etc/sysconfig/ipvsadm: 没有那个文件或目录...
5月20日 · 2015年

为网站开启Nginx缓存加速,支持html伪静态页面

18810 53
上一篇文章分享了如何开启 Nginx 的缩略图功能,也提到了 Nginx 缩略图在完美替代七牛缩略图或PHP缩略图的同时,还会带来一定的CPU负载消耗。因此,本文就来分享一下如何解决这个实时生成缩略图带来的CPU开销问题。思路很简单,既然你要实时生成,那我就将你生成的缩略图缓存一份好了!在我测试期间发现,Nginx 的缓存也同样可以缓存伪静态的 html 页面,完全可以替代WP-S...
2月25日 · 2022年

分享一个APISIX网关返回502的典型案例

2115 1
APISIX为了提高性能,默认会打开keepalived特性,预设会话保持时长为60s,我们在部署网关的时候也保留了这个优化特性,恰好我的上游服务基于Gunicorn+FastAPI开发框架,也开启了keepalived,会话保持默认设置为5s。这样就有问题了:网关和上游服务建立连接后60s内,新请求会继续复用这个连接,但是上游却在5s后主动关闭了连接,因为网关将新请求转发给上游时,才发现连接已经被关闭了,因此就出现了上述报错。...
7月7日 · 2019年

CloudFlare边缘计算Workers尝鲜初探:博客跳转中间页

3527 42
4月27日,有幸参加了由Aftership组织、CloudFlare的大牛孟鑫主讲的《CloudFlare 最新边缘API,打造无服务器(Serverless)架构》课程,感觉收获颇丰。因为这个课程非常接地气,大部分内容都在实战,而不像有些分享一味的讲理论、拼PPT,听得云里雾里,分享的时候是一个样子,真正你去尝试的时候却是另外的样子,duang~,当然,还有一个原因就是张戈博客目前也在用Clo...
4月12日 · 2019年

惊现Haproxy重复添加X-Forwarded-For问题(附官方解决办法)

4824 7
最近在配置Haproxy代理的时候发现一个很有意思的事情:Haproxy在代理http请求会无脑加一个X-Forwarded-For(后文简称XFF),而不是将自身的IP地址加到已存在的XFF列表之后,WTF!还有这种神操作?确认无误之后,我到Haproxy的github开了一个issue反馈了这个BUG(issue地址),最终了解到了Haproxy就是这样设计的,并得到了解决方案,而且这个is...
2月27日 · 2014年

解决Tomcat数据连接池无法释放

9746 12
近段时间,公司的检测中心报表系统(SMC)的开发人员时不时找到我,说用户老是出现无法登录的情况。前些日子因为手头上有Jboss集群的测试工作,发现用户不能登录时,都是在Tomcat中将这个项目Reload一下就好了,不过只是治标而已,因为大概几个小时之后又会再次出现无法登录的情况。今天上午,开发人员小毛又找到我,要我协助将这个问题根治一下,拖太久用户难保不投诉。简单分析了一...
5月2日 · 2016年

WordPress启用memcached动态缓存以及报错解决

19995 87
张戈博客目前用的是Nginx的fastcgi缓存方案,属于纯净态缓存模式,所以前台登录态什么的基本都没了。如果要兼顾前台登录态,又想速度快,有没有解决方案?之前在分享张戈博客优化方案时提到,要实现网站轻度缓存,方案还是有的,比如 DB Cache Reloaded、Redis、memcached等。最近恰好遇到一个数据缓存需求,因此尝试了下memcached方案,下面简单分享下我的...
2月24日 · 2018年

Haproxy进阶管理:命令行控制后端节点上下线

1695 11
很多业务系统都用到了Haproxy这个高性能反向代理负载均衡器。在日常运维当中,Haproxy后端节点的上(接入)、下(剔除)线操作绝对是家常便饭,而且人工重启的时候经常有胆颤心惊的感觉。下面分享一种命令行操作Haproxy后端节点平滑上下线的技巧。一、新增配置Haproxy自带了一个非常实用的管理页面,我们可以在harpxoy.cfg新增如下配置,开启Haproxy监控管理页面功...
3月17日 · 2018年

网站集成打字震动特效JS代码改进版

1423 37
这又是一个拖欠了很久的分享,很早就有朋友留言问评论打字炫彩、震动特效怎么实现的。这功能其实网上早就有人分享N遍了,有点搜索技巧和DIY能力的站长同学也早就实现了。这里还是继续分享一下我这边的一些改进,也许有朋友可以用得到。简单的改进:1、移动端关闭震动,移动端震动会显得很卡;2、添加震动开关,方便不喜欢的朋友进行关闭,采用Cookie记忆同一个浏览器点击关闭一次即可。P...
11月11日 · 2016年

解决Nginx配置http2不生效,谷歌浏览器仍然采用http1.1协议问题

2968 30
昨天一个网友通过QQ联系我,说按照我博客之前分享的http2配置教程不能生效,想请我帮忙看看。经过测试,使用谷歌浏览器访问他的测试站点,确实没有开启http2,但他的配置和编译参数都正确的,这有点奇怪了。不过昨天太忙就没有继续帮他分析,他只好将服务器账号和密码都留言给了我。今天中午我抽空在他服务器重新编译测试了一把,才发现原来是这么一个梗!他在编译Nginx之前,使用的是yum...
2月3日 · 2018年

小网站最简单实用的动静分离优化方案

12708 45
很久没写文章了,博客已经长草了,今天挤点时间分享一些小干货,也是回应一下不少站长朋友的留言问题。有不少站长朋友问张戈博客的静态文件为啥是另外一个域名?有啥好处?如何实现?其实这算是一种动静分离的做法,不过我这里用了偷懒的办法实现,而非彻底的动静分离,不过最终效果的区别并不大。先啰嗦一下动静分离的概念和好处。一、动静分离我们的网站简单来说分为2种数据...
5月2日 · 2019年

分享一个Nginx反向代理的另类应用案例

6737 37
博客前面分享了一篇《分享一个Nginx正向代理的另类应用案例》,时隔不久,身为救火队员、万金油的博主又再一次接到了一个另「W」类「T」需「F」求:场景和上次有些类似,也是部门引进的第三方应用,部署在各个网络区域,从OA办公区域无法直接访问。目前,运营人员都需要登陆Windows跳板机,才能打开这些应用的WEB控制台。既不方便,而且还有一定Windows服务器的维护工作量,于是找到我们团队...