One Trick Per Day
初始化Map建议用Guava指定预期大小,避免扩容;禁用Executors创建线程池,防止OOM,应手动通过ThreadPoolExecutor或Guava方式创建;Arrays.asList返回不可变集合,禁止修改操作;遍历Map优先使用entrySet或forEach提升性能;SimpleDateFormat非线程安全,建议用ThreadLocal或JDK8新时间API;并发修改记录需加锁,推荐乐观锁配合version机制。
解释对称加密、非对称加密、哈希摘要
对称加密使用同一密钥进行加解密,速度快但需安全保管密钥;非对称加密分公钥和私钥,公钥加密、私钥解密,安全性高但速度较慢;哈希摘要提取数据特征,用于校验完整性,特征不同即为不同数据。
Session会话跟踪的原理
Session是服务端会话跟踪技术,用户首次访问时服务器创建带有唯一ID的Session对象,数据存于服务端。该ID通过Set-Cookie响应头(JSESSIONID)传给浏览器,后续请求自动携带,实现会话保持。其底层依赖Cookie传递Session ID,安全性高,但集群环境下存在共享难题。
大模型应用开发
大模型应用开发需通过API与模型交互,企业可选择开放API、云平台或本地服务器部署。开放API使用便捷但存在安全与成本问题;云部署易维护但仍有隐私风险;本地部署安全性高、长期成本低,适合企业级应用,不建议个人电脑部署。
HTTP协议中请求方式GET 与 POST什么区别
简介:GET和POST是项目开发中最常见的两种请求方式。GET通过URL传递参数,长度受限且安全性低,适用于获取数据;POST通过请求体传参,更安全,适合提交数据。现代项目多采用RESTful风格,统一通过URL定位资源,结合GET、POST、PUT、DELETE等方法实现资源操作,结构清晰、易于维护。
第十章 常用组件1、nginx相关
正向代理是客户端通过代理访问外部服务器,隐藏客户端身份,用于访问受限资源或保护隐私;反向代理则是服务器前的代理,接收客户端请求并转发至内部服务器,隐藏真实服务器,实现负载均衡、安全防护与缓存加速,提升系统性能与安全性。
第五章 spring框架
Spring的IOC(控制反转)将对象创建交给容器管理,避免手动new;DI(依赖注入)则让容器自动注入所需对象。通过@Controller、@Service等注解声明Bean,使用@Autowired或@Resource实现注入。默认单例Bean无并发控制,若无状态则线程安全,否则需自行保证。
优雅关闭:如何避免服务停机带来的业务损失?
本课讲解RPC中“优雅关闭”的重要性,避免服务重启导致调用方请求失败。通过添加关闭钩子、设置请求挡板、引用计数器及超时机制,确保正在处理的请求完成,新请求被拒绝并安全重试,实现业务无损上下线。
业务分组:如何隔离流量?
本文通过类比交通道路划分,讲解RPC中如何通过分组实现流量隔离。随着业务增长,统一服务池易因某调用方流量激增而影响整体稳定性。通过分组,可为不同调用方分配独立服务实例池,保障核心业务。同时支持主备分组切换,提升高可用性,兼顾隔离与容灾。
异常重试:在约定时间内安全可靠地重试
本节讲解RPC框架中的异常重试机制,重点探讨如何在超时控制、节点避让和异常判定的基础上实现安全可靠的重试。需确保业务逻辑幂等,设置重试白名单,并在每次重试前重置超时时间,避免耗时超标,提升系统容错性与稳定性。(239字)