熟悉PHP/Redis/Mysql/RabbitMQ/WebSocket/Nodejs等技术;了解高并发、高可用架构系统、docker容器和分布式服务器开发;熟悉MVC、Restful、RPC、TCP/IP、HTTP协议以及网络编程;熟悉常用的sql、nosql数据库原理,阅读和理解优秀的开源系统代码;熟悉Thinkphp,Laravel,Cakephp等php框架。
项目一
对用户在线率和核心api请求进行监控,并提供告警功能。
用户在线率监控
定时从数据库读取实时数据,每次请求读取10000条记录。
对读取的数据进行归类后保存到本地日志,并同步日志数据到elk服务器。
发送查询请求到elasticsearch服务器,查询最新30分钟和前一天的日志数据。
比较两份日志数据,并把差异数据记录到本地日志,然后通过filebeat同步日志到elk服务器。
如果监测到数据超过正常阈值,则发送邮件告警。
核心api监控
本地建立tcp服务器接受来自logstash输出的应用日志。
服务器对日志数据进行url过滤,并计算每个http请求的访问时间,访问次数等。
对一系列api请求分析结束后,发送解析数据到elk服务器。
发送数据有失败重试机制,原理是失败请求存储到redis队列,间隔5s重试一次
项目二
建设特定业务的缓存系统,提供高效的api访问接口。
采用本地缓存和redis缓存的架构来缓存对象
服务启动时预加载部分数据
开启对象缓存访问api接口
客户端请求缓存数据时,首先查看缓存是否存在,如是直接返回数据,若不存在从db中获取数据并缓存数据,最后返回缓存数据。
依照不同缓存对象的更新数据频率的不同,为缓存对象设置不同的存活时间。
使用消息队列监控数据库的数据更新,分别为每个监控的数据表建立不同的频道,一旦接收到消息便更新对应缓存数据。
客户端获取缓存对象后也在本地缓存。
角色 | 职位 |
负责人 | 高级PHP工程师 |
队员 | 前端工程师 |
队员 | 后端工程师 |
定时从数据库读取实时数据,每次请求读取10000条记录。 对读取的数据进行归类后保存到本地日志,并同步日志数据到elk服务器。 发送查询请求到elasticsearch服务器,查询最新30分钟和前一天的日志数据。 比较两份日志数据,并把差异数据记录到本地日志,然后通过fil
采用本地缓存和redis缓存的架构来缓存对象 服务启动时预加载部分数据 开启对象缓存访问api接口 客户端请求缓存数据时,首先查看缓存是否存在,如是直接返回数据,若不存在从db中获取数据并缓存数据,最后返回缓存数据。 依照不同缓存对象的更新数据频率的不同,为缓存对象设置不