摘要: 新的一年第一篇技术文章希望开个好头,所以元旦三天我也没怎么闲着,希望给大家带来一篇比较感兴趣的干货内容。 老读者应该还记得我在去年国庆节前分享过一篇《设计一个百万级的消息推送系统》;虽然我在文中有贴一些伪代码,依然有些朋友希望能直接分享一些可以运行的源码;这么久了是时候把坑填上了。 阅读全文
posted @ 2019-01-02 08:03 crossoverJie 阅读(15351) 评论(31) 推荐(41) 编辑
摘要: 首先迟到的祝大家中秋快乐。 最近一周多没有更新了。其实我一直想憋一个大招,分享一些大家感兴趣的干货。 鉴于最近我个人的工作内容,于是利用这三天小长假憋了一个出来(其实是玩了两天🤣)。 阅读全文
posted @ 2018-09-25 08:22 crossoverJie 阅读(11610) 评论(33) 推荐(28) 编辑
摘要: 已经记不清有多少读者问过: 博主,你是怎么学习的?像我这样的情况有啥好的建议嘛? 也不知道啥时候我居然成人生导师了。当然我不排斥这些问题,和大家交流都是学习的过程。 阅读全文
posted @ 2018-08-13 08:05 crossoverJie 阅读(3340) 评论(16) 推荐(25) 编辑
摘要: 之前在 Java-Interview 中提到过秒杀架构的设计,这次基于其中的理论简单实现了一下。 本次采用循序渐进的方式逐步提高性能达到并发秒杀的效果,文章较长请准备好瓜子板凳(liushuizhang😂)。 阅读全文
posted @ 2018-07-26 08:02 crossoverJie 阅读(2543) 评论(12) 推荐(14) 编辑
摘要: 前言 最近又在重新学习编译原理了,其实两年前也复习过,当初是为了能实现通过 MySQL 的 DDL 生成 Python 中 sqlalchemy 的 model。 相关文章在这里:手写一个词法分析器 虽然完成了相关功能,但现在看来其实实现的比较糙的,而且也只运用到了词法分析;所以这次我的目的是可以通 阅读全文
posted @ 2022-05-31 12:49 crossoverJie 阅读(483) 评论(1) 推荐(1) 编辑
摘要: 背景 前段时间同事碰到一个问题,需要在 SpringCloud 的 Feign 调用中使用自定义的 URL;通常情况下是没有这个需求的;毕竟都用了 SpringCloud 的了,那服务之间的调用都是走注册中心的,不会需要自定义 URL 的情况。 但也有特殊的,比如我们这里碰到 ToB 场景,需要对每 阅读全文
posted @ 2022-05-23 17:50 crossoverJie 阅读(1231) 评论(2) 推荐(4) 编辑
摘要: 前言 大概在两年前我写过一篇 撸了一个 Feign 增强包,当时准备是利用 SpringBoot + K8s 构建应用,这个库可以类似于 SpringCloud 那样结合 SpringBoot 使用声明式接口来达到服务间通讯的目的。 但后期由于技术栈发生变化(改为 Go),导致该项目只实现了基本需求 阅读全文
posted @ 2022-05-06 13:13 crossoverJie 阅读(278) 评论(1) 推荐(1) 编辑
摘要: 背景 许久没有分享 Java 相关的问题排查了,最近帮同事一起排查了一个问题: 在使用 Pulsar 消费时,发生了同一条消息反复消费的情况。 排查 当他告诉我这个现象的时候我就持怀疑态度,根据之前使用的经验 Pulsar 在官方文档以及 API 中都解释过: 只有当设置了消费的 ackTimeou 阅读全文
posted @ 2022-03-23 18:02 crossoverJie 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 介绍 我猜测大部分长期使用 Java 的开发者应该较少会接触 gRPC,毕竟在 Java 圈子里大部分使用的还是 Dubbo/SpringClound 这两类服务框架。 我也是近段时间有机会从零开始重构业务才接触到 gRPC 的,当时选择 gRPC 时也有几个原因: 基于云原生的思路开发部署项目,而 阅读全文
posted @ 2022-03-10 18:15 crossoverJie 阅读(677) 评论(0) 推荐(0) 编辑
摘要: 前言 最近实现某个业务时,需要读取数据然后再异步处理;在 Go 中实现起来自然就比较简单,伪代码如下: list := []*Demo{{"a"}, {"b"}} for _, v := range list { go func() { fmt.Println("name="+v.Name) }() 阅读全文
posted @ 2021-12-28 00:43 crossoverJie 阅读(625) 评论(1) 推荐(2) 编辑
摘要: 前言 早在几年前写过关于 LRU cache 的文章: http://crossoverjie.top/2018/04/07/algorithm/LRU-cache/ 当时是用 Java 实现的,最近我在完善 ptg 时正好需要一个最近最少使用的数据结构来存储历史记录。 ptg: Performa 阅读全文
posted @ 2021-12-20 18:27 crossoverJie 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 前言 平时大家写完 gRPC 接口后是如何测试的?往往有以下几个方法: 写单测代码,自己模拟客户端测试。 可以搭一个 gRPC-Gateway 服务,这样就可以在 postman 中进行模拟。 但这两种方法都不是特别优雅;第一种方法当请求结构体嵌套特别复杂时,在代码中维护起来就不是很直观;而且代码会 阅读全文
posted @ 2021-11-29 18:03 crossoverJie 阅读(574) 评论(2) 推荐(1) 编辑
摘要: 前言 前段时间有个项目即将上线,需要对其中的核心接口进行压测;由于我们的接口是 gRPC 协议,找了一圈发现压测工具并不像 HTTP 那么多。 最终发现了 ghz 这个工具,功能也非常齐全。 事后我在想为啥做 gRPC 压测的工具这么少,是有什么难点嘛?为了验证这个问题于是我准备自己写一个工具。 特 阅读全文
posted @ 2021-11-15 17:40 crossoverJie 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 不知不觉写 Go 已经快一年了,上线了大大小小好几个项目;心态也经历了几轮变化。 因为我个人大概前五年时间写的是 Java ,中途写过一年多的 Python,所以刚接触到 Go 时的感觉如下图: 既没有 Java 的生态,也没有 Python 这么多语法糖。 写到现在的感觉就是: 这里就不讨论这几门 阅读全文
posted @ 2021-11-02 08:17 crossoverJie 阅读(907) 评论(1) 推荐(2) 编辑