1、基于分布式的实时推荐系统的架构设计
1)存储用户行为日志,根据需要进行埋点
2)数据清洗
3)根据实时性采用离线或者离线计算推荐结果,分为人人推荐或者人物推荐
4)将结果推进缓存
2、高并发应用的性能优化方案(举例说明)
1)订单分配系统
需要接入多家电商平台的订单,数据格式不同,并发量也不同,系统达到峰值的时候,考虑进行横向扩容,可以使用扩充服务器的方案,也可以使用云方案。
2)使用缓存
大多数情况下系统高并发的最大瓶颈是数据库。数据库因为其内部的事务、锁等机制,天生难以达到很高的并发处理能力。我们需要使用应用层缓存来降低应用程序与数据库的交互次数。
对企业门户类的系统,页面的变动频率并不高,对用户来说也可以接受一定的延时,因此直接缓存最终渲染后的页面,跳过后台所有获取数据、组装页面的过程,能得到极高的响应速度。有需要的话可以使用CDN。
3)使用连接池
4)统一日志输出格式
5)分而治之,如果同时处理业务不能支持,可以考虑多线程
3、Redis高可用集群部署方案
redis cluster3.0自带的集群,特点在于他的分布式算法不是一致性hash,而是hash槽的概念,以及自身支持节点设置从节点。
资料整理
整理了一份java面试资料,包括:
- ActiveMQ消息中间件面试专题
- BAT80道面试题
- BAT面试的Mysql面试55题
- Dubbo面试专题
- JVM面试专题
- Kafka面试专题
- Linux面试专题
- memcached面试专题
- MongoDB面试专题
- MyBatis面试专题
- mysql面试专题
- Mysql性能优化面试专题
- Netty面试专题
- ……
网盘地址:
【地址获取:回复58】