作业帮-PHP技术一面整理
项目经验介绍
RPC 调用的协议
用amf 和 base64编码
我想问的是通信协议:调用rpc接口时的过程是什么样?比如业务调用PHP接口的时候,用的是什么协议?
(没理解)(https://www.cnblogs.com/rianley/p/11076107.html)
业务调用PHP是直接掉吗?中间有用nginx吗?
业务直接调PHP-FPM,没用nginx
那如何做负载均衡?
业务服务简单地做轮询(负载均衡)<- 这块需要回顾一下业务服务的代码
服务部署的框架图
FPM 是什么?
cgi与fastcgi;fpm3种进程池模式;fpm的启动、进程池初始化、主进程处理事件循环(功能——子进程管理)
FPM 的内存泄露
和共享内存有关?(完全不清除)
FPM如何解决的?
重启?
对,是重启,自动重启
PHP 的数组,存储key-value时,能够保证key的存储顺序,这是如何实现的?
我以为是和底层zval相关的
其实就是哈希的时候,将元素存储在链表里,串起来,以保证有序 <- 这里需要去了解array的底层实现
MySQL 引擎
用什么引擎
innodb
为什么 (和 myisam比较)
myisam不支持行级锁
还有呢?
可能和索引有关?<- 未答出,须强化 (https://blog.csdn.net/qq_35642036/article/details/82820178)
mysql 索引
类型?
聚簇、二级索引
两者区别
聚簇b+树,节点保存完整row数据;非聚簇b+树,叶子节点只保存主键信息
如何通过非聚簇索引查找数据
where 子句命中非聚簇索引节点,拿到逐渐信息,再用主键回标查询 <- 不确定回答方向是否正确
有遇到慢查询吗?
...没有用到索引最左匹配
如果建了索引,sql也命中索引了,但是还是慢查询,遇到过吗?
没有(考察点是mysql优化)
如何发现慢查询
php slow 日志-> 请求耗时 -> sql语句 explain查看执行计划 -> 查看索引有无?是否命中
mysql查询语句如何执行?
不清楚 <- 强化
mysql 事务隔离级别
读未提交->读已提交->可重复读->串行
各级别有什么问题?
... <- 讲得不清楚,须强化!
重复读呢,解决什么问题?
给提示?
你想想重复读如何实现?
快照?解决幻读的问题?
mysql 的快照如何实现
mvvc (应该是mvcc)
描述一下这个是如何实现的
不清楚
Memcached
做缓存,自称分布式,但是memcache 服务之间无通信,可以当单机缓存使用;客户端实现一致性哈希,来实现分布式
为何不用redis?
项目中用不上分布式特性,当单机缓存用
单机缓存qps多少?
没测过,一般不会出现性能瓶颈,瓶颈在网卡上
memcache有什么数据结构吗?
没有数据结构,文本存储。 redis是有数据结构的
那介绍一下redis的数据结构?
string, set, zset, 位图? <- 强化了解一下
还有用什么其他组件吗
消息队列?
没有过 <- 可以了解一些
有监控报警机制吗?
没有,脚本crond定时运行
那会出现线上出现问题研发压根不知道的情况?
... 一顿乱答
zookeeper
项目中做服务注册和发现、配置的统一部署
zookeeper怎么部署?单机部署?
多台部署
多台如何保持配置一致?
master 对 slave 同步
master 挂了怎么办?
选举算法
选举的时候,需要部署多少台机器?
没答上 <- 强化了解
zookeeper 可以选举自己吗?有监听吗?如何知道自己挂了?
一顿乱答... 心跳包? <- 强化了解
日志分析,做什么?
查看线上请求耗时
500 404监控有吗?
没有。。项目不涉及http
算法题
一个有序数组,从中间一个位置分割,旋转拼接,比如 '1234567' -> '4567123',要求,输入旋转后的数组,查找给定值v是否存在,限定时间复杂度lg(n)
思路不清晰,没写出代码
在传统二分的基础上,添加向左、右分支搜索的判断—— if (mid > low),表明左边部分是升序的,否则,左边部分是有分割点存在的
作业帮-PHP技术一面整理的更多相关文章
- 腾讯云联合中国信通院&作业帮等首发《降本之源-云原生成本管理白皮书》
在11月4日举办的2021腾讯数字生态大会云原生专场上,腾讯云联合中国信通院.作业帮等率先在国内重磅发布了<降本之源-云原生成本管理白皮书>(简称白皮书),基于腾讯云在业内最大规模的 Ku ...
- 作业帮上万个 CronJob 和在线业务混部,如何解决弱隔离问题并进一步提升资源利用率?
作者 吕亚霖,作业帮基础架构 - 架构研发团队负责人.负责技术中台和基础架构工作.在作业帮期间主导了云原生架构演进.推动实施容器化改造.服务治理.GO 微服务框架.DevOps 的落地实践. 别路,作 ...
- TKE 用户故事 - 作业帮 PB 级低成本日志检索服务
作者 吕亚霖,2019年加入作业帮,作业帮架构研发负责人,在作业帮期间主导了云原生架构演进.推动实施容器化改造.服务治理.GO微服务框架.DevOps的落地实践. 莫仁鹏,2020年加入作业帮,作业帮 ...
- .NET Web开发技术简单整理
在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...
- 转载:.NET Web开发技术简单整理
在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...
- .NET Web开发技术简单整理 转
.NET Web开发技术简单整理 原文:http://www.cnblogs.com/SanMaoSpace/p/3157293.html 在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何 ...
- Vue技术点整理-前言
前言 Vue版本说明:本文档编写时,Vue稳定版本为 2.6.10 本文档编写目的为:整理Vue相关生态的技术点.和开发中经常使用到的技术点,让开发者快速上手开发,提升开发效率 一,Vue开发工具:本 ...
- TKE用户故事 | 作业帮检索服务基于Fluid的计算存储分离实践
作者 吕亚霖,2019年加入作业帮,作业帮基础架构-架构研发团队负责人,在作业帮期间主导了云原生架构演进.推动实施容器化改造.服务治理.GO微服务框架.DevOps的落地实践. 张浩然,2019年加入 ...
- TKE 用户故事 | 作业帮 Kubernetes 原生调度器优化实践
作者 吕亚霖,2019年加入作业帮,作业帮架构研发负责人,在作业帮期间主导了云原生架构演进.推动实施容器化改造.服务治理.GO微服务框架.DevOps的落地实践. 简介 调度系统的本质是为计算服务/任 ...
随机推荐
- postman之get请求
get请求:
- [TensorFlow2.0]-手写神经网络实现鸢尾花分类
本人人工智能初学者,现在在学习TensorFlow2.0,对一些学习内容做一下笔记.笔记中,有些内容理解可能较为肤浅.有偏差等,各位在阅读时如有发现问题,请评论或者邮箱(右侧边栏有邮箱地址)提醒. 若 ...
- 关于数字化工厂&智能工厂建设 IT 经验总结
最近疫情闹得胆战心惊,前不久客户给我开了一个玩笑,当天我们同桌会议了一天,晚上客户回家之后就被隔离了,当他给我发这个消息的时候背都凉了一截,害怕之余在机场呆了一个晚上,捅乐鼻孔插了嗓子之后确认无事,后 ...
- CodeReview of JDK Source Code
jdk1.6.0_35/src.zip, only java package is reviewd(full package review caused a OutofMemory on java h ...
- Python语言系列-06-面向对象1
楔子 #!/usr/bin/env python3 # author:Alnk(李成果) # 人狗大战例子引入面向对象 # 版本1 def hero(name, sex, hp, ce, level= ...
- Java基础技术基础面试【笔记】
Java基础技术基础面试[笔记] String.StringBuilder以及StringBuffer三者之间的区别? 三者的区别可以从可变性,线程安全性,性能这三个部分进行说明 可变性 从可变性来说 ...
- contos7 安装weblogic10.3 _wls1036_generic.jar
环境:CentOS7+jdk1.8 weblogic下载地址1: http://www.oracle.com/technetwork/cn/middleware/weblogic/downloads/ ...
- SpringBoot监听redis订阅监听和发布订阅
前言 我们可以在redis中发布一条订阅到通道中,所有监听了这个通道的都可以收到这个发布的内容! redis订阅监听配置类 代码如下: RedisListenerConfig.java package ...
- C#多线程---ReaderWriterLock实现线程同步
一.简介 当我们需要对一个共享资源多次读取的时候,用前面Monitor的同步锁就没有必要了.因为同步锁每次只允许一个线程访问共享资源,其他线程都会阻塞. 此时,通过ReaderWriterLock类可 ...
- 六:使用Cookie进行会话管理
1.存储客户端的状态 因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户端的状态.会话技术是帮助服务器 记住客户端状态 2.会话技术 ...