注解+AOP改良项目中的监控
一、需求与思考背景:前一阵因为需求变更,在一些方法上添加了统一监控的代码,基本上是采用try/catch/finally在不影响原有代码逻辑的情况下添加,其结果就是项目中出现了大量的重复代码。思考:重复代码向来是优化工作中需要尽可能干掉的部分,此外想到今后还有可能对其他方法加/去
一、需求与思考背景:前一阵因为需求变更,在一些方法上添加了统一监控的代码,基本上是采用try/catch/finally在不影响原有代码逻辑的情况下添加,其结果就是项目中出现了大量的重复代码。思考:重复代码向来是优化工作中需要尽可能干掉的部分,此外想到今后还有可能对其他方法加/去
一、缓存特征 命中率 最大缓存存放空间 清空策略: FIFO先入先出 LFU,最少使用(可以保证高频数据有效) LRU,最近最少使用(优先保证热点数据) 二、本地缓存 静态变量 使用Zookeeper自动更新(保证一致性) 缺点:受到heap区影响,缓存数据有限
一、原文链接https://tech.meituan.com/distributed-system-mutually-exclusive-idempotence-cerberus-gtis.html 二、互斥性问题 多线程中的解决方案 ReetrantLock,利用CAS+C
一、HTTPS特点 在应用层(HTTP)和传输层(TCP)之间,使用SSL/TLS 用数字证书对服务器进行认证: 通过HTTPS建立安全的Web事务之后,浏览器会获取服务器的数字证书 通过验证颁发机构的签名确认是否“信任”(如果不信任会发出询问) 二、SSL连接过程 建立到
一、最常见写法 注意while条件 注意if/else中条件判断12345678910111213141516public static int binarySearch(int[] array, int n, int value) { int start = 0
一、制造各种溢出的场景 Java堆溢出: 操作:不停向List中add数据 参数:-Xmx -Xms 虚拟机和本地方法栈溢出: 操作:无限递归 参数:-Xss Tips:单线程情况下内存无法分配都提示StackOverflowError 如果是建立多线程导致内存溢出,在线
《消息队列设计精要》原文链接:https://tech.meituan.com/mq-design.html 一、消息队列的应用点 业务解耦:对于非核心的事务,做到“通知”,而非全部处理“完成”。 最终一致性: 强一致性:分布式事务(落地难成本高) 最终一致性:”记录“和”补偿
12345678910111213141516171819202122232425262728import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;public cl
Redis 线程模型: 套接字:套接字操作抽象成文件事件 I/O多路复用:监听多个套接字,把文件事件放入队列 文件事件分派:接收并传给相应的事件处理器 事件处理器:处理事件 Redis为什么快: 绝大部分请求是纯粹的内存操作(非常快速) 采用单线程,避免了不必要的上下文切
一、处理信息安全问题: CSRF跨站请求伪造:伪装来自受信用户的请求来利用受信网站 特性:利用网站对用户标识的信任,依靠用户标识危害网站 做法:欺骗用户的浏览器发送HTTP请求给目标站点 实现:可以通过IMG标签触发GET请求,利用它来实现CSRF攻击 防范(可使用拦截器实现