- 博客(7)
- 收藏
- 关注
原创 Redis数据结构
一、简单动态字符串SDSstruct sdshdr { int len; int free; char[] buf;}简单字符串结构被用于存储redis的key对象和String类型的value对象其中的free和len字段可以轻松的使得在该字符串被修改时判断是否需要扩容。为啥呢?因为redis的协议发送一个SET请求时格式开头会带上需要插入的value的长度,这样根据free以及len可以判断此时redis分配的数组大小是多少,需不需要扩容。对比于C语言的O(n)复杂度计算
2021-03-24 13:52:12
122
原创 JVM GC排查
1、定位java的进程 可使用普通的ps -ef|grep java 的形式 可直接用jps -ml 2、gc原因排查使用jstat -gccause [pid] 2s 每两秒输出上一次gc的原因以及当前gc的原因jmap -histo[pid] |head -n20 输出堆栈中类占用大小jmap -dump:format=b,file=gcdata.hprof [pid] dump堆栈文件到机器上...
2021-03-24 13:45:35
179
原创 Kafka架构
一、Kafka架构二、生产消费规则 一个生产者只给某个partition发消息(作为该partition的leader的broker),副本从leader复制消息 一个partition只被同个消费组中的一个消费者拉取消息,如果消费者较少则可能一个消费者拉取多个partition的消息 Kafka只保证该topic的消息在同个partition的消费顺序(可以把一个partition看成一个队列) 放入和消费哪个partition可由客户端的生产者和消费者决.
2021-03-24 13:43:26
208
原创 JAVA代理Proxy如何通过反射实现代理
1.实现一个简易的代理类java实现代理可以通过java.lang.reflect.Proxy接口结合java.lang.reflect.InvocationHandler来实现import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;public class ProxyHandler...
2018-08-17 12:12:01
1389
原创 JSR303校验的全局错误处理
实现一个全局处理类,并对异常进行判断处理方法有如下几种1.实现HandlerExceptionResolver接口,实现其中的resolveException()方法。public class GlobalExceptionResolver implements HandlerExceptionResolver { @Override public ModelAn...
2018-08-16 14:30:34
589
原创 spring中的Filter使用
Filter何时进行url过滤filter(过滤器)作用于在intreceptor(拦截器)之前,不像intreceptor一样依赖于springmvc框架,只需要依赖于serverlet。Filter在spring /springboot中如何使用1.自定义Filter比较原始的一种方法是定义一个MyFilter实现javax.servlet.Filter接口public ...
2018-07-31 15:26:27
28540
3
原创 关于requests模拟登录需要切换账号的学习笔记
由于还是python小白,打算写点项目增强一下封装能力然后选择了爬虫爬取我们学校学生个人成绩并写入css文件中需要用到模拟登陆获取cookie的方法采用requests.session()方法在会话中保持sessionid的情况刚开始参考了很多博主的做法 但是并没有在爬取结束之后关闭session导致在切换了账号之后仍然保持了上一个Session的状态最
2017-09-07 18:37:32
1185
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人