|
@@ -37,9 +37,9 @@
|
|
|
- 业务相对独立
|
|
|
- 需求变动频繁,需要增加减少字段
|
|
|
- 不需要强事务支持
|
|
|
-- Kafka:消息中间件;大型分布式项目是标配;分布式事务最终一致性
|
|
|
+- RabbitMQ:消息中间件;大型分布式项目是标配;分布式事务最终一致性
|
|
|
- 用户注册隐式初始化账户
|
|
|
- - 专辑数据上下架同步(MySQL跟ES数据同步)
|
|
|
+ - 专辑数据上下架同步(MySQL跟ES**数据同步**)
|
|
|
- 更新专辑/声音相同统计信息
|
|
|
- ElasticSearch+Kibana+Logstash/Filebeat 全文检索服务器+可视化数据监控:检索
|
|
|
- ThreadPoolExecutor/**ThreadPoolTaskExecutor**+CompletableFuture:线程池来实现异步操作,提高效率
|
|
@@ -84,39 +84,41 @@
|
|
|
|
|
|
影响服务器数量的因素有哪些?
|
|
|
|
|
|
-需求量
|
|
|
-
|
|
|
-性能层面-(服务器基础配置)
|
|
|
+需求量,性能层面-(服务器基础配置)
|
|
|
|
|
|
负载均衡: 模块数*2
|
|
|
|
|
|
可扩展性和弹性
|
|
|
|
|
|
-成本预算
|
|
|
+成本预算,服务器选择:2核4G,4核8G
|
|
|
|
|
|
监控
|
|
|
|
|
|
+所有服务:MySQL,Nacos,MongoDB,Redis.....
|
|
|
+
|
|
|
思路: 回答这个问题主要是展示出你在服务器数量决策方面的专业知识 而不是说一个具体的服务器数量
|
|
|
|
|
|
+
|
|
|
+
|
|
|
### 2.介绍功能模块
|
|
|
|
|
|
这块面试官的问法不同,有的会让你从你负责的模块中,挑选一个你认为做的最好的或者有亮点的模块去说,有的面试官是把你**负责的模块问个遍**,所以只要你简历上写了是你**负责的模块**,一定要去弄的非常**熟练**,如果你自己做的东西,你都不知道,那对于整个项目来说也就没必要再问了,所以这块是重点。在介绍自己负责的功能模块时。
|
|
|
|
|
|
可以准备哪些模块:
|
|
|
|
|
|
-**专辑模块、声音模块、认证模块(微信小程序登录)、订单模块、支付模块(微信支付、余额支付)、搜索模块、账户管理**
|
|
|
+**专辑声音模块、认证模块(微信小程序登录)、订单模块、支付模块(微信支付、余额支付)、搜索模块、账户管理**
|
|
|
|
|
|
-**如何选择模块:熟练的、技术涉及多的(redis、kafka)4个模块**
|
|
|
+**如何选择模块:熟练的、技术涉及多的(redis、RabbitMQ)4个模块**
|
|
|
|
|
|
回答问题标准:
|
|
|
|
|
|
-1、背景
|
|
|
+1、背景
|
|
|
|
|
|
-2、面临问题:业务&技术实际问题&解决方案
|
|
|
+2、采用什么技术栈解决什么问题。开发中遇到问题:业务&技术实际问题&解决方案
|
|
|
|
|
|
3、结果(项目、自我(复盘))
|
|
|
|
|
|
-### 3.上线后QPS,用户量、同时在线人数 并发数等问题
|
|
|
+### 3.上线后QPS,用户量、同时在线人数并发数等问题
|
|
|
|
|
|
**并发量:** 通常指的是一个系统或应用在任何给定时刻能够同时处理的用户请求或事务的数量
|
|
|
|
|
@@ -131,7 +133,7 @@
|
|
|
|
|
|
如何检测:
|
|
|
|
|
|
- 通常涉及一系列性能测试和监控策略 **(压力负载测试工具)JMeter** **Arthas(阿里巴巴监控JVM工具)**
|
|
|
+ 通常涉及一系列性能测试和监控策略 **(压力负载测试工具)JMeter** **Arthas(阿里巴巴监控JVM工具)** ,通过压测在5台服务器情况下每秒处理1000并发请求,确保接口平均耗时小于200ms。
|
|
|
|
|
|
**用户量:**
|
|
|
|
|
@@ -153,7 +155,7 @@
|
|
|
> 按照20倍PV计算:
|
|
|
> QPS=(33099*20*80%)/(86400*20%)= 30(平均QPS)
|
|
|
|
|
|
- 如何统计实时在线用户:
|
|
|
+**如何统计实时在线用户:**
|
|
|
|
|
|
使用如Google Analytics(收集用户互动数据)等第三方服务,可以帮助跟踪网站的实时用户数
|
|
|
|
|
@@ -167,8 +169,6 @@
|
|
|
|
|
|
项目开发了多久?
|
|
|
|
|
|
- 分类:
|
|
|
-
|
|
|
0-1 时间大概是在3~6个月
|
|
|
|
|
|
1--> 在职期间
|
|
@@ -195,9 +195,9 @@
|
|
|
|
|
|
### 4.Feign与OpenFeign的区别
|
|
|
|
|
|
-(旧版本)他们底层都是内置了Ribbon,去调用注册中心的服务。
|
|
|
+(旧版本)他们底层都是内置了**Ribbon(负载均衡组件)**,去调用注册中心的服务。
|
|
|
|
|
|
-(新版本)OpenFeign内置的负载均衡器:**NacosLoadBalancer**,默认负载均衡器算法:轮询
|
|
|
+(新版本)OpenFeign内置的负载均衡器:**LoadBalancer(负载均衡组件)**,默认负载均衡器算法:轮询
|
|
|
|
|
|
Feign是Netflix公司写的,是SpringCloud组件中的一个轻量级RESTful的HTTP服务客户端,是SpringCloud中的第一代负载均衡客户端。
|
|
|
|
|
@@ -264,7 +264,7 @@ nacos相较于zk与eureka来说,他会根据网络的**实时状态动态切换C
|
|
|
|
|
|
五、测试/回归
|
|
|
|
|
|
-- 编写测试用户
|
|
|
+- 编写测试用例
|
|
|
- 进行功能,性能测试
|
|
|
- 测试报告
|
|
|
|