8.31java学习

本文探讨了电商系统中商品排序、错误处理、序列化接口的应用,以及互联网软件架构的发展,重点关注了数据库连接、读写瓶颈及解决方案。提到了缓存的使用,如Caffeine和Redis,以及缓存带来的数据一致性问题、缓存穿透、雪崩和击穿。此外,还讨论了Nginx代理在负载均衡中的角色和避免数据库压力的策略。同时,涉及内存管理和JVM堆内存设置,以及GC的监控。
摘要由CSDN通过智能技术生成

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的详细信息)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值