二零二三年一月第二周技术周报

这一周主要是确保在春节前各类服务的稳定。近期发现某个服务经常在流量高峰时段报超时,我提醒转交服务负责人处理。但是几天过去,服务负责人依然无法说明原因。只好亲自处理这个问题,因为报警已经十分严重,部分节点超时率能够达到20%。在这段时间中,应该是由于临近假期,流量大幅度上涨,12月底相比已经上涨了100%。所以首先是怀疑服务的承载力不足,所以先进行了一次扩容。但是,扩容后并未解决此问题,告警频率和超时率基本未变化。这种情况下,对服务的源代码进行分析后发现,该服务的接口会首先调用一个下游服务,然后再异步地向数据 … 阅读更多

二零二三年一月第一周技术周报

时间进入二零二三年,今年是将一个辛苦的一年。今年将面临几方面的挑战,一个是将原先部署在物理服务器上的数据都迁移上云。然后就是,加快培养几个团队新人,让他们尽快承接目前的主要业务所涉及的服务,并且要求能够独立解决用户问题并对服务做出优化。这样我就能将一些工作转交到他们名下,专注今年预估耗时较长的重要目标。还有就是,个人的在技术和其他方面学习也到了一个攻坚阶段,这些方面决定了我未来7~8年的人生方向。 这一周,我的主要的精力在几个服务的日志框架与日志追踪的设计与规范上。首先是解决日志追踪的问题,为了能够跨服务地 … 阅读更多

二零二二年十二月第四周技术回顾

本周我感染了新冠病毒,一共在家待了9天。在此期间,工作上的最主要的事情是评估一款小程序的推广上线,对我所负责的基础服务体系的影响。这款小程序切中了当时国人的需求,预计有大量流量涌入,可能对基础服务体系的核心服务造成冲击。原先,他们有也一个功能将要上线,流量也很大,我已经评估过并且扩容了。但是,这次还是在他们推送了上亿的量级的通知后,发生了大批量的超时现象。 早上八点钟,躺在床上修养的我就被叫起来,说是登录接口出现大量超时现象。我马上拿出笔记本,连上内网一看,这个接口流量直接翻了20多倍。我都捏了一把汗,首先 … 阅读更多

二零二二年十二月第三周技术回顾

这一周,主要的工作是针对某个Java服务进行优化。该服务一直存在CPU占用率无法提升上来的问题。首先考虑的问题是,该服务是否存在工作线程不足的问题。后面发现,并非CPU占用无法提升,而是CPU占用提升后会导致较多的超时问题。该服务很久以前就有反馈性能不足,不建议继续使用。所以我感觉,这个问题来自于框架,而非业务代码。 经过对框架代码进行阅读和梳理,该框架使用netty作为NIO服务器框架,并且会在执行业务逻辑的时候分发业务处理任务到工作线程。然后工作线程来处理业务逻辑。之前框架有个问题就是,工作线程数太少, … 阅读更多

二零二二年十二月第二周技术周报

这一周的工作主要是对我负责的这一方面的工作的一个梳理,目前发现了许多的问题。这些问题主要集中在数据上云方面,目前的问题主要是如何安全上云、怎么改造目前的单地域部署方案、如何修复云下数据和云上数据之间的不一致。另外,发现还是有一些服务在使用云下的数据库,这些云下数据库按道理是要废弃的。但是,这些服务都是一些老服务,代码改动会带来一些风险,这就需要在行动前调查清楚。 调查的方面包括,现有的数据上云辅助服务的基本原理和相关的代码逻辑细节,最好能够尽早发现其中存在的问题并及时修复。另外一方面,是数据上云过程需要实时 … 阅读更多

二零二二年十二月第一周技术周报

这一周的工作,总结说来,主要就是将一个核心服务上云,然后不断将云下的节点切换成流量转发节点。上云的第一步就是,在云上环境部署该服务的节点:迁移配置文件、环境,然后根据稳定版本的代码编译适用于云上环境的镜像,然后让服务在云上环境跑起来。服务跑起来后并且测试完成后,云上节点目前是没有任何流量的,这个时候需要将云下的部分流量转发到云上,首先是要将云下的部分节点替换成转发节点,转发节点的作用是将主调打过来的流量转发到云上的节点。后续可以利用这部分流量来观察云上节点的工作状态,检查异常,可以称之为“流量灰度”。流量灰 … 阅读更多

二零二二年十一月第四周技术周报

这一周,我主要在优化一个服务。这个服务是用Java编写的。生产环境流量不大的时候,也会出现调用批量超时的现象。而且发送超时的时候,CPU占用率很低。经过观察,CPU占用一直就上不去。这个时候就推测是不是线程都阻塞在了某个操作上,导致这个问题。我所接触到的大多数服务,包括这个服务,都是IO密集型的服务。这类服务涉及大量的RPC调用,当RPC调用的时候,工作线程会阻塞,导致无法处理其他请求。所以这类服务的工作线程数都会设置得很大,确保有多余线程来处理IO请求,防止由于大部分线程阻塞导致后续请求得不到处理,最终导 … 阅读更多

二零二二年十一月第三周技术回顾

这是我的第一篇有关于工作中遇到的技术问题的周期性回顾,所以本期的技术回顾主要是总结长期以来的经历,为以后的技术回顾开一个好头。 来公司工作了快半年了,最近我从客户端开发转成了后台开发。这是我希望的,但其实不是我要求的。因为个人感觉,在中国科技行业目前的职业生涯规划中,后台开发可以探索的东西会稍微多一些,接触问题的规模也会大很多。其实客户端也大有可为,我的第一个比较成熟的开源项目GpgFrontend就是一个客户端项目。我在其中投入了大量的时间,解决了大量的问题。尤其是编译问题、平台兼容性问题、稳定性问题。其 … 阅读更多

自己总结出养成习惯的一些实用经验

很多人都会想养成一个好习惯,因为一个好习惯能够然仍长期做一件好的事情。这件好的事情,每做一次都会带来一定的好的影响。而一个好的影响的一次次叠加,经过比较长的一段时间,就能使得一个人的某个方面产生巨大的良性改变。而很多人想养成习惯却难以坚持下来。反而求助于很多外力来“监督”自己,这样反倒让自己变得更加痛苦。 我觉得想养成习惯而不得根本原因是缺乏内在的强大的动机。比如说,你想学习一门外语。你知道,学一门外语能够有种种好处。但是,你其实内心清楚,这些好处只不过是锦上添花,并不会影响你的前途。自己是骗不了自己的,我 … 阅读更多