发布了文章2020-09-20
之前实现的AttributeCacheHelper,虽然实现解决每次请求中动态属性重复触发SQL执行的问题,但是也引入了一个新的问题,增加了代码量,维护成本也增加了,添加100个动态属性,就要实现200个函数,使用数量大起来,算是个噩梦了。
发布了文章2020-09-08
在系统的运行过程中,随着用户体量和开发功能的增多的,多多少少会产生一些bug或者异常处理,然而每次在处理这些问题的时候,耗时最长的并不是去解决问题,而是尝试去找到出错的原因,分析到问题的所在,所以我们引入了 Sentry 异常监控日志记录平台,基于Sentry 可以很快的...
发布了文章2020-08-30
起源:通常在产品的运行过程,我们可能会做数据埋点,以此来知道用户触发的行为,访问了多少页面,做了哪些操作,来方便产品根据用户喜好的做不同的调整和推荐,同样在服务端开发层面,也要做好“数据埋点”,去记录接口的响应时长、接口调用频率,参数频率等,方便我们从后端角度...
发布了文章2020-08-23
通过启用Opcache的缓存优化,将PHP代码预编译为Opcode缓存到共享内存中供进程反复调用,从而减少了重复从磁盘解析PHP代码的时间消耗,显著的提高了PHP性能,提升了业务性能的调用,但是也引发了一些问题,就是我们每次更新了相应的PHP代码后,web server 无法即时加载到更新...
发布了文章2020-08-16
起源:在很长的一段时间里,我们的web服务器在遇到大规模流量访问的时候,很容易就把 CPU 负载飙到了 100%,导致响应速度过慢,用户体验卡顿,直到最近开启了Opcahe后,我们的QPS从200-300+,提升了1000+,响应速度也提高了很多,经过几天的摸爬滚打,终于有了一些些小小的经验,...
发布了文章2020-08-09
CC(ChallengeCollapsar,挑战黑洞)攻击是DDoS攻击的一种类型,使用代理服务器向受害服务器发送大量貌似合法的请求。CC根据其工具命名,攻击者使用代理机制,利用众多广泛可用的免费代理服务器发动DDoS攻击。许多免费代理服务器支持匿名模式,这使追踪变得非常困难。
发布了文章2020-08-02
紧接着前面两篇内容,本章开始叙述视图模块的集成。构造一个仿Laravel Mvc框架 - 路由构造一个仿Laravel Mvc框架 - 模型在laravel框架的视图中,经常用到blade模板,通过其简洁的语法和数据绑定方式,相对于直接嵌入html中开发简直不要舒服太多。下面我们进行引入,与其对...
发布了文章2020-07-27
上一篇中的案例都是将代码写在路由闭包中的,如果路由定义的多了,非常不好维护和管理.所以我们首先需要实现一个 Controller 来处理我们的业务逻辑,也就是Mvc中的C层。
发布了文章2020-07-20
在我们日常使用Laravel框架中,有很多值得我们学习的设计理念和开发思想,如何代码变得更加“优雅”,核心架构中组件化、服务容器、数据库ORM 都是很值得我们去探究一二的方向。
回答了问题2020-03-25
检查思路如下: 检查数据库QUEUE_CONNECTION是否为database 检查数据库配置(host、username、password、database)是否填写正确 是否生成了jobs table 先尝试disptach一个job到数据库中看下,jobs表会不会新增一条记录 以上都检查完了,仍然存在问题的话,再尝试详细标注...
发布了文章2020-03-09
在我们的项目中,使用到了大量的attribute函数,来改善我们在面向业务时的调用方便和代码层面的优雅,但是同样也带来的一定的问题,会产生大量的重复计算和SQL调用,在应用上的性能上造成了一击。
发布了文章2020-03-01
最近公司最近的几台线上服务器经常出现CPU覆盖过高,影响部分应用响应超时,产生了大量的短信和邮件报警,经过排查数据库日志和access.log,发现是API接口被刷,被恶意疯狂请求,最大一次大概120次/s。
发布了文章2020-02-22
最近项目线上环境,队列服务器上一直频繁地大量出现数据库死锁问题,这个问题最早可以追溯到年前,19年的时候就出现了,当时一直频于开发业务功能,所以一直未去处理这个问题,这次正好来探究一下死锁的原因和问题所在。
发布了文章2020-01-12
这一周的开发的邀请分红系统,差不多也完善到了70%的成度,正式上了线,投入了给用户使用,虽然还有一部分未完善进来,但还是做一次简单的复盘,从技术和用户体验上说起。
发布了文章2019-12-27
最近主要在忙活微信与支付宝平台的对接与开发,本篇就基于后端层面来讲述一下微信的登录与绑定实现。 (一、)申请微信开放平台 最首先的话就是需要去微信开发中心[链接],创建一个账号,然后创建自己的移动或网站应用。 创建完成后,就会需要腾讯的审核,整个过程在1-3天,...
发布了文章2019-12-20
最近在项目中一直在开发即时消息的应用场景,本次将通过Laravel来构建一个即时的匹配系统,可适用于基本的即时对战小游戏,需要用到的知识点如下:
发布了文章2019-12-02
近期随着队列在项目中的使用越来越多,单个队列的时间出来越来越长,单进程队列处理,会导致后面的队列被阻塞住,无法及时响应处理,便会造成不良好的用户体验和功能偏差。
发布了文章2019-11-11
作为一名开发人员,我们经常会听到这样一句忠告:"在开发软件时编写写测试代码(单元测试,功能测试等)能有效的减少产品中的bug",如何来验证这种言论呢,最大的验证案例应该就是TDD(测试驱动开发),下面本文将通过TDD这种开发技术来改进你的代码质量和稳定性
发布了文章2019-11-05
最近公司后端项目进行了改造升级,由之前的laravel5.6版本升级到了laravel5.8版本,升级后系统产生了不少SQL执行错误,但是在老版本系统运行的好好的,于是就产生了今日的扒坑之旅。
发布了文章2019-09-23
背景:我们在完成系统的设计或者业务的迭代上线后,除了需要关注业务数据、系统运行状况,往往还需要对系统业务异常进行监控,来避免有些边缘场景在开发或测试中没有判断到位,导致线上业务系统运行异常或者崩溃的状况,所以这正是我们需要使用Sentry这样的异常日志监控工...