自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

crossoverJie专栏

会crossover的程序猿

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

原创 为自己搭建一个分布式 IM(即时通讯) 系统

前言大家新年快乐!新的一年第一篇技术文章希望开个好头,所以元旦三天我也没怎么闲着,希望给大家带来一篇比较感兴趣的干货内容。老读者应该还记得我在去年国庆节前分享过一篇《设计一个百万级的消息推送系统》;虽然我在文中有贴一些伪代码,依然有些朋友希望能直接分享一些可以运行的源码;这么久了是时候把坑填上了。目录结构:本文较长,高能预警;带好瓜子板凳。于是在之前的基础上我完善了一些...

2019-01-02 08:10:42 5925 2

原创 设计一个百万级的消息推送系统

前言首先迟到的祝大家中秋快乐。最近一周多没有更新了。其实我一直想憋一个大招,分享一些大家感兴趣的干货。鉴于最近我个人的工作内容,于是利用这三天小长假憋了一个出来(其实是玩了两天

2018-09-25 08:32:59 868 2

原创 1K star+ 的项目是如何炼成的?

前言首先标题党一下,其实这篇文章主要是记录我的第二个过 1K star 的项目 Java-Interview,顺便分享下其中的过程及经验。需求选择Java-Interview之所以要做这个项目主要是当时我正在面阿里的两个部门,非常幸运的是技术面都过了。其中的过程真是让我受益匪浅更是印象深刻,所以就想把期间的问题记录下来,加上自己的理解希望能对其他朋友起到帮助。...

2018-05-15 08:40:52 534

原创 秒杀架构实践

前言之前在 Java-Interview 中提到过秒杀架构的设计,这次基于其中的理论简单实现了一下。 本次采用循序渐进的方式逐步提高性能达到并发秒杀的效果,文章较长请准备好瓜子板凳(liushuizhang��)。本文所有涉及的代码:https://github.com/crossoverJie/SSMhttps://github.com/crossoverJie...

2018-05-09 10:05:29 1125

原创 StarRocks 升级注意事项

但考虑到之前在社区看到有存算分离集群升级失败导致数据丢失的案例,我们的全量业务已经切换到 StarRocks,如果数据丢失那需要花几天时间进行数据同步,这在业务上是无法接受的,所以我们最好是可以在升级前备份数据,即便是升级失败数据依然还在。因为我们的集群使用的是存算分离的版本,也是使用官方提供的 operator 部署在 kubernetes 里的,所以没法按照官方的流程进入虚拟机手动启停对应的服务。要注意的是我们再备份的时候需要记录在存储桶里的目录名称,之后还原的时候名称得保持一致才行。

2025-03-20 08:08:23 1124

转载 邀请函 | Pulsar Meetup 广州 2025 邀您报名!

,重点讨论Pulsar 结合大语言模型(LLM,如 DeepSeek)在各行各业的应用与实践。等诸多 Pulsar 专家,给大家分享最新的 Pulsar 场景案例、 技术探究、 运维实战和生态演讲,详见议程。我们非常荣幸地宣布,经过多轮筛选, PulsarMeetup 广州 2025 大会的议题出炉啦!,大家扫码关注 「AscentStream谙流科技」公众号和同名视频号,即可凭关注入场领取。本次还添加了 AI 讨论和礼品,干货多多,礼品多多,不容错过!更多细节和惊喜,等你来发现,期待您的参与!

2025-03-19 08:01:06 20

原创 虽迟但到的 2024 总结

这些年我一直都是按照农历新年来写年终总结的,都说不出正月都是年,前些年一直都比较规律,今年确实是时间超了一些。主要原因还是年末接了个活,需要在年初上线,导致这段时间都没太多时间写内容。最近事情终于告一段落后才开始码字。本来打算用 AI 来写的,想想还是算了,现在 AI 大热的时代,越是手工打造的内容越是珍贵????健身回想起来 2024 年投入最多的还是健身,手上的老茧都换了几轮了;以前还不信真有人一天...

2025-03-07 08:08:51 1023

原创 StarRocks 开发环境搭建踩坑指北之存算分离篇

前段时间碰到一个 StarRocks 物化视图的bug: https://github.com/StarRocks/starrocks/issues/55301但是这个问题只能在存算分离的场景下才能复现,为了找到问题原因我便尝试在本地搭建一个可以 Debug 的存算分离版本。之前也分享过在本地 Debug StarRocks,不过那是存算一体的版本,而存算分离稍微要复杂一些。这里提到的本地 De...

2025-02-26 12:01:48 766

原创 k8s 云原生应用如何接入监控.md

前段时间有朋友问我如何在 kubernetes 里搭建监控系统,恰好在公司也在维护内部的可观测平台,正好借这个机会整理下目前常见的自建监控方案。一个完整的监控系统通常包含以下的内容:指标暴露:将系统内部需要关注的指标暴露出去指标采集:收集并存储暴露出来的指标指标展示:以各种图表展示和分析收集到的数据监控告警:当某些关键指标在一定时间周期内出现异常时,可以及时通知相关人员image.png对于 k8...

2025-01-03 08:08:43 1017

原创 深入解析 Istioctl:如何正确更新 Istio 配置?

安装 Istio最近这段时间一直在做服务网格(Istio)相关的工作,背景是我们准备自建 Istio,首先第一件事情就是要安装。我这里直接使用官网推荐的 istioctl 进行安装:$cat<<EOF>./my-config.yamlapiVersion:install.istio.io/v1alpha1kind:IstioOperatormetadat...

2024-12-27 08:08:52 388

原创 如何在平淡的工作中整理出有价值的简历

今天在 HackNews 上看到一个帖子:你们是否很难回忆起在工作中做了哪些贡献?我觉得挺多人都有类似的问题,通常都是在需要面试或者内部晋升的时候才开始思考这些问题,这时候在想的话难免会有遗漏。结合帖子里的回答我整理了以下以下方法。每日记录好记性不如烂笔头,每日做好工作记录,周末再做一次汇总;有部分公司应该就有类似的制度(日报、周报),但那是写给公司看的,这是写给自己整理的;对自己来说只需要整理有...

2024-12-10 08:08:16 483

转载 邀请函 | Pulsar Developer Day 2024 开发者大会邀您报名!

laPulsar 开发者大会(Pulsar Developer Day)是 Apache Pulsar 社区的年度盛会,将于 2024 年 12 月 21 日由组织方谙流科技联合得物技术和协办方 Timeplus 在中国上海首次承办。大会将邀请消息流和数据领域的众多大咖精英聚集于此,通过开展演讲、兴趣游戏和“黑客马拉松”等多种形式,围绕 Pulsar 进行产品推介、项目分享、实践经验交流和最佳开发...

2024-12-06 09:03:06 457

转载 完整议程释出 | 30+全球技术大咖齐聚 StarRocks Summit Asia 2024,共论 Lakehouse 未来...

StarRocks 社区的年度盛会——StarRocks Summit Asia 2024 将于 12 月 7 日在北京隆重登场!StarRocks 社区作为连接用户、平台方、业务方、技术爱好者与学术人员的开放平台,始终致力于打造标准化的行业解决方案,让每一位参与者都能在实践中汲取经验,在交流中碰撞创新。在过去三年的交流中,我们与数百家社区用户共同探讨了大数据领域的主要挑战:随着实时分析需求的激增...

2024-11-28 09:00:20 55

原创 如何选择可以搞钱的技术栈

前言之前在公司主要负责可观测性和 Pulsar 消息队列相关的内容,最近系统比较稳定,只需要做日常运维,所以就抽出时间逐步在接触 OLAP 相关的技术栈。我们用的是 StarRocks,也是目前比较流行的 OLAP 数据库;在接触的这段时间以来,让我越发感觉到选对一个靠谱的技术方向的重要性。这里以 Pulsar 举例,Pulsar 也是 Apache 的顶级项目,有一定的技术门槛,同时也解决以往消...

2024-11-27 09:01:06 777

原创 推荐一些值得学习的开源项目和框架

今天收到球友的问题,让推荐一些值得看的开源项目,觉得 netty 这些太复杂了不太好上手。确实如此,我们日常常用的 Spring、Netty 确实由于发展了多年,看起来比较头大。下面我来推荐一些我看过同时觉得不错的项目(几乎都是我参与过的),由易到难,其中也会包含 Java 和 Go 的项目,包含主流的中间件和云原生项目。Java 项目xxl-job难度:????????推荐指数:????????????xxl-job 是一...

2024-11-21 08:08:11 803

原创 StarRocks 物化视图刷新流程和原理

前段时间给 StarRocks 的物化视图新增了一个特性,那也是我第一次接触 StarRocks,因为完全不熟悉这个数据库,所以很多东西都是从头开始了解概念。为了能顺利的新增这个特性(具体内容可以见后文),我需要把整个物化视图的流程串联一遍,于是便有了这篇文章。在开始之前简单了解下物化视图的基本概念:image.png简单来说,视图和 MySQL 这类传统数据库的概念类似,也是用于解决大量消耗性能...

2024-11-19 08:08:36 1045

原创 时隔五年 9K star 的 IM 项目发布 v2.0.0 了

最近业余时间花了小三个月重构了 cim,也将版本和升级到了 v2.0.0,合并了十几个 PR 同时也新增了几位开发者。image.png其中有两位也是咱们星球里的小伙伴????介绍上次发版还是在五年前了:因为确实已经很久没有更新了,在开始之前还是先介绍 cim 是什么。这里有一张简单的使用图片:同时以前也有录过相关的视频:通过 cim 这个名字和视频可以看出,它具备 IM 即时通讯的基本功能,同时基于它...

2024-11-06 08:08:45 558

原创 线上高延迟请求排查

前几天排查了一个业务接口执行高延迟的问题,也挺有参考意义的,分享一下排查过程。本文首发在我的知识星球里,感兴趣的朋友可以加入:现象是业务反馈有一个接口业务逻辑其实很简单,但是调用一次耗时,如下图所示:排查应用运行状态首先第一步需要查看当时的应用运行状态,包含当时的日志、JVM 的各种监控等。因为我们接入了 OpenTelemetry,所以 trace 和日志是可以关联起来的。点击链路系统旁边的日志...

2024-10-29 08:08:09 520

原创 深入理解 StarRocks 的元数据管理

背景最近在排查 starrocks 线上的一个告警日志:每隔一段时间都会打印 base-table 也就是物化视图的基表被删除了,但其实表还在,也没人去删除;我们就怀疑是否真的表被删除了(可能是 bug)。与此同时还有物化视图 inactive 的日志,也怀疑如果视图是 inactive 之后会导致业务使用有问题。为了确认这个日志是否对使用影响,就得需要搞清楚它出现的原因;于是我就着手从日志打印的...

2024-10-21 08:08:37 1168

原创 IM系统重构到 SDK 设计的最佳实践

SDK 设计在之前提到了 cim 在做集成测试的时候遇到的问题,需要提供一个 SDK 来解决,于是我花了一些时间编写了 SDK,同时也将 cim-client 重构了。重构后的代码长这个样子:@BeanpublicClientbuildClient(@Qualifier("callBackThreadPool")ThreadPoolExecutorcallbackThreadPo...

2024-10-14 08:08:45 876

原创 StarRocks 开发环境搭建踩坑指北

背景最近这段时间在处理一个 StarRocks 的关于物化视图优化的一个问题,在此之前其实我也没有接触过 StarRocks 这类主要处理数据分析的数据库,就更别提在这上面做优化了。在解决问题之前我先花了一两天时间熟悉了一下 StarRocks 的一些概念和使用方法,然后又花了一些时间搭建环境然后复现了该问题。之后便开始阅读源码,大概知道了相关代码的执行流程,但即便是反复阅读了多次代码也没有找到具...

2024-10-09 08:08:43 998

原创 如何为复杂的 Java 应用编写集成测试

本文来自星球的文章,感兴趣的可以扫码加入。最近有时间又把以前开源的 IM 消息系统捡起来继续开发了(确实这些年经常有朋友催更)。没错,确实是这些年,因为上次发版还是再 2019 年的八月份。这段时间比较重大的更新就是把元数据中心抽离出来了,以前是和 zookeeper 的代码强耦合在一起的,重构之后可以有多种实现了。今后甚至可以提供一个 jar 包就可以把后端服务全部启动起来用于体验,此时就可以使...

2024-09-29 12:00:58 789

转载 OpenTelemetry 实战:从 0 到 1 编写一个 Instrumentation

点击关注公众号,“技术干货”及时达!本文为稀土掘金技术社区首发签约文章背景因为公司内部在使用 PowerJob 作为我们的分布式调度系统,同时又是使用 OpenTelemetry 作为可观测的底座,但目前 OpenTelemetry 还没有对 PowerJob 提供支持,目前社区只对同类型的 XXL-JOB 有支持。恰好公司内部也有一些开发同学有类似的需求:于是在这个背景下我便开始着手开发 Po...

2024-09-27 08:08:52 273

转载 我用我的270篇文章做了一个数字 AI 替身

23 年在 ChatGPT 刚出来的时候就在 V 站上看到有一个看到有大佬用自己的微信聊天记录和博客文章生成了一个 AI 替身:image.png当时就想着自己做一个,不过当时实现起来还比较复杂,直到如今 AI 已经越来越普及,想做一个自己的 AI 替身成本也非常低了。于是就有了下图里的效果:和自己的内容这么对话还挺有意思的,现在大家就可以直接在我公众号回复消息和”他“聊天。也可以通过小程序来使用...

2024-09-24 08:08:42 73

原创 OpenTelemetry在企业内部应用所需要的技术栈

可观测性概念当一个软件或系统出于运行状态时,如果我们不对他加以观测,那它的运行状态对我们来说就是一个黑盒。如上图所示。我们只能通过业务的表象来判断它是否正常运行,无法在故障发生前进行预判,从而只能被动解决问题。这类问题在微服务时代体现的更加明显,即便是业务已经出现问题,在没有可观测性系统的前提下想要定位问题更是难上加难。好在可观测性这个概念由来已久,已经由一些业界大佬抽象出几个基本概念:Logs:...

2024-09-18 07:57:11 696

转载 邀请函 | Pulsar Meetup 北京 2024

Pulsar Meetup 是 Apache Pulsar 区域性聚会。大会将邀请 Pulsar 专家为大家带来 Apache Pulsar 的最新进展、最佳实践和行业应用案例。参会人员将有机会和领域专家直接交流,分享经验,同时也能与同行建立联系,共同促进 Pulsar 社区的蓬勃发展!PulsarMeetup 北京 2024-PulsarMeetup -PulsarMeetup 北京 2...

2024-09-12 08:00:51 102

原创 日志与追踪的完美融合:OpenTelemetry MDC实践指南

前言在前面两篇实战文章中:OpenTelemetry 实战:从零实现分布式链路追踪OpenTelemetry 实战:从零实现应用指标监控覆盖了可观测中的指标追踪和 metrics 监控,下面理应开始第三部分:日志。但在开始日志之前还是要先将链路追踪和日志结合起来看看应用实际使用的实践。通常我们排查问题的方式是先查询异常日志,判断是否是当前系统的问题。如果不是,则在日志中捞出 trace_id 再到...

2024-09-11 08:08:50 2025

转载 业界首个OpenTelemetry结合eBPF的向导式可观测性平台APO正式开源

AutoPilot Observability (简称APO)是什么?开箱即用的可观测性平台:APO 致力于提供一键安装、开箱即用的可观测性平台。APO 的 OneAgent 支持一键免配置安装 Tracing 探针,支持采集应用的故障现场日志、基础设施指标、应用和下游依赖的网络指标以及Kubernetes 事件,支持采集基于 eBPF 实现的北极星因果指标等数据。支持使用 Jaeger UI 查...

2024-09-05 08:01:01 306

原创 OpenTelemetry 实战:gRPC 监控的实现原理

前言最近在给 opentelemetry-java-instrumentation 提交了一个 PR,是关于给 gRPC 新增四个 metrics:rpc.client.request.size: 客户端请求包大小rpc.client.response.size:客户端收到的响应包大小rpc.server.request.size:服务端收到的请求包大小rpc.server.response.si...

2024-09-04 08:09:00 1033

原创 OpenTelemetry 实战:从零实现应用指标监控

前言在上一篇文章:OpenTelemetry 实战:从零实现分布式链路追踪讲解了链路相关的实战,本次我们继续跟进如何使用 OpenTelemetry 集成 metrics 监控。建议对指标监控不太熟的朋友可以先查看这篇前菜文章:从 Prometheus 到 OpenTelemetry:指标监控的演进与实践名称作用语言版本java-demo发送 gRPC 请求的客户端Javaopentelemetr...

2024-08-28 08:08:36 1959 1

原创 OpenTelemetry 实战:从零实现分布式链路追踪

背景之前写过一篇 从 Dapper 到 OpenTelemetry:分布式追踪的演进之旅的文章,主要是从概念上讲解了 Trace 在 OpenTelemetry 的中的场景和使用。也写过一篇 实操 OpenTelemetry:通过 Demo 掌握微服务监控的艺术:如何从一个 demo 开始集成 OpenTelemetry。但还是有不少小伙伴反馈说无法快速上手(可能也是这个 demo 的项目比较多)...

2024-08-21 08:08:51 1859

原创 深入理解单元测试:技巧与最佳实践

之前分享过如何快速上手开源项目以及如何在开源项目里做集成测试,但还没有讲过具体的实操。今天来详细讲讲如何写单元测试。????什么情况下需要单元测试这个大家应该是有共识的,对于一些功能单一、核心逻辑、同时变化不频繁的公开函数才有必要做单元测试。对于业务复杂、链路繁琐但也是核心流程的功能通常建议做 e2e 测试,这样可以保证最终测试结果的一致性。????具体案例我们都知道单测的主要目的是模拟执行你写过的每一行代码...

2024-08-15 08:08:51 409

原创 Pulsar升级自动化:一键搞定集群升级与测试

背景由于我在公司内部负责维护 Pulsar,需要时不时的升级 Pulsar 版本从而和社区保持一致。而每次升级过程都需要做相同的步骤:安装一个新版本的集群触发功能性测试触发性能测试查看监控是否正常应用有无异常日志流量是否正常各个组件的内存占用是否正常写入延迟是否正常命令行工具以上的流程步骤最好是全部一键完成,我们只需要人工检测下监控是否正常即可。于是我便写了一个命令行工具,执行流程如下:pulsa...

2024-08-07 08:08:08 1130

原创 Pulsar客户端消费模式揭秘:Go 语言实现 ZeroQueueConsumer

前段时间在 pulsar-client-go 社区里看到这么一个 issue:import"github.com/apache/pulsar-client-go/pulsar"client,err:=pulsar.NewClient(pulsar.ClientOptions{URL:"pulsar://localhost:6650",})iferr!=nil{...

2024-07-30 08:08:42 440

原创 Nginx监控不再难:简化部署流程,提升监控效率

前段时间接到一个需求,希望可以监控 Nginx 的运行状态。我们都知道 Nginx 作为一个流行的 Web 服务器提供了多种能力,包括反向代理、负载均衡;也支持了许多协议,包括:gRPChttpWebSocket 等作为一个流量入口的中间件,对其的监控就显得至关重要了。市面上也有一些现成的产品可以监控 Nginx,比如知名的监控服务商 datadog 也提供了 Nginx 的监控。但是我这是一个...

2024-07-24 08:08:40 1040

转载 案例实践 | 如何做好 Apache Pulsar 的运维?ASP 产品简介

本文整理自 Pulsar Meetup 深圳2024 大会,由来自 AscentStream 谙流科技技术合伙人魏祥臣带来的《如何做好 Apache Pulsar 的运维?ASP 产品简介》的演讲视频。嘉宾|魏祥臣, AscentStream 谙流科技技术合伙人编辑|社区志愿者 陈杰(crossoverJie),Teng FuPulsar运维的四个阶段- Four stages of Pulsar...

2024-07-19 08:00:32 162

原创 载均衡技术全解析:Pulsar 分布式系统的最佳实践

背景Pulsar 有提供一个查询 Broker 负载的接口:/***Getloadforthisbroker.**@return*@throwsPulsarAdminException*/LoadManagerReportgetLoadReport()throwsPulsarAdminException;pub...

2024-07-16 08:08:26 1115

原创 我是如何从零到成为 Apache 顶级项目的 Committer

最近收到了 Apache Pulsar 和 Apache HertzBeat社区的邀请邮件,成为了这两个项目的 Committer。一路走来我从最开始的打游击战的闲散人员到如今活跃在各个开源项目里的“老兵”,用现在流行的话来说 Apache 的这两个 Committer 就相当于是拿到了编制,进入了正规军。下面就分享一下我的个人开源经历,希望对想要参与开源或者已经在其中的开发者有所帮助。我的 Gi...

2024-07-12 08:08:52 1281

转载 开源项目如何做集成测试

之前有朋友问如何做集成测试,今天就重点讲讲这个集成测试在开源项目中是如何做的。通常是需要对外提供服务的开源项目都需要集成测试:PulsarKafkaDubbo 等而只提供本地类库的项目通常只需要编写单元测试即可:HutoolApache Commmon以我接触到的服务型应用主要分为两类:一个是 Java 应用一个是 Golang 应用。????GolangGolang 因为工具链没有 Java 那么强大...

2024-07-10 08:08:35 113

原创 从Helm到 Operator:Kubernetes应用管理的进化

????Helm 的作用在开始前需要先对 kubernetes Operator 有个简单的认识。以为我们在编写部署一些简单 Deployment 的时候只需要自己编写一个 yaml 文件然后 kubectl apply 即可。apiVersion:apps/v1kind:Deploymentmetadata:labels:app:k8s-combat...

2024-07-08 08:08:11 1259 1

空空如也

空空如也

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

TA关注的人

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