- 博客(7)
- 收藏
- 关注
原创 Redis数据结构
一、简单动态字符串SDS struct 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
147
原创 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
207
原创 Kafka架构
一、Kafka架构 二、生产消费规则 一个生产者只给某个partition发消息(作为该partition的leader的broker),副本从leader复制消息 一个partition只被同个消费组中的一个消费者拉取消息,如果消费者较少则可能一个消费者拉取多个partition的消息 Kafka只保证该topic的消息在同个partition的消费顺序(可以把一个partition看成一个队列) 放入和消费哪个partition可由客户端的生产者和消费者决.
2021-03-24 13:43:26
236
原创 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
1423
原创 JSR303校验的全局错误处理
实现一个全局处理类,并对异常进行判断处理 方法有如下几种 1.实现HandlerExceptionResolver接口,实现其中的resolveException()方法。 public class GlobalExceptionResolver implements HandlerExceptionResolver { @Override public ModelAn...
2018-08-16 14:30:34
614
原创 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
28732
3
原创 关于requests模拟登录需要切换账号的学习笔记
由于还是python小白,打算写点项目增强一下封装能力 然后选择了爬虫爬取我们学校学生个人成绩并写入css文件中 需要用到模拟登陆获取cookie的方法 采用requests.session()方法在会话中保持sessionid的情况 刚开始参考了很多博主的做法 但是并没有在爬取结束之后关闭session 导致在切换了账号之后仍然保持了上一个Session的状态 最
2017-09-07 18:37:32
1229
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅