项目经验介绍

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技术一面整理的更多相关文章

  1. 腾讯云联合中国信通院&作业帮等首发《降本之源-云原生成本管理白皮书》

    在11月4日举办的2021腾讯数字生态大会云原生专场上,腾讯云联合中国信通院.作业帮等率先在国内重磅发布了<降本之源-云原生成本管理白皮书>(简称白皮书),基于腾讯云在业内最大规模的 Ku ...

  2. 作业帮上万个 CronJob 和在线业务混部,如何解决弱隔离问题并进一步提升资源利用率?

    作者 吕亚霖,作业帮基础架构 - 架构研发团队负责人.负责技术中台和基础架构工作.在作业帮期间主导了云原生架构演进.推动实施容器化改造.服务治理.GO 微服务框架.DevOps 的落地实践. 别路,作 ...

  3. TKE 用户故事 - 作业帮 PB 级低成本日志检索服务

    作者 吕亚霖,2019年加入作业帮,作业帮架构研发负责人,在作业帮期间主导了云原生架构演进.推动实施容器化改造.服务治理.GO微服务框架.DevOps的落地实践. 莫仁鹏,2020年加入作业帮,作业帮 ...

  4. .NET Web开发技术简单整理

    在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...

  5. 转载:.NET Web开发技术简单整理

    在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...

  6. .NET Web开发技术简单整理 转

    .NET Web开发技术简单整理 原文:http://www.cnblogs.com/SanMaoSpace/p/3157293.html 在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何 ...

  7. Vue技术点整理-前言

    前言 Vue版本说明:本文档编写时,Vue稳定版本为 2.6.10 本文档编写目的为:整理Vue相关生态的技术点.和开发中经常使用到的技术点,让开发者快速上手开发,提升开发效率 一,Vue开发工具:本 ...

  8. TKE用户故事 | 作业帮检索服务基于Fluid的计算存储分离实践

    作者 吕亚霖,2019年加入作业帮,作业帮基础架构-架构研发团队负责人,在作业帮期间主导了云原生架构演进.推动实施容器化改造.服务治理.GO微服务框架.DevOps的落地实践. 张浩然,2019年加入 ...

  9. TKE 用户故事 | 作业帮 Kubernetes 原生调度器优化实践

    作者 吕亚霖,2019年加入作业帮,作业帮架构研发负责人,在作业帮期间主导了云原生架构演进.推动实施容器化改造.服务治理.GO微服务框架.DevOps的落地实践. 简介 调度系统的本质是为计算服务/任 ...

随机推荐

  1. CC攻击和C2的区别

    [一]背景 今天被旁边姐姐问C2.CC是什么,虽然平时老看到这个词,身边也有自己写C2工具的大佬.但好像突然被问到有点懵,不知道怎么回答. [二]内容 CC ( Challenge Collapsar ...

  2. 解决 OnDropFiles 可能无响应的问题【转】

    大多数程序都有接收拖放文件的功能,即是用鼠标把文件拖放到程序窗口上方,符合格式的文件就会自动被程序打开.最近自己对编写的程序增加了一个拖放文件的功能,在 Windows XP.Windows Serv ...

  3. JUC学习笔记(五)

    JUC学习笔记(一)https://www.cnblogs.com/lm66/p/15118407.html JUC学习笔记(二)https://www.cnblogs.com/lm66/p/1511 ...

  4. Arp欺骗和DNS投毒

    中间人攻击 ARP缓存攻击 ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的网络层,负责将某个IP地址解析成对应的MAC地址.简单来说,就 ...

  5. windows的基本命令和环境配置

    刚开始学的时候整理的基本知识 一.windows的基础知识: 1.常用的DOS命令 盘符切换: D: 回车 进入目录: cd xxx 回退目录 返回到上一级: cd ..  返回到根目录: cd / ...

  6. Linux统计文本中某个字符串出现的次数

    常用的有如下两种方式: 1.VIM 用vim打开文件,然后输入: :%s/hello//gn 如下图: 图中的例子就是统计文本中"hello"字符串出现的次数 说明: %s/pat ...

  7. 使用POI把查询到的数据表数据导出到Excel中,一个表一个sheet.最详细!!!

    一.需求 我们会遇到开发任务: 经理:小王,你来做一下把数据库里的数据导出到Excel中,一个表是一个sheet,不要一个表一个Excel. 小王:好的,经理.(内心一脸懵逼) 二.前期准备 首先我们 ...

  8. WPF 获取主线程

    WPF线程获取UI线程   WPF中只能是UI线程才可以改变UI控件相关,当采用多线程工作时,可用以下代码获取 UI线程进行操作: App.Current.Dispatcher.Invoke((Act ...

  9. 【java虚拟机】jvm调优

    转自:https://www.cnblogs.com/starhu/p/6400348.html?utm_source=itdadao&utm_medium=referral 堆大小设置JVM ...

  10. 九:Decorator设计模式

    二.使用Decorator设计模式增强request对象 Servlet API 中提供了一个request对象的Decorator设计模式的默认实现类HttpServletRequestWrappe ...