1.电商产品一般按照sort(自定义的排序序号)排序
2.参数问题都是报400错误
3.类中有属性,并且其中方法都是需要这些属性的需要实现序列化接口Serializable
4.程序出现500就是有异常没有处理,去try catch
-----互联网软件架构发展历程--------------
一.FAQ(. 常见的问题项目与对应问题的解答)?
1) Web服务如何连接数据库服务器? (ip:port,例如192.168.100.12:3306)
2)为什么Web服务连接不上我们的数据库服务器?(网络不通,IP地址不正确,端口不正确,服务宕机了(网站、游戏和一些网络应用的服务器非正常运行的一种状态),防火墙,连接已用尽-数据库支持的连接数量是有限的)
3)为什么随着用户的增长,访问数据库的请求越来越多,此时会出现什么问题?(读写瓶颈)
4)何为读写瓶颈?(访问数据库的请求就会越多,线程多了,CPU处理不过来了)
5)如何解决读写瓶颈问题呢?(尽量在上层将请求拦截掉,减少访问数据库的请求)
二.FAQ
1)本地缓存的选型?(Caffeine(京东的)/Guava/自己写/。。..。)
2)分布式缓存?(Redis/Memcached/....)
3)使用缓存可以解决什么问题?(提高查询的效率/减少对关系型数据库的访问-mysql)
4)使用缓存能会带来哪些负面问题?(数据一致性问题,缓存穿透/缓存雪崩/击穿
5)为什么应用了缓存会有数据一致性问题?(数据库数据更新了,缓存中数据还没更新)
6)什么是缓存穿透、缓存雪崩、缓存击穿?
1.缓存穿透(例如:查询id=-1本地缓存和数据库都没有)
2.缓存雪崩(当在缓存中数据同时失效,数据库处理不了这么多请求)
3.击穿(雪崩中的一种,id值本地缓存中失效了去数据库中查询))
7)假如让你去设计一个缓存要考虑哪些问题?(数据的存储结构/数据的淘汰算法/日志记录/定时刷新/线程安全/序列化)
8)什么是深拷贝、浅拷贝?(深拷贝就是拷贝内容-可以理解为序列化和反序列化,浅拷贝一般拷贝地址)
三.FAQ
1)Nginx代理的是谁?(服务端的服务器)
2) Nginx代理的作用什么?(请求转发,负载均衡)
2.1)hash算法可以只让Nginx通过第一个web服务器
3)这种架构下web服务器多了,可以承载的并发也大了,并发多了请求的类型也就多了,此时就会有大量的请求击穿缓存去访问数据库,数据库的压力就会巨增,那如何解决这个问题呢?
四.FAQ
//FAQ:假如现在内存比较小,不断向内存放入数据会出现什么现象?
//1)可能会触发GC
//2)内存溢出
//FAQ:程序启动前,如何设置JVM堆内存大小?
//1) -Xmx6m最大堆大小
//2) -Xms6m最小堆(初始堆大小)
//FAQ:程序运行时如何看到触发了GC操作?
//1) -XX:+PrintGC(打印GC基本信息)
//2)-XX:+PrintDetailGC(打印GC的详细信息)
8.31java学习
于 2022-08-31 18:46:14 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)