随笔分类 -  源码

1 2 3 4 5 ··· 7 下一页
源码阅读心得,提升的路径。
摘要:一直以来,进程和线程的区别,这种问题一般会被面试官拿来考考面试者,可见这事就不太简单。简单说一点差异是,进程拥有独立的内存资源信息,而线程则共享父进程的资源信息。也就是说线程不拥有内存资源,所以对系统消耗会更小。所以,线程也有轻量级进程的说法。 除了从资源消耗的角度来讲进程线程的差别,还有一个值得说 阅读全文
posted @ 2022-09-25 11:04 阿牛20 阅读(835) 评论(0) 推荐(0) 编辑
摘要:关于文件跟踪,我们有很多的实际场景,比如查看某个系统日志的输出,当有变化时立即体现,以便进行问题排查;比如查看文件结尾的内容是啥,总之是刚需了。 1. 自己实现的文件跟踪 我们平时做功能开发时,也会遇到类似的需求,比如当有人传输文件到某个位置后,我们需要触发后续处理操作。 那么,我们自己实现的话,也 阅读全文
posted @ 2022-08-14 20:13 阿牛20 阅读(1574) 评论(1) 推荐(0) 编辑
摘要:现实场景往往是这样,我们应对一个需求,很快就会有一个处理方法了,然后根据需求做了一个还不错的实现。因为实现了功能,业务很happy,老板很开心,all the world is beatiful. 但随着公司的发展,有人实现了一套底层的标准组件,按要求你必须要接入他那个,他的功能与你类似,但你必须要 阅读全文
posted @ 2022-06-26 11:32 阿牛20 阅读(929) 评论(0) 推荐(1) 编辑
摘要:bitmap的表象意义是,使用一个01标识位来表示是否的状态,可以达到节省空间和高效判定的效果。在我们的实际工作中,也有着许多的应用场景,相信了解bitmap定会给你带来一些额外的收获。 1. bitmap使用场景说明 比如,我想记录某用户某天是否登录过,我们有很多做法。简单的,只要用户登录,就在d 阅读全文
posted @ 2022-06-19 16:01 阿牛20 阅读(2067) 评论(0) 推荐(0) 编辑
摘要:我们都用过消息中间件,它的作用自不必多说。但对于消费者却一直有一些权衡,就是使用push,还是pull模式的问题,这当然是各有优劣。当然,这并不是本文想讨论的问题。我们想在不使用长连接的情意下,如何实现实时的消息消费,而不至于让server端压力过大。大体上来说,这是一种主动拉取pull的方式。具体 阅读全文
posted @ 2022-03-24 16:51 阿牛20 阅读(367) 评论(0) 推荐(0) 编辑
摘要:上一节我们通过对x86的linux内核的讲解,知道了它的一个大概的启动过程。 /arch/x86/boot/header.S -> calll main -> /arch/x86/boot/main.c -> go_to_protected_mode() -> /arch/x86/boot/pm.c 阅读全文
posted @ 2022-01-23 21:51 阿牛20 阅读(573) 评论(0) 推荐(1) 编辑
摘要:一直很好奇,操作系统是如何工作的?我们知道平时编程,是如何让代码跑起来的,但那些都是比较高层次的东西。越往后,你会越觉得,像是空中楼阁,或者说只是有人帮你铺平了许多道理,而你却对此一无所知。 1. 操作系统的困惑 当然了,也不是真的一无所知。因为有很多的操作系统方面的书籍,教你了解操作系统是如何如何 阅读全文
posted @ 2022-01-03 21:12 阿牛20 阅读(519) 评论(1) 推荐(0) 编辑
摘要:害,又是一个炒冷饭的时间。fork/join是在jdk1.7中出现的一个并发工作包,其特点是可以将一个大的任务拆分成多个子任务进行并行处理,最后将子任务结果合并成最后的计算结果,并进行输出。从而达到多线程分发任务,达到高效处理的目的。 1. 关于fork/join的一点想法 以上说法,也许大家没什么 阅读全文
posted @ 2021-06-28 10:41 阿牛20 阅读(1199) 评论(0) 推荐(0) 编辑
摘要:我们知道,当我们对es发起search请求或其他操作时,往往都是随机选择一个coordinator发起请求。而这请求,可能是该节点能处理,也可能是该节点不能处理的,也可能是需要多节点共同处理的,可以说是情况比较复杂。 所以,coordinator的重要工作是,做请求分发与结果收集。那么,如何高性能和 阅读全文
posted @ 2021-06-26 06:45 阿牛20 阅读(796) 评论(0) 推荐(0) 编辑
摘要:用例:有一段sql语句,我们需要从中截取出所有字段部分,以便进行后续的类型推断或者别名字段抽取定义,请给出此解析方法。 想来很简单吧,因为 sql 中的字段列表,使用方式有限,比如 a as b, a, a b... 1. 解题思路 如果不想做复杂处理,最容易想到的,就是直接用某个特征做分割即可。比 阅读全文
posted @ 2021-06-21 09:58 阿牛20 阅读(1490) 评论(4) 推荐(1) 编辑
摘要:java的一大核心特性,即是自动内存回收。这让一些人从繁琐的内存管理中解脱出来,但对大部分人来说,貌似这太理所当然了。因为现在市场上的语言,几乎都已经没有了还需要自己去管理内存这事。大家似乎都以为,语言不就应该干这事吗。 其实在我们现在的编程语言中,从某种角度上,大致可以分为多进程并发模型和多线程并 阅读全文
posted @ 2021-06-14 21:03 阿牛20 阅读(442) 评论(0) 推荐(0) 编辑
摘要:害,别误会,我这里说的stream不是流式编程,不是大数据处理框架。我这里说的是stream指的是jdk中的一个开发工具包stream. 该工具包在jdk8中出现,可以说已经是冷饭了,为何还要你说?只因各家一言,不算得自家理解,如若有空,何多听一版又何妨。 本篇主要从几个方面讲讲:1. 我们常见的s 阅读全文
posted @ 2021-06-12 22:49 阿牛20 阅读(837) 评论(3) 推荐(1) 编辑
摘要:上一篇文章中,我们看了get在es的实现过程,虽只是一个简单的单条查询,但看起来实现却非常之复杂。纠其原因,是我们围绕了太多外围的东西讲了,而其核心则无外乎三点:1. 定义id对应的机器节点; 2. 查找真正的docId; 3. 查找docId对应的field信息; 本篇,我们再看另一个es的重要功 阅读全文
posted @ 2021-06-05 15:24 阿牛20 阅读(613) 评论(0) 推荐(0) 编辑
摘要:前面讲的都是些比较大的东西,即框架层面的东西。今天咱们来个轻松点的,只讲一个点:如题,get单条记录的es查询实现。 1. get语义说明 es中要实现get的查询,直接就是一个url请求即可: curl http://localhost:9200/test/job/1 get是用于搜索单条es的数 阅读全文
posted @ 2021-05-24 10:19 阿牛20 阅读(2104) 评论(0) 推荐(0) 编辑
摘要:上一篇讲解了es的网络通信模块实现过程,大致明白其工作原理。再总结一下,就是基于netty编程范式,形成es通信基础。从而,最终我们得到几个重要的handler: Netty4HttpPipeliningHandler/Netty4HttpRequestHandler/Netty4MessageCh 阅读全文
posted @ 2021-05-05 16:37 阿牛20 阅读(854) 评论(0) 推荐(0) 编辑
摘要:ES是一个分布式搜索引擎,其除了用户提供必要的通信服务外,集群间也必须保持紧密的通信联系,才能在必要的时候给出正确的结果。其则必然涉及到各种繁多且要求高的通信场景,那么如何实现高性能的通信,则是其必须要考虑的问题。 今天,我们就以es的transportService的实现为窥点,观察es的高性能的 阅读全文
posted @ 2021-05-02 16:09 阿牛20 阅读(810) 评论(0) 推荐(0) 编辑
摘要:ES作为超强悍的搜索引擎,除了需要具有齐全的功能支持,超高的性能,还必须要有任意扩展的能力。一定程度上,它是一个大数据产品。而要做扩展性,集群自然少不了。然而单独的集群又是不够的,能够做的事情太少(比如通常的集群为负载均衡式对等集群),所以它需要自己组建合适自己的集群。也就是服务需要自动发现,自动协 阅读全文
posted @ 2021-04-18 09:29 阿牛20 阅读(936) 评论(0) 推荐(0) 编辑
摘要:单元测试,从一定程度上可以看出一个同学达到的层次。但又不完全是,有时可能只是一个思考方式的转变。单元测试有非常多的工具供选择,在java中,junit无疑是比较常用的。本文列出,junit在spring中的使用样例,供参考。 1. 单元测试主要方式 这里仅说我们常用的单元测试的场景,或者是我自己常用 阅读全文
posted @ 2021-03-15 21:31 阿牛20 阅读(561) 评论(0) 推荐(0) 编辑
摘要:ES作为强大的和流行的搜索引擎服务组件,为我们提供了方便的和高性能的搜索服务。在实际应用中也是用得比较爽,但如果能够理解更深入一点,那就更好了。虽然网上有许多的文章已经完整说明,ES是如何如何做到高性能,如何做到高可用的,以及有许多的避坑指南。但那些,毕竟还是太描述化。 就让我们以源码作为出发点,一 阅读全文
posted @ 2021-03-07 17:21 阿牛20 阅读(572) 评论(0) 推荐(0) 编辑
摘要:前面的nginx系列讲解了nginx很多通用概念,流程,以及核心的http模块的一些实现。应该说大体上对nginx已经不再陌生和神秘。 今天我们不看全局,只看一个非常非常小的细节:nginx是多进程并发模型的应用,但为了网络请求的安全性,必须要使用到锁,那么这个进程锁如何实现呢? 1. nginx进 阅读全文
posted @ 2021-02-25 11:17 阿牛20 阅读(653) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 7 下一页