自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

晴天

小鸡快跑!!!

  • 博客(22)
  • 收藏
  • 关注

原创 深入探究Protostuff枚举类型的序列化

问题解决了之后,又琢磨了一下源码,发现 Enum类型的对象会隐式继承 java.lang.Enum,公司使用的rpc序列化协议是 Protostuff,在序列化和反序列化过程中使用的是 java.lang.Enum#ordinal 映射(类似数组的角标)。不过如果是这么明显的问题,在联调和测试阶段肯定会发现的,那么没有暴露出来,大概率是测试环境没有问题。看到问题时,我的内心毫无波澜,因为经常处理线上类似的问题,但了解业务后发现是上个版本经我手对接的新客弹窗商品算价,内心有一丝小慌,但表面看还是稳的一匹。

2023-12-28 12:15:49 967

原创 Lombok的踩坑系列之@Builder

日常我们业务开发中有很多小的需求,只需要增加一个属性就可以解决,此时就要注意历史逻辑中是否用 Lombok 的 Builder方式创建对象,

2023-12-05 22:01:50 569

原创 人生苦短,我用Python-----爬取视频

人生苦短,我学python! 上一篇 是爬取图片的小程序,今天来写一下爬视频的小程序. 我自己在写爬视频的时候,搞环境真的是搞了好久,更具网上的各个版本的代码,看看这个,看看那个,很多都能实现,但是他们的版本库可能和你的版本库是不一样的,你的版本就引入不了他使用的包.我这篇文章使用的是 3.8的版本,使用的idea是PyChar...

2020-01-13 17:03:52 368

原创 人生苦短,我用Python-----爬取图片

人生苦短,我学python! 最近准备看看机会,看了好多的jd上,都要求会一点python,shell脚本,就在空闲的时间里面学习了一下,刚刚入门,还是一个小菜鸡,不过能写一两个小爬虫了,嘿嘿嘿 在这里给大家推荐一下我自学的网站,讲的很简单,https://www.liaoxuefeng.com/wiki/1016959663602400,那就是...

2020-01-13 16:45:15 962

原创 RabbitMQ中的channel 和 connection的关系

记录一个自己想到的问题:rabbitmq 有一个管理界面,界面上有connection 和 channel ,问题1: 这两个对象有啥关系呢?问题2: netty的核心对象 也有一个channel,这个和rabbitmqchannel有什么联系么? rabbitmq的connections 展示的是一个程序的连接,这个程序和rabbitmq的connection只会...

2019-11-27 10:06:00 2735

原创 Thread类中的方法:join()、sleep()、yield() wait()之间的区别

参考内容:https://blog.csdn.net/xzp_12345/article/details/81129735 https://www.jianshu.com/p/19f861ab749e join()方法会释放1. Join()方法Thread的非静态方法join()让一个线程等待另外一个线程完成才继续执行。如果线程A执行体中调用B...

2019-10-09 13:37:50 789

原创 mysql的查询优化

1. 覆盖索引表 user,id(主键),name(普通索引)当我们想查询 name = 张三 的id 时我们可以使用select * from user where name = '张三'这条语句的执行过程为:先去索引树name中找到张三拿到张三的id,再去主键索引树中根据id拿到这条记录,而我们只是需要它的id的,使用这条语句会进行一次回表操作,所以我们可以改为下面语句:se...

2019-09-03 11:03:33 196

原创 HashMap中的hash算法总结

参考:https://www.cnblogs.com/zxporz/p/11204233.html数学知识回顾 << : 左移运算符,num << 1,相当于num乘以2 低位补0 举例:3 << 2 将数字3左移2位,将3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的...

2019-08-27 23:15:35 15858 10

原创 HTTPS 如果保证安全建立连接

参考资料: https://blog.csdn.net/sessos/article/details/87785044https://www.cnblogs.com/liyuhui-Z/p/7844880.htmlhttps://www.jianshu.com/p/0e153f62fe32HTTPS的建立连接的流程在使用HTTPS是需要保证服务端...

2019-08-08 10:56:05 183

原创 死信队列----RabbitMQ

最新项目有一个场景,提交订单后,有一个15分钟的支付超时时间,有同事提出 直接一个定时任务轻松搞定, 但是不优雅.那么怎么优雅的解决这个问题呢? 团队的大佬,我源哥建议使用 死信队列,但是项目还没有实践,我这个 小菜鸡就不能抄作业了,那就只能放大招啦(百度),成功搞定. 先来完整说一下项目的流程,有一个15分钟的支付超时,还有一个24小时的订单服务超时,需要写一个监...

2019-07-04 12:00:42 220

原创 metLife项目学习到的思路

最近公司的一个项目,本人并没有参与,但是也了解一点,在其中学习了一些解决问题的思路. 这个 项目就是metLife,项目背景是:一个保险公司需要给他们的客户整一个体检的服务,我们公司是专业搞体检的,想要在微信的小程序中实现用户登录,并且选择项目的体检,挂号,问诊等服务. 1.项目的需求是200的并发,最大峰值是300并发. 对于并发量我...

2019-03-12 17:48:34 632

原创 多线程 之 线程池的深入理解

本文参考资料:https://www.jianshu.com/p/87bff5cc8d8c线程池的执行流程 首先,我们假设创建一个线程池:ThreadPoolExecutor pool = new ThreadPoolExecutor(4, 8, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable&...

2019-03-12 15:54:05 177

原创 mysql为什么使用B+树作为索引的结构

在说B树之前,先来说一下数据库吧. 数据库就是存数据的,查询数据要快,就需要给数据建立索引,就想书要建立目录一下,建立了索引,那这个索引是怎么排序呢?或者说索引的结构是什么样的呢? 在算法中,有一个大家都只知道的算法就是二分法,在大数据量的是时候查询效率是比较高的. 说到二分法在数据结构中有一种二叉树,查询原理就是基于二分法,但是二叉树有缺陷,就是容易"偏瘫",数据不能...

2019-03-04 15:13:37 4967

原创 zk和eureka的区别

参考资料:https://www.cnblogs.com/snowjeblog/p/8821325.html https://blog.csdn.net/w1028556865/article/details/81127885 首先,一项技术被发布出来,被广泛应用,肯定是有道理的,一定有它适合的场景,zk保证的是一致性和分区容错性,eureka保证的...

2019-02-12 17:24:27 14883 4

原创 下载ZIP压缩包(压缩多个文件)

下面的方法是将图片服务器或者文件服务器的多个文件,并压缩成zip包,提供下载功能/** * 获取 文件 流 * @param url * @return * @throws IOException */private void getFile(String url ,ZipOutputStream zipOut ,String name) throws IOExcepti...

2019-01-23 16:43:21 2638

转载 关于I/O模型的一些理解

参照的文章:http://www.cnblogs.com/xrq730/p/5074199.htmlI/O模型在开始NIO的学习之前,先对I/O的模型有一个理解,这对NIO的学习是绝对有好处的。我画一张图,简单表示一下数据从外部磁盘向运行中进程的内存区域移动的过程:这张图片明显忽略了很多细节,只涉及了基本操作,下面分析一下这张图。 用户空间和内核空间一个计算机通常有一定...

2019-01-17 14:11:12 277

原创 Redis分布式锁的实践

首先说一下场景,不根据实际场景讲的技术都是吹流弊,没人反对吧,咳咳 医院挂号,需要尽量高效的显示最新的数据,根据不同的科室设置不同的缓存时间,因为科室的热门程度也不一样嘛,这里本次只分享我学习的一些心得. 思路:号源的缓存是30分钟,然后在第25的时候,如果还有患者访问某个部门的号源,就开启一条异步线程直接查询最新的号源,重新放入缓存中.如果没有,就直接让缓存失效,这样就区...

2018-12-29 18:51:13 833

转载 redis.conf配置详细解析

转载:http://www.cnblogs.com/kreo/p/4423362.html # redis 配置文件示例 # 当你需要为某个配置项指定内存大小的时候,必须要带上单位,# 通常的格式就是 1k 5gb 4m 等酱紫:## 1k  =&gt; 1000 bytes# 1kb =&gt; 1024 bytes# 1m  =&gt; 1000000 bytes# 1...

2018-12-17 09:29:32 189

转载 如何遍历一棵二叉树?

二叉树的遍历分为三种:前序遍历 中序遍历 后序遍历前序遍历:按照“根左右”,先遍历根节点,再遍历左子树 ,再遍历右子树 中序遍历:按照“左根右“,先遍历左子树,再遍历根节点,最后遍历右子树 后续遍历:按照“左右根”,先遍历左子树,再遍历右子树,最后遍历根节点 其中前,后,中指的是每次遍历时候的根节点被遍历的顺序 ============二叉树遍历的java实现package 树...

2018-10-11 15:31:29 3704

转载 Java并发编程:线程池的使用

Java并发编程:线程池的使用  在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:  如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。  那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?  ...

2018-09-25 16:53:43 179

转载 Zookkeper的内部选举机制的理解

http://www.cnblogs.com/leesf456/p/6107600.html一、前言  前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举。二、Leader选举  2.1 Leader选举概述  Leader选举是保证分布式数据一致性的关键所在。当Zookeeper集群中的一...

2018-09-19 10:32:06 392

原创 设计模式---单例模式

静态内部类()静态内部类方式在Singleton类被装载时并不会立即实例化,而是在需要实例化时,调用getInstance方法,才会装载SingletonInstance类,从而完成Singleton的实例化。在这里,JVM帮助我们保证了线程的安全性,在类进行初始化时,别的线程是无法进入的public class Singleton { private Singleton() ...

2018-07-24 20:14:39 180

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除