随笔分类 -  协议类

阅读各协议,收集的地方
摘要:关于文件跟踪,我们有很多的实际场景,比如查看某个系统日志的输出,当有变化时立即体现,以便进行问题排查;比如查看文件结尾的内容是啥,总之是刚需了。 1. 自己实现的文件跟踪 我们平时做功能开发时,也会遇到类似的需求,比如当有人传输文件到某个位置后,我们需要触发后续处理操作。 那么,我们自己实现的话,也 阅读全文
posted @ 2022-08-14 20:13 阿牛20 阅读(2380) 评论(1) 推荐(0) 编辑
摘要:在网络请求时,总会有各种异常情况出现,我们需要提前处理这种情况。在完善的rpc组件dubbo中,自然是不会少了这一层东西的。我们只需要通过一些简单的配置就可以达到超时限制的作用了。 dubbo的设计理念是,客户端控制优先,服务端控制兜底。 1. 超时机制的实现思路 要想实现超时,一般有两个思路。一个 阅读全文
posted @ 2022-07-09 13:53 阿牛20 阅读(5947) 评论(2) 推荐(1) 编辑
摘要:一直很好奇,操作系统是如何工作的?我们知道平时编程,是如何让代码跑起来的,但那些都是比较高层次的东西。越往后,你会越觉得,像是空中楼阁,或者说只是有人帮你铺平了许多道理,而你却对此一无所知。 1. 操作系统的困惑 当然了,也不是真的一无所知。因为有很多的操作系统方面的书籍,教你了解操作系统是如何如何 阅读全文
posted @ 2022-01-03 21:12 阿牛20 阅读(567) 评论(1) 推荐(0) 编辑
摘要:clickhouse据说是用在大数据量的olap场景列式存储数据库,也有幸能够用到它在实际场景中落地。本篇就来说说简单的使用心得吧。 1. 整体说明 架构啥的,就不多说了,列式存储、大数据量、高性能。参见官方文档地址: https://clickhouse.com/docs/en/ 对于使用者而言, 阅读全文
posted @ 2021-12-03 09:31 阿牛20 阅读(1216) 评论(0) 推荐(0) 编辑
摘要:用例:有N个文件,每个文件只有一列主键,每个文件代表一种属性。即当如PRI1主键在A文件中,说明PRI1具有A属性。这种场景,一般用于数据的筛选,比如需要既有属性A又有属性B的主键有哪些?就是这类场景。 如何处理该场景? 1. 解题思路 如果抛却如题所说文件限制,那我们如何解决? 比如,我们可以将每 阅读全文
posted @ 2021-06-29 15:38 阿牛20 阅读(349) 评论(0) 推荐(0) 编辑
摘要:我们知道,当我们对es发起search请求或其他操作时,往往都是随机选择一个coordinator发起请求。而这请求,可能是该节点能处理,也可能是该节点不能处理的,也可能是需要多节点共同处理的,可以说是情况比较复杂。 所以,coordinator的重要工作是,做请求分发与结果收集。那么,如何高性能和 阅读全文
posted @ 2021-06-26 06:45 阿牛20 阅读(859) 评论(0) 推荐(0) 编辑
摘要:java的一大核心特性,即是自动内存回收。这让一些人从繁琐的内存管理中解脱出来,但对大部分人来说,貌似这太理所当然了。因为现在市场上的语言,几乎都已经没有了还需要自己去管理内存这事。大家似乎都以为,语言不就应该干这事吗。 其实在我们现在的编程语言中,从某种角度上,大致可以分为多进程并发模型和多线程并 阅读全文
posted @ 2021-06-14 21:03 阿牛20 阅读(510) 评论(0) 推荐(0) 编辑
摘要:害,别误会,我这里说的stream不是流式编程,不是大数据处理框架。我这里说的是stream指的是jdk中的一个开发工具包stream. 该工具包在jdk8中出现,可以说已经是冷饭了,为何还要你说?只因各家一言,不算得自家理解,如若有空,何多听一版又何妨。 本篇主要从几个方面讲讲:1. 我们常见的s 阅读全文
posted @ 2021-06-12 22:49 阿牛20 阅读(917) 评论(3) 推荐(1) 编辑
摘要:上一篇文章中,我们看了get在es的实现过程,虽只是一个简单的单条查询,但看起来实现却非常之复杂。纠其原因,是我们围绕了太多外围的东西讲了,而其核心则无外乎三点:1. 定义id对应的机器节点; 2. 查找真正的docId; 3. 查找docId对应的field信息; 本篇,我们再看另一个es的重要功 阅读全文
posted @ 2021-06-05 15:24 阿牛20 阅读(718) 评论(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 阅读(2358) 评论(0) 推荐(0) 编辑
摘要:上一篇讲解了es的网络通信模块实现过程,大致明白其工作原理。再总结一下,就是基于netty编程范式,形成es通信基础。从而,最终我们得到几个重要的handler: Netty4HttpPipeliningHandler/Netty4HttpRequestHandler/Netty4MessageCh 阅读全文
posted @ 2021-05-05 16:37 阿牛20 阅读(959) 评论(0) 推荐(0) 编辑
摘要:ES是一个分布式搜索引擎,其除了用户提供必要的通信服务外,集群间也必须保持紧密的通信联系,才能在必要的时候给出正确的结果。其则必然涉及到各种繁多且要求高的通信场景,那么如何实现高性能的通信,则是其必须要考虑的问题。 今天,我们就以es的transportService的实现为窥点,观察es的高性能的 阅读全文
posted @ 2021-05-02 16:09 阿牛20 阅读(930) 评论(0) 推荐(0) 编辑
摘要:ES作为超强悍的搜索引擎,除了需要具有齐全的功能支持,超高的性能,还必须要有任意扩展的能力。一定程度上,它是一个大数据产品。而要做扩展性,集群自然少不了。然而单独的集群又是不够的,能够做的事情太少(比如通常的集群为负载均衡式对等集群),所以它需要自己组建合适自己的集群。也就是服务需要自动发现,自动协 阅读全文
posted @ 2021-04-18 09:29 阿牛20 阅读(1038) 评论(0) 推荐(0) 编辑
摘要:前面的nginx系列讲解了nginx很多通用概念,流程,以及核心的http模块的一些实现。应该说大体上对nginx已经不再陌生和神秘。 今天我们不看全局,只看一个非常非常小的细节:nginx是多进程并发模型的应用,但为了网络请求的安全性,必须要使用到锁,那么这个进程锁如何实现呢? 1. nginx进 阅读全文
posted @ 2021-02-25 11:17 阿牛20 阅读(719) 评论(0) 推荐(0) 编辑
摘要:经过前面几章的简单介绍,我们已经大致了解了jvm的启动框架和执行流程了。不过,这些都是些无关痛痒的问题,几行文字描述一下即可。 所以,今天我们从另一个角度来讲解jvm的一些东西,以便可以更多一点认知。即如题:jvm是如何找到对应的java方法,然后执行的呢?(但是执行太复杂,太重要,我们就不说了。我 阅读全文
posted @ 2021-02-21 20:08 阿牛20 阅读(758) 评论(0) 推荐(1) 编辑
摘要:jvm是java的核心运行平台,自然是个非常复杂的系统。当然了,说jvm是个平台,实际上也是个泛称。准确的说,它是一个java虚拟机的统称,它并不指具体的某个虚拟机。所以,谈到java虚拟机时,往往我们通常说的都是一些规范性质的东西。 那么,如果想要研究jvm是如何工作的,就不能是泛泛而谈了。我们必 阅读全文
posted @ 2021-02-07 08:50 阿牛20 阅读(1944) 评论(0) 推荐(0) 编辑
摘要:Netty作为一个流行的应用框架,它的强悍之处主要有两点:1. 是性能强悍,可以轻松承载数万并发; 2. 其编程模型简单,容易上手; 这就给大家打开了一扇通向高性能的大门。 我在rocketmq的一篇文章里阐述过,高性能的核心本质和实现原理。主要就是依赖于操作系统提供的高效io模型和内存控制。有兴趣 阅读全文
posted @ 2021-01-31 17:10 阿牛20 阅读(1521) 评论(0) 推荐(0) 编辑
摘要:上一篇中,我们了解了如何nginx的配置原则及解析框架,以及解析location配置的具体实现,相信大家对该部分已经有了比较深刻的认识。 本篇,我们进一步来了解下,解析之后的配置,如何应用到实际中的吧。当然,我们只讲解 location 的查找过程。 1. location的接入流程 在nginx的 阅读全文
posted @ 2021-01-24 17:00 阿牛20 阅读(850) 评论(0) 推荐(0) 编辑
摘要:hive原本不是用来做简单的crud的,但有时候我们就是有可能这么干,怎么办呢? hive 还是提供了相应的功能的,查询是最必须的,就无须多说了。 插入数据一般来说都是大批量的插入,一般用于从源数据中导入数据到hive中,然后经过hive加工后,写入到一张新的结果表。而这个表的数据一般也会很大,具体 阅读全文
posted @ 2021-01-07 09:05 阿牛20 阅读(5577) 评论(0) 推荐(0) 编辑
摘要:消息中间件,说是一个通信组件也没有错,因为它的本职工作是做消息的传递。然而要做到高效的消息传递,很重要的一点是数据结构,数据结构设计的好坏,一定程度上决定了该消息组件的性能以及能力上限。 1. 消息中间件的实现方式概述 消息中间件实现起来自然是很难的,但我们可以从某些角度,简单了说说实现思路。 它的 阅读全文
posted @ 2021-01-02 23:08 阿牛20 阅读(2301) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示