自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (6)
  • 收藏
  • 关注

原创 lua脚本学习

先这样,一点一点补

2022-06-08 17:16:38 305 1

原创 排查一次GC问题

GC问题的排查有两个方面的入手点(1)排查GC问题的关键还是搞清楚内存到底被什么东西占用着,什么东西没有释放,内存是怎么分布的。(2)同时GC是一个动态的过程,又要结合代码的运行过程,去判断什么到底什么情况下会出现问题,并最终得到修改问题的地方如果你熟悉代码,那么GC过程理应是白盒,那么相对而言,你发现问题的过程很大程度上是围绕第一点去做,也更快速如果你不熟悉代码,那么GC过程就是黑盒,那么你的过程最好还是从(1)到(2),先搞清楚内从里的内容,再去考虑代码中有可能出现问题的点,再结合运行时

2022-03-28 20:30:04 1126

原创 阶段总结(2)——今年计划

往下计划有很多,总结一下三个方面,一个是继续在mq和rpc上做深入,毕竟mq和rpc是分布式的基础一个是在JVM层面,找优化方式,Arthas我觉得有必要整体学习一下,我觉得空间还是不少的,配合JVM层面的就是服务器内存管理,这块又可以扩展到云原生底层,包括通信,内存管理等等,这两个方面还是需要深入最后一个是在数仓上/海量数处理上有了解计划是这样,mq的话还是要看看源码,虽然大体上概念都有,但是细节上还是差点,这块还得感谢xxl,通过各式各样的比较简单基础的分布式框架,至少让开发的有迹可循,这是

2022-02-16 13:57:14 1027

原创 阶段总结(1)

年后先做一些总结吧,不着急新东西主要是项目框架上的总结在DDD思想下:一个module下的项目分层主要是:(1)application:包含: api,job(定时任务),service(app层service)(2)commonutil,config,exception,enums,constant,validate等个人倾向于把apollo的config以namespace做封装,保证namespace和java上映射的一致性,命名可以以apollo开头,类似enums以

2022-02-10 14:46:58 209

原创 算法从入门到放弃——第十期 归并

最近遇上一个某宇宙厂的面试题:进程pid 进程开始时间 进程结束时间 cpu使用率1 1:00 2:00 102 1:20 3:00 153 2:30 4:00 30题目类似这样,要你求cpu使用率最高的时间段题目其实不难,想要实现有简单的方式,有难的方式。拿...

2022-02-08 10:15:26 321

原创 每日一刷——day1

今天看了一下校招算法题,没想到比社招算法题离谱的不止一点点,基于此,我们开始熟练掌握一部分有可能必出的代码,背一背八股,马爸爸求你中一回吧1、昨日写过的堆排,把int[]转成堆排 public static void main(String[] args) { int[] arr = {1, 4, 7, 8, 9, 6, 5, 2, 3}; heapSort(arr); System.out.println(arr); } p

2022-01-18 08:36:13 76

原创 算法从入门到放弃——第九期 PriorityQueue大顶堆和小顶堆

我不再介绍堆排序的基本概念,我只是从实际使用过程说说,对JAVA而言,有现成实现PriorityQueue。那么先说一下概要:1、堆排序的实现,包括你往搜索树里插入元素,和时间复杂度考虑2、topk问题的解决3、leetcode相关题目一、堆排序实现:...

2022-01-15 21:05:22 1059

原创 大厂技术博客学习(2)​——5G时代下淘宝直播高清低延时技术jie秘

5G时代下淘宝直播高清低延时技术揭秘 - 知乎csdn现在特殊字符监测很要命哦,汉语拼英要熟练哦~我们之前也说过斗鱼平台光一个季度在带宽和流量上花费超过1.8亿,其实还有一点没有说,就是我觉得之所以以斗鱼战旗虎牙为代表的二代直播平台没有在三代直播平台中杀出重围的一大原因,就是在移动端的战略眼光,这也是抖音杀出重围的关键因素,当然现在腾讯通过游戏版权long断和移动端流量的布局,本想促成斗鱼虎牙合并,这也是理所应当,毕竟二代直播优势在下降,主播红利在过期,但不可否认的是,从互联网业务来看,移动端业务和

2022-01-09 17:42:17 506

原创 算法从入门到放弃——第八期 二分查找

二分查找是logn复杂度的,对于有序数组而言,二分已经是非常合理的选择了,核心还是使用了数组的有序性一个简单的二分查找模板:leetcode 704 简单题704. 二分查找 public static int search(int[] nums, int target) { int left = 0; int right = nums.length - 1; int result = -1; while (left &..

2022-01-05 22:53:38 77

转载 填坑分布式锁

之前有写过ZK分布式锁,ZK天然分布式锁所以省去了很多中间操作,还有Redis和数据库两种形式坑填一填,本身没有难度,就是熟悉与否。巨人肩膀:https://segmentfault.com/a/11900000402112211、分布式锁应用的场景有哪些?分布式锁是什么,应该具备哪些特点?锁的作用是保证多个进程或线程在并发操作操作共享资源时资源的正确性。在分布式应用中,一个服务需要部署多个实例,对于操作分布式环境下的共享资源,就需要使用分布式锁来保证操作的正确性。分布式锁应该具有特点(

2022-01-03 17:10:32 70

翻译 大厂技术博客学习(1)

与其在各个抄来抄去的技术博客上看,不如直接看大厂博客,这是我觉得看过整体质量最高的博主了。设计模式最佳套路1—— 愉快地使用策略模式原文:设计模式最佳套路1—— 愉快地使用策略模式 - 知乎if-else 不超过 2 层,块中代码 1~5 行,直接写到块中,否则封装为方法 if-else 超过 2 层,但块中的代码不超过 3 行,尽量使用卫语句 if-else 超过 2 层,且块中代码超过 3 行,尽量使用策略模式这里的用法,策略+spring,利用ApplicationContextA.

2022-01-01 17:02:53 292

原创 奇奇怪怪问题(2)

一、Springboot自动装配原理SpringBoot自动配置的原理及实现_牧竹子-CSDN博客_springboot自动配置的原理二、Spring扩展点在springCloud中的应用Spring扩展点在微服务组件中的应用_liuhehe的博客-CSDN博客三、Spring Bean生命周期Spring Bean的生命周期 ---附详细流程图及测试代码_Kerwin的博客-CSDN博客_bean生命周期流程图s​​​​​​​sSpring中bean的生命周期(最详细)_goodluc

2021-12-30 23:35:13 160

原创 算法从入门到放弃——第八期 分词

今天周末休息,娱乐娱乐在看NLP,NLP中最基本的过程之一是分词,也是构建LM并训练词向量的基础。这里面有几个问题,第一,就是分词问题,这里我们不提IK,JieBa这些中文分词器,我们只去讨论leetcode中的题目,从简单的动态规划入手,到bigram,这是第一部分第二,比如说一个词和另一个词的相似程度,比如app,apple,apply的相似程度我以怎样的方式去表示。最简单的一种方式就是比如今天要说的编辑距离。比如我认为apple变为apply需要编辑1个字符,而apple变为app需要改变两个

2021-12-28 00:06:59 256

翻译 奇奇怪怪问题(1)

问题一:对String=“abcd”,在不同的JVM里,他的hashcode一样么?答案:String的hashCode算法只与字符串的内容有关,同时Integer、Double等对象的hashCode值也只与其value有关。public int hashCode() { int h = hash; if (h == 0 && value.length > 0) { char val[] = value; for (int ...

2021-12-27 22:37:03 115

原创 redis技术总结(2)—— Hyperloglog通俗版总结

Redis提供了hyperloglog算法的实现,为了通俗易懂讲人话,我先省去大量原理讲过程,再提原理中几个重要的点,当然有更多精力和能力的还是直接看数学推导比看csdn强。1、hll目标首先,hyperloglog的场景来源是:当你用hashmap或set进行基数统计,计算当日来访问网站的UV时,会产生一个问题就是集合的大小随着访问人数的增多,线性增长,到访问量很多的时候就已经存在问题了。一般而言,优化一个算法的方式大概率就是(1)完全换一种方式(2)近似计算,hyperloglog就是一

2021-12-25 21:40:07 497

原创 直播技术总结

自己在几年前做过直播相关的内容,但是那时候知识体系并不完善,很多东西一知半解往后这几年对很多技术实现的东西有了概念之后,知识体系完善的速度就快了,想回去补一补当时直播领域的坑我心里的直播有几个层面的问题要解决(1)传统业务层面的,用户管理,权限管理,好友管理(2)互动相关的,直播间管理,直播弹幕,(3)支付相关的,本平台消费,三方渠道购买支付(3)视频相关的,视频采集,视频编码,编码传输,视频存储(4)存储相关的,海量视频存储每一个业务都需要庞大的团队去支持,因为体量和移动端

2021-12-19 20:37:25 408

原创 中国风代码(1)——XXL-JOB

任务队列,延迟任务,这些往往是生产者消费者模型中不可缺少的一种模式主流的开源消息消费框架,Kafka,RocketMQ里都有延迟消息的应用场景,RocketMQ开源版实现了18个等级的延迟队列,但是并没有任意延时时间的实现,Kafka是基于时间轮实现了延迟消息的功能。除了消息队列框架,任务框架本身也是延迟任务的应用,开源的xxljob就是这么一个基于数据库的任务调度框架至于为什么从xxljob上入手,还是从源码复杂度上而言,xxljob已经是最简单的时间轮实现了。直接进入主题1、时间轮的

2021-12-18 17:27:07 646

原创 算法从入门到放弃——第七期 手写LRU,从LeetCode146入手

很早以前了,有个面试官问我怎么实现一个LRU,那时候我懵懂无知,回答就是不知道。很多人接触LRU或许是从虚拟内存页面的局部置换算法开始,也或许是从Redis的缓存淘汰策略开始。今天再从LeetCode146手写入手,复习一下。对了,学算法有一个我认为很重要的点是优先在脑海中建立正确的路线,包括任何学习都一样,你爸妈告诉你好好学习,是因为好好学习确实是正确的路线,在你脑海中建立正确的观点之后你自己就能强化过程,在到一定阶段之后,你可以脱离老师独立探索,甚至为学术做出贡献,成为博士,总之我想表达的是,先站在

2021-12-13 20:25:32 119

原创 细读经典——ZK的补充:ZK的Java操作及分布式锁的实现

之前有写过Zookeeper细读经典,今天写写用Curator操作ZK。实际上,使用JAVA操作ZK的方式还有JAVA API和ZKClient两种方式,但总体而言,Curator方式最简单,这部分时细读经典里

2021-12-12 23:58:10 1879

原创 算法从入门到放弃——第六期 岛屿(II)

算法从入门到放弃——第四期 岛屿_u014783007的博客-CSDN博客之前

2021-12-06 16:25:08 93

原创 算法从入门到放弃——第五期 单调栈

单吊顾名思义,就是听牌之后胡一张的打法。。。。拿错课本了不好意思大部分的算法题你做不出来的原因,都是你没找到合适的方法,更简单的说就是你没见过更合适的方法,更关乎知识的广度,比如今天所说的单调栈大部分算法只要你脑袋里面能流畅的想象出整个过程,写出代码debug一下,基本就能AC,单调栈的代码很简单,但是却不是那么好复现过程。leetcode里面最典型的题就是利用单调栈解找下一个最大的问题,理解单调栈有点像你最开始理解dp数组一样,你得明白它含义是什么,搞清楚什么含义,会更快,上题目:给定一

2021-12-05 15:47:25 57

原创 Mysql与RAID

昨天再看民用NAS,里面提了RAID,突然想起之前一直有个Mysql利用RAID进行优化的坑,今天填坑参考资料主要来自于《高性能Mysql》和《Innodb存储引擎》raid 基础的0,1,2,3,4,5,6,7,10等模式我不在多说,只记录能够进行性能优化的部分。《Innodb存储引擎》1、开启RAID write back功能,RAID两种写入模式,write back和write through,write back可以将数据先写入RAID缓存中,不用等待物理磁盘实际写入完成,提升了整

2021-11-24 10:58:23 428

原创 docker搭建kafka集群+ZK

在写kafka之前,docker搭建一套kafka集群环境,用的腾讯云,这里真的不得不吐槽一下腾讯云的体验比阿里云强,阿里云要不你反思反思?1、创建子网,管理方便一点docker network create --subnet 172.19.0.0/16 --gateway 172.19.0.1 zookeeper_kafka2、创建docker-compose.yml文件,cat vi都可以version: '3.3'services: zookeeper: image

2021-11-22 15:27:31 1399

原创 算法从入门到放弃——第四期 岛屿

最近细读经典系列一直托更,主要原因就是刷了很多算法题,为了跟上更新节奏,我们补一补算法入门到放弃系列。前面字符串拆分多是动规,今天我们搞点DFS,不科普基础支持,直接上题。题前说一点小结论:DFS可以有返回值,且一定是根据我们的需求去构建DFS,算法的过程可以有模板,但是算法的细节一定是按需求,需求这里要求和,就返回int,需求是在DFS里改变状态,那就void,总之,DFS的返回值一定是按照需求的,不要死记硬背,觉得DFS没有返回值。普通的DFS最常见的就是树的DFS,也是算法里相对简单的,上

2021-11-21 20:08:32 3032

原创 算法从入门到放弃——第三期 单词拆分

leetcode上很多单词拆分的题,汇总一下看看573给你一个字符串 s 和一个字符串列表 wordDict 作为字典,判定s 是否可以由空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。示例 2:输入: s = "applepenap.

2021-11-15 21:47:50 90

原创 算法从入门到放弃——第二期

二叉树回溯全排列: //回溯树型全排列 public static void dfs(TreeNode currentNode, List<Integer> templist, List<List<Integer>> result) { if (currentNode == null) { return; } templist.add(currentNode.val);

2021-11-12 20:48:53 4132

转载 RocketMQ———文件存储

原文:RocketMQ源码详解 | Broker篇 · 其三:CommitLog、索引、消费队列 - en_oc - 博客园写一篇笔记吧,为了更好的理解消费者。三个文件:CommitLog、IndexFile、ConsumerQueue

2021-11-12 13:51:15 418

转载 GC(2)转

G1常用调优参数:1暂停时间:用-XX:MaxGCPauseMillis来指定,默认值200ms。这是一个软性目标,G1会尽量达成,如果达不成,会逐渐做自我调整。对于Young GC来说,会逐渐减少Eden区个数,减少Eden空间那么Young GC的处理时间就会相应减少;对于Mixed GC,G1会调整每次Choose Cset的比例,默认最大值是10%,当然每次选择的Cset少了,所要经历的Mixed GC的次数会相应增加。同时减少Eden的总空间时,就会更加频繁的触发Young GC,也就是会加快

2021-11-08 00:16:24 91

原创 GC(1)

总结一下GC中可能用到的命令做个备用把(1)打印GC,使用G1-XX:+PrintGCDetails -XX:+PrintGCTimeStamps-XX:+UseG1GC(2)生成日志文件,在target目录下-XX:+PrintGCDetails -verbose:gc -XX:+PrintGCTimeStamps -Xloggc:gc.log(3)开启压缩指针参数-XX:+UseCompressedClassPointers-XX:+UseCompres..

2021-11-07 20:58:40 154

原创 细读经典——RocketMQ技术NM(3)

三、RocketMQ消息存储对于高可用消息中间件而言,持久化是必须的技术。(可用和高可用我觉得有必要区分,明显的他们关注点不一样)RocketMQ持久化包含三个文件:CommitLog,ConsumerQueue和IndexFile。3.1设计概要RocketMQ统一将所有主题的消息存在一个文件中,从而保证broker从producer处拿到消息之后是顺序写入磁盘的,由此提高系统的吞吐量。RocketMQ引入了ConsumerQueue消息队列文件,每个消息队列有一个ConsumerQueu

2021-11-04 19:29:22 308

原创 细读经典——RocketMQ技术NM(2)

二、消息发送MQ发送普通消息有三种方式:可靠同步、可靠异步、单向,可靠的意思是会收到发送的结果基于以上认识,我们可以看看一条消息发送的整个过程是怎样的。2.1 抽象部分:这里很自然能想到需要定义消息实体Message::public class Message implements Serializable { // 主题 private String topic; // 保留 private int flag; // 扩展属性

2021-11-01 19:18:37 330

转载 好文笔记+RocketMQ吞吐量保证——零拷贝

原文:原来 8 张图,就可以搞懂「零拷贝」了_小林coding-CSDN博客原作者写的无可挑剔,又涵盖很全,我这里就只做读书笔记好了,为原作者点赞!目录一、DMA1.1为什么要有 DMA 技术?1.2传统IO过程和用户态内核态切换二、如何实现零拷贝2.1 mmap+write2.2 sendfile三、PageCache总结一、DMA1.1为什么要有 DMA 技术?在没有 DMA 技术前,I/O 的过程是这样的:CPU 发出对应的指令给磁盘控制器,...

2021-10-28 20:45:07 576

原创 细读经典——RocketMQ技术NM(1)

消息中间件目前是RocketMQ和Kafka两家独大,RocketMQ作为java开源代码,很适合中间件开发人员作为一手的学习材料,设计中的很多思想都是值得学习的。废话不多,进入正题。1、整体架构书中是从Nameserver切入整个RocketMQ的,但我这里从整体入手,希望你能先牢记这张图包含几个重要部分:Producer集群,NameServer集群,Broker集群以及Consumer集群。如果你熟悉微服务架构,那么整个集群和Eureka是非常像的:由Nameserver集群提供注

2021-10-28 17:29:37 239

原创 细读经典第一期——从Paxos到Zookeeper 分布式一致性原理与实践(5)

漫长的第七章还没结束,其实ZK本身在使用层面上来讲是相对而言比较容易的,因为本身他就是一个开源版的Chubby,但其实内部结构还是比较复杂的。7.7服务器角色介绍(重点)7.7.1 Leader主要工作:保持proposal处理请求的顺序性,作为ZK集群的调度者一提到请求处理顺序,第一反应就是责任链模式,对ZK Leader而言,其请求链:责任链模式PreRequestProcessor:识别请求是否事务请求,如果是,则创建请求头、事务体,会话检查,ACL检查等Pr.

2021-10-22 11:11:10 351

原创 细读经典第一期——从Paxos到Zookeeper 分布式一致性原理与实践(4)

目录七、Zookeeper技术内幕7.1系统模型7.1.1数据模型7.1.2 节点类型7.1.3 Znode的版本信息——保证分布式数据操作的原子性7.1.4 Watcher——数据变更通知7.1.5 ACL访问控制7.2序列化协议7.3 客户端7.4 会话7.4.1 会话状态转换7.4.2 会话创建七、Zookeeper技术内幕7.1系统模型7.1.1数据模型Znode数据节点是最小单元,由Znode构成了树。对于每一个事务请求,Zo

2021-10-19 11:29:22 102

原创 从零开始第一期——所有JAVA后端程序员必须充电!!!!深入理解Linux内存管理

Java之所以被程序员们吐槽为入门门槛低,就是因为JVM垃圾回收器帮助管理了JVM内存。但也有一句话,天下没有免费的午餐,吃的时候有多豪横,吃完就有多难受。你真觉得你不用管理内存?那你是想多了,作为后端程序员,JVM你得管,linux你得管,没有一样能跑的掉。今天我们就从linux源码上走一走linux内存管理。当然本来我是想把这期做在《细读经典》系列里去过一遍《深入理解linux虚拟内存管理》,但是限于个人精力(还有之前托更了好多东西)先做一个简化版,当然也不算简化版,算是一个比较深入的阐述吧。

2021-10-17 21:37:09 229 2

转载 好文笔记——unsafe类

目录unsafe类整体功能1.1内存操作1.2 CAS1.3线程调度1.4Class相关1.5 对象操作1.6 数组相关1.7内存屏障1.8系统相关先把原文链接放上,我这只是自己的笔记Java魔法类:Unsafe应用解析 - 美团技术团队unsafe类整体功能1.1内存操作//分配内存, 相当于C++的malloc函数public native long allocateMemory(long bytes);//扩充内存public nat..

2021-09-29 10:03:15 214

原创 细读经典第三期——所有后端程序员必读神作!!!!《高性能MySQL》

如果说细读经典第二期是mysql InnoDB存储引擎的入门,那么高性能mysql则是mysql的进阶,是mysql的精髓,是数据库的精髓,是必读中的必读。当然,这本书也比前一本更加离谱,难度更大,涉猎更多,更难吃透。走起!但是先说一下,我们这里的顺序,和书中顺序稍有不同,我们仍旧跟着《InnoDB存储引擎》那一本的思路,从我们熟悉的mysql使用入手,再到硬件优化,再引出基准测试,最后谈一谈mysql的扩展,不限于书中的云,可能会设计容器存储之类的内容。这里章节名称我保留原书,方便看官们做比较

2021-09-25 16:19:37 219

原创 饭后磨牙第一期——《HTTPS权威指南》

对于后端程序员而言,有些书不得不读 ,这些书都在细读经典系列里有些书可以不精通的,但是用的时候一定知道去哪查,并且查得到,这些书不是我们职业生涯的主要矛盾,因为各种企业早已经帮你实现好了这些基础服务,甚至有专门负责的同时,但是这些知识的涉猎体现着你的软实力,比如我们今天要去过一遍的《HTTPS权威指南》。这是一本很硬核的书,因为太硬核,甚至有点难啃因为不知道读者所处的水平,所以这期我打算在讲解https的基础上,摘出本书种比较关键的一些小节,更多的把这本书作为一个引子,这也是我想做饭后塞牙系列的

2021-09-20 00:54:45 98

原创 算法从放弃到放弃第一期

我个人算法方面其实一般,但是本科和研究生阶段的底子至少都还在,工作之后虽然算法方面的工作内容很少,但是一直还是记挂着算法这方面的东西,也是借着博客,从基础开始,刷一遍leetcode,很多东西可能已经不比现在的在校学霸,所以如果有不够精美的地方,欢迎指正批评基本算法这块安排是这样:按照算法导论的过程串一遍流程,基本的算法和数据结构全部手撕,高级设计(动规,贪心,平摊)以leetcode为主,图论单独拎出来说讲其次扩展一下大数据处理中的算法,基本的算法和数据结构仍然手撕,但是更侧重讲而非推理,侧重应用

2021-09-12 16:54:08 92

中国一级河流gis

中国一级河流,经过gis校准,确认能够打开,欢迎前来下载

2018-05-27

中国地形图gis校准过

中国地形图gis,经过gis校准,确认能够打开,欢迎前来下载

2018-05-27

传感器技术(哈工大PPT)

哈工大研究生 传感器技术的讲义ppt

2016-12-29

LabVIEW串口通讯合集

labview串口开发的全部内容,基本都涵盖到了,可以帮助你快速开发串口

2016-12-29

手把手教你dsp

手把手教你dsp能够快速的帮你熟悉dsp 的结构和编程模式,是dsp入门的不二选择

2015-11-10

哈工大单片机实验

单片机实验keil+proteus包括源程序和仿真结果

2014-04-18

空空如也

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

TA关注的人

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