自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (1)
  • 收藏
  • 关注

原创 你真的了解Pulsar的消息保留、积压、TTL策略吗

任何东西都有生命周期,就像沙丁鱼罐头🥫也会过期一样,咱们的消息本身也是有生命周期的,因此像Pulsar这样的流平台/消息队列也提供了Retention、Backlog和TTL机制。

2024-04-01 09:51:48 1376

原创 Pulsar从入迷到入魔之路

系统学习Pulsar的大纲。

2024-03-16 11:23:43 491

原创 【小白版】最简单的 goland 自定义package 教程

直奔主题,针对小白无法正确使用自定义的package包进行讲解。

2024-04-25 19:56:07 109

原创 深入探索生产者拦截器的使用以及源码设计

在软件设计中,为了方便能够应对不同的场景,一般在一些容易有差异的环节会考虑允许用户自定义逻辑,拦截器就是其中的一种实现方式,像Spring、Kafka、Pulsar等都支持这种方式。流程简化起来就如下图,客户端跟服务端的写消息请求和接收请求都要先通过一遍拦截器,因此用户都过自定义拦截器逻辑就能以一种无侵入、规范化的方式来改动消息发送以及处理响应的行为。

2024-04-19 11:17:12 1092

原创 记录方式重新打开人生

最后,我祝愿大家身体健康、万事顺心,如果不行的话那就祝愿大家都有面对、解决痛苦的能力,以及过上高效、快意的人生~

2024-04-19 10:55:58 243

原创 主动触发Bundle分裂服务端流程源码解析

Namespace下的Topic是分Bundle进行管理的,每个Namespace都是一个哈希环,而Bundle负责管理环上某个范围上的Topic。通过这种方式可以更好的进行Topic的管理。当某个Bundle上负责的Topic越来越多时,会导致负责该Bundle的Broker节点压力变大。因此Pulsar还提供了Bundle分裂的机制,这个机制支持自动触发以及手动触发,今天这篇文章就从源码的角度分析手动触发Bundle分裂时服务端会发生什么。

2024-04-16 18:53:58 772

原创 关于系统数据缓存的思考以及设计

在工作中只要我们观察和思考,就会发现其实是存在不少值得完善的地方,此时应该考虑对它们进行完善,否则如果长期维护一个“丑陋”的系统,你的思维、以及审美也会随之跟着降低,以至于久而久之就觉得这种设计也挺好的,甚至后续再有类似的场景时你还是会选择这种设计。工作的本质也是一场修行,在对系统进行改进完善的过程也是自我完善的过程,简称“借物得道”,同时如果读者针对这个场景有更合适的设计也欢迎在下方一起讨论。

2024-04-16 10:17:12 806 1

原创 论大数据服务化发展史

以上是我对大数据服务化粗糙的认知,输出出来是希望能引发一些思考🤔,当然写的过程中也引发了我自己的不少思考。这个过程中虽然存在一点批判,但绝不是针对具体的个人,而是针对目前常见的一些流程设计,单纯觉得有些设计可以变得更“美”一些。如果对服务化感兴趣的伙伴可以去针对性的学习专业的知识来改善工作内容,本篇文章仅仅是唠嗑,存在很多瑕疵,但我始终相信,多人沟通讨论可以构建设计一个更加完美的设计,因此如果能引发其他人的共鸣或者不同想法💡其实都是好事。

2024-04-04 20:12:01 1262 1

原创 莽就完事了第二弹!

这是我最近两个月关于“莽”比较大的感悟,虽然文章质量有下滑,但我觉得有时候该抓一放一,对于此时的我来说坚持输出远胜于用很多时间打磨一两片文章。因此我会在“莽”的过程中尽量提升质量,读者如果有其他的建议也希望在评论中一起进行讨论。

2024-04-04 08:15:00 314

原创 Pulsar服务端处理消费者请求以及源码解析

可以看到Pulsar里大量使用了异步回调处理,这样的设计在高并发场景大幅提升服务的性能,尽可能的避免了存在瓶颈的地方。不过带来的另一影响是,代码跟踪起来相对来说容易“迷路”,因此掌握好异步设计的逻辑是很有必要的,可以帮助我们更好的跟踪Pulsar的代码。

2024-04-03 09:49:53 552

原创 Apache Pulsar源码解析之Lookup机制

以上就是Pulsar的Lookup机制的实现流程,在寻址的过程中,需要阅读的伙伴具备一致性哈希的知识,因为Pulsar的Topic归属就是引入了一致性哈希算法来实现的。

2024-04-03 09:47:31 775

原创 Pulsar源码解析之TTL

以上就是Pulsar中TTL的实现源码流程,我在这个过程中尽量省略了一些非必要的逻辑,主要是跟踪了主线,像一些地方也是值得跟踪的,感兴趣的伙伴可以自行跟踪。同时在这里我们可以看到,TTL过程只移动了游标位置并不涉及到数据的删除,说明在Pulsar的设计中将两者进行了分离,这是一种很好的职责设计思路,各自负责自己的一那部分。一方面在程序维护时可以避免改动引起一些相关性不那么大的影响,另一方面对于程序执行的整体性能来说也是比较高效的。

2024-04-02 09:42:00 517

原创 认知觉醒读书笔记之三重大脑(一)

这类文章可能读起来会有点觉得像是傲慢的说教之类的,如果有类似的感觉我感到很抱歉,这并不是我的本意,我从过去到现在即使是将来在这方面都有要不断完善的地方,写出来一方面是给大家分享我的见解,另一方面自己也会时常回头看看、反思这块相关的内容并指导我自己更好的前行。最后跟大家分享文章中我很喜欢的一句话:习惯之所以难以改变,就是因为它是自我巩固的——越用越强,越强越用。要想从既有的习惯中跳出来,最好的方法不是依靠自制力,而是依靠知识。

2024-04-02 09:39:46 498

原创 一封写给年末自己的信

不知不觉一年又快结束了,今天写了不少文章,那就专门写一份给自己的信。

2024-04-01 09:48:09 532

原创 Pulsar源码解析之PersistentTopic类

本文主要强调PersistentTopic类的重要性、聊聊它都负责哪些事情以及大概实现,具体每个细节展开都能单独写一篇文章,这个敬请期待~

2024-03-27 21:12:56 1047

原创 克服欲望的永远不是自律,而是更高级的欲望

在人生的每个阶段,我好像都有遇到那种天然就知道自己该做什么事情并且极度“自律”的人,上学那会就有同学雷打不动的学习,哪怕没人监督也照样认真学习。与之相比的我感觉就像是这个世界的NPC一样,做事三分热度,感兴趣的时候也能热血沸腾狠狠学一段时间,但是大部分时候还是想偷懒,一直以来觉得是自己自控力问题导致自己不够自律,也会是不是给自己定制计划并设置奖惩,但最后都不了了之。你是否也有同样的经历并且苦恼呢。

2024-03-21 19:15:22 281

原创 一文彻底搞懂Producer端流程以及原理

生产者写数据的流程到这里基本就结束了,怎么样,是不是没想象中那么可怕?也许你对1、客户端对象创建 2、生产者对象创建 3、消息发送这三步之间的关系还有点迷迷糊糊,那就请允许我给你举个例子,1、客户端对象创建相当于一座新城市的创建,打好城市的地基,2、生产者对象创建相当于在这个地基的基础上建起了城市,发电厂等等,最重要的是修建其通往其他各个城市的交通要道,最后的3、消息发送相当于这个新城市的居民们乘坐高铁去其他的城市。这么说相信你一定已经明白了~如果还有其他疑问欢迎在下面的评论区一起讨论。

2024-03-21 15:41:21 865

原创 总要有一次,为自己疯狂

我们在每一刻都会面临无数个选择,我们在过去无数个选择中的选定绘制出了如今的生活,而站在未来十年、二十年的角度,选择的自己也是一个起点,从现在开始的每一个决定都会不断的改善未来的自己。简单来说就是“种一棵树最好的时间是十年前,其次是现在”,因此从现在这一刻开始,让咱们为了自己感兴趣的事情,疯狂一次吧。

2024-03-16 11:52:32 399

原创 Pulsar IO实战

纸上得来终觉浅,绝知此事要躬行。学习不能仅仅停留在纸面上或者理论,脱离使用去探讨设计或者源码都是不切实际的。因此今天一起体验了一把Pulsar IO,除此之外Pulsar还提供了非常丰富的跟其他系统交互的Connector,详细可以看上面发的下载地址并尝试使用自己感兴趣的Connector感受下实操的快乐~

2024-03-13 19:50:27 904

原创 Pulsar消息路由深入剖析

在有些业务场景,我们需要将自己的业务逻辑“融入”路由策略,因此像Pulsar、Kafka等消息中间件都是支持用户进行路由规则的自定义的。这里为了好玩,咱们尝试将数据按照 1:2:3:4 等比例分别落在四个分区如何?说干就干,自定义路由也是比较简单的,只需要实现Pulsar MessageRouter接口的choosePartition方法即可,实现逻辑如下count++;return 3;

2024-03-13 19:44:34 912

原创 Pulsar Schema使用原理介绍

关于Pulsar Schema,咱们要想想以下几个问题。

2024-03-09 17:45:12 902

原创 Worker调度管理器原理解析

以上就是Pulsar中Worker的调度过程,这里主要是以Worker独立部署的方式进行讲解的,基于Broker启动的Worker感兴趣的朋友可以自行跟踪下代码。

2024-03-05 19:42:49 1068

原创 万物皆可模块化分解

上面就是模块化的好处,原本看似不可能完成的东西通过模块化分解后都是可以完成的。因此在这里想表达的是,虽然学海无涯,但是对于咱们热爱的事情,可以利用好这个方式,将要做的大任务或者要学习的大的方向进行分解,然后在逐个攻克一个个小单元,因此不用害怕任何事情,大胆折腾起来。

2024-03-05 19:38:58 365

原创 Pulsar3.2 Function的介绍与使用

基于Function接口实现自己的逻辑,打包编译成jar包/***/@Override基于该jar包启动function启动客户端监听test1-output-topic往Topic test1-input-topic 里写入数据消费者打印启动function有时候会遇到下面这个问题,一般都是function命名冲突导致的,修改yaml配置里name在重新create下就可以了。

2024-02-28 18:59:17 1045

原创 一副皮囊的使命

最后与各位读者分享一句话:人有两次生命的诞生,一次是你肉体出生;而另一次,是你灵魂的觉醒。

2024-02-28 14:44:33 771

原创 一文弄明白KeyedProcessFunction函数

监听本机7777端口读取字符串将每个字符串用空格分隔,转成Tuple2实例,f0是分隔后的单词,f1等于1将Tuple2实例集合通过f0字段分区,得到KeyedStreamKeyedSteam通过自定义KeyedProcessFunction处理自定义KeyedProcessFunction的作用,是记录每个单词最新一次出现的时间,然后建一个十秒的定时器进行触发。

2024-02-21 19:51:37 1119

原创 压制es-hadoop这头野兽的方式来了~

以上就是整个问题的解决过程,我也相信一定有更好,更优雅的解决方式,如果你恰好有好的想法也可以给ES-Hadoop社区提供;但无论黑猫还是白猫,能抓到老鼠的才是好猫,通过方案三快速的解决的问题并且稳定运行了一年,给公司节省下扩容集群的成本,这在我这个菜鸡看来已经够了。如果你也比较赶时间的话,可以考虑直接试下我的jar包,希望能对您有帮助。

2024-02-21 19:09:54 903

原创 欲速则不达,慢就是快!

在最后,跟大家分享一句很喜欢的话,“如果有一天,你不再寻找爱情,只是去爱;你不再渴望成功,只是去做;你不再追求空泛的成长,只是开始修养自己的性情;你的人生一切,才真正开始”

2024-02-20 15:55:37 944

原创 五分钟搭建本地大数据集群

上述组件都是apache旗下的,通过此地址找到对应的版本下载使用即可 https://archive.apache.org/dist/hadoop/common/,但如果下载速度慢的话可以考虑通过这个地址进行加速下载 https://mirrors.tuna.tsinghua.edu.cn/apache/,后面这个地址仅用于学习,请勿用于商用。以上就是搭建一个简单的本地调试环境的流程,最好是都能手动操作一次,对这几个基础服务都有一定的了解。进行服务的后台启动。启动服务即可,通过指令查询可看到已经启动服务。

2024-02-17 16:08:58 510

原创 莽,就完事啦!

随着知识量的增加,有时会减低执行力。小时候很多东西不知道,但是就很莽,大胆的撬开电风扇,哪怕组装回来多了几个零件也很自豪;小时候好奇海的那边有什么,跟着小伙伴们沿着海岸线跑一下午都不觉得累。但是随着对这个世界的了解的增加,我们逐渐变得“理智”,喜欢的人还没开始去追就内心觉得反正也成功不了就放弃了,有些工作还没开始就觉得这个设计方案行不通甚至开发好的代码迟迟不上线,因为不发布就不会有问题等等呢个。为了避免失败,于是乎放弃所有开始,但是今天我想说的是,莽,就完事拉~

2024-02-04 22:35:17 392

原创 手写分布式存储系统v0.3版本

由于咱们的服务是分布式的,那从服务管理的角度来看肯定是要有一个机制来知道具体都有哪些实例可以提供服务。举个例子就是,张三家里在全国各地有不少火锅加盟店,那张三肯定要有一个方式知道这些火锅店加盟店的情况。例如上海又新开了一家加盟店,那么这家加盟店肯定要先通过某种方式联系张三,这样张三才能将配方以及食材供应给这家新的加盟店等等。疑问为什么不能通过域名映射的方式来做映射,客户端通过域名调用服务就好了为啥要专门做服务发现。

2024-02-04 17:42:08 1505

原创 手写分布式存储系统v0.2版本

上回说到手写分布式存储系统v0.1版本,已经实现了通过监听TCP端口并将数据写到本地磁盘的功能,今天咱们就继续往上面添砖加瓦

2024-02-02 20:12:45 969

原创 哇塞,这几种Java文件读写性能差距居然这么大?

通过比较能看到在高频写数据到磁盘时,mmap的性能非常显著,有类似的场景时可以优先考虑mmap。当然最好是自己做下基准测试。

2024-02-02 20:03:03 414

原创 手写分布式存储系统v0.1版本

实现一个系统,设计是最过瘾的过程没有之一,类似你搭积木前在脑海设计构建一副大致的“雏形”,只有有了这个东西之后才能够指导最终实现的方向以及确保不会偏离的太差。

2024-02-01 10:09:23 458

原创 工作软技能第一弹,关于职场沟通、成长的那些事

在谈绩效后,我收获了一些心得,在此梳理出来,加深印象并且共勉

2024-01-25 23:08:42 826

原创 瞧瞧,这就是JDK序列化

今天来聊聊JDK自带的序列化,企业级软件开发过程中一定会涉及到数据落盘或者网络传输数据,由于Linux操作系统要数据落盘或者传输数据前需要将数据转为二进制数据流,因此我们需要一套规则来将Java世界中的对象(数据)转化为二进制数据流,而JDK提供的序列化就是这套转换规则。以上就是使用JDK序列化/反序列化的流程,可能工作中我们不会频繁的写序列化代码,但是通信/存储相关的组件里一般都会高频的进行序列化/反序列化操作,因此如果之后我们要自己设计通信/存储的话,掌握序列化是非常有必要的。

2024-01-21 15:44:40 861

原创 仰望星空,也要鲜花与掌声

因此再来看第二种方式,在有目标之后的第一件事是先将其拆分为独立的一个个小任务,每攻克一个小点时,我们都可以适当做下输出,无论是输出技术博客、还是技术分享或者是其他方式,在接受到“鲜花与掌声”后我们会拥有更多的动力对下一个“堡垒”发起进攻,在接受“鲜花与掌声”的同时,我们也能听到更多的反馈,例如可能会评论说你对IOC的某个理解是错误的、领导觉得你的这个方案一可能存在某个缺陷等等,那么在这个基础下,你在开启下一个环是有个更多的“注意事项”,这能让你更有条不紊的朝着最终目标前行。

2024-01-10 10:51:19 382 1

原创 漫画演绎策略设计模式

通过抽象出一层策略层来解耦“妈妈”和教育方式,“妈妈”和教育方式的细节都依赖于策略层,“妈妈“只需要告诉策略层自己要选择哪一种教育方式即可,具体内部复杂的逻辑不需要”妈妈关心“,从而达到了”职责分离“的效果,很好的解决了上面描述的两个问题,具体实现如下。从前有一个妈妈,她有一个叛逆的儿子,妈妈每天除了上下班就是要教育儿子,上下班的内容是固定的,现在每天唯一负责并且可能会变的就是教育儿子的方式,那么我们应该如何设计呢。可以看到改动很小,即便后续有新的教育方式,只需增加新的策略类并改动这一行代码即可。

2024-01-10 10:48:29 662

原创 AQS原来是这么设计的,泰裤辣!

在AQS中可以看到不少优秀的设计,这都要归功于Doug Lea老爷子;除了AQS,在juc里还有很多优秀的设计,如并发性能最好的字典ConcurrentHashMap、无锁高性能队列ConcurrentLinkedQueue等等在品完源码后,你会发现其设计思想丝毫不逊色于各个大数据组件“曾经想征服全世界,到最后回头才发现,这世界点点滴滴全部都是你” ——致JDK。

2024-01-05 10:08:21 999 1

原创 pulsar原来是这样操作topic的

本篇主要讲述pulsar topic部分,主要从设计以及源码的视角进行讲述。在pulsar中,一个Topic的新建、扩容以及删除操作都是由Broker来处理的,而Topic相关的数据是存储在zookeeper上的。本篇文章模拟一个高效的学习流程进行展开在日常对pulsar Topic操作时,咱们常常会用到以下指令更多的操作可以参考 https://pulsar.apache.org/docs/3.0.x/admin-api-topics/在这里列举了针对分区并存储Topic的四个操作指令以上就是使用方式,

2024-01-05 09:58:32 972

es-hadoop二次开发包

es-hadoop二次开发包

2024-02-21

SpringMVC从无到有

SpringMVC框架从无到有,我已经解决了jar包冲突等问题,此资源是为了帮助更多的新人快速体验SpringMVC的快感

2017-04-06

空空如也

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

TA关注的人

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