把帆帆喂饱 把帆帆喂饱
2年前
登陆时间的优化
登陆时间的优化这是一个登陆的请求,在项目启动后首次调用,耗时近800ms,而第二次调用改接口时则只花费了29ms,性能有较大的提升空间。下面针对此问题进行一系列的优化。耗时排查项目启动后清空日志,然后调用接口,发现会创建一个dispatcherServle
Stella981 Stella981
3年前
Linux环境Shell脚本上传下载阿里云OSS文件
Linux环境Shell脚本上传下载阿里云OSS文件背景工作中由于我们项目生成的日志文件比较重要,而本地磁盘空间有限存储不了多久,因此考虑备份方案,我们原本打算保存在nas上,然而由于各种原因与运维沟通下来建议保存到oss上面。由于linux原生支持shell,而网上大多数方案基于pyt
Wesley13 Wesley13
3年前
AOP系列
AOP(AspectOrientProgramming),我们一般称为面向方面(切面)编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以SpringAOP为代表。本文
Stella981 Stella981
3年前
Kafka、Redis和其它消息组件比较
Kafka作为时下最流行的开源消息系统,被广泛地应用在数据缓冲、异步通信、汇集日志、系统解耦等方面。相比较于RocketMQ等其他常见消息系统,Kafka在保障了大部分功能特性的同时,还提供了超一流的读写性能。针对Kafka性能方面进行简单分析,相关数据请参考:https://segmentfault.com/a/1190000003985468(h
Stella981 Stella981
3年前
Spring AOP 实现
AOP(AspectOrientProgramming),我们一般称为面向切面编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务、日志、缓存、分布式锁等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以SpringAOP为代表。Spr
Wesley13 Wesley13
3年前
Mysql 更新语句执行流程
我们来看看更新语句的执行流程与查询流程不一样的是,更新流程涉及两个重要的日志模块,redolog和binlogredolog如果每一次的更新操作都需要写进磁盘,然后磁盘也要找到对应的那条记录,然后再更新,整个过程IO成本、查找成本都很高Mysql使用WAL机制来进行数据更新,WAL的全称是WriteAh
Wesley13 Wesley13
3年前
MySQL相关问题题
1.truncate、delete、drop的区别(1)truncate、drop是不可以rollback的,但是delete是可以rollback的。DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。TRUNCATETABLE则一次性地从表中删除所有的数据并不把单独的删
Wesley13 Wesley13
3年前
NOSQL之REDIS
Redis是NoSQL中比较常典型的一个非关系型数据库,在日常工作中也是最为常见的。Redis是一个由C语言编写的开源的、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、KeyValue数据库,并提供多种语言的API。!(http://www.limlhome.cn/blog/wpcontent/uploads/2018/03/%E6%9
Stella981 Stella981
3年前
Spring boot返回JSON类型响应及Content
一、背景服务器软件用Springboot开发,API调用的响应消息格式为JSON。对端调用接口后无法解析响应。抓包看Response的Body部分确实是正确的JSON格式字符串。二、问题分析继续分析日志发现对端收到的响应消息类型是text/plain?!对端解析先判断消息类型,这是无法按照JSON格式解析的。三、问题解决1\
Stella981 Stella981
3年前
Python中函数装饰器及练习
1)装饰器的理解:1、作用:在不改变原函数的基础上,给函数增加功能   2、返回值:把一个函数当作参数,返回一个替代版的函数3、本质:返回函数的函数4、应用场景:计时器、记录日志、用户登陆认证、函数参数认证2)无参函数装饰器  实例:被装饰的函数没有参数     执行结果为: