SF
crossoverJie专栏
crossoverJie专栏
注册登录
关注博客
注册登录
主页
关于
RSS
没错,老板让我写个 BUG!
crossoverJie
2018-12-12
阅读 4 分钟
2.2k
先来看看具体是要干啥吧,其实主要就是要让一些负载很低的服务器额外消耗一些内存、CPU 等资源(至于背景就不多说了),让它的负载可以提高一些。
如何判断一个元素在亿级数据中是否存在?
crossoverJie
2018-11-26
阅读 8 分钟
4.6k
前言 最近有朋友问我这么一个面试题目: 现在有一个非常庞大的数据,假设全是 int 类型。现在我给你一个数,你需要告诉我它是否存在其中(尽量高效)。 需求其实很清晰,只是要判断一个数据是否存在即可。 但这里有一个比较重要的前提:非常庞大的数据。 常规实现 先不考虑这个条件,我们脑海中出现的第一种方案是什么? ...
分享一些 Kafka 消费数据的小经验
crossoverJie
2018-11-20
阅读 4 分钟
8.6k
就我的使用经验来说,大部分情况都是处于数据下游的消费者角色。也用 Kafka 消费过日均过亿的消息(不得不佩服 Kakfa 的设计),本文将借助我使用 Kakfa 消费数据的经验来聊聊如何高效的消费数据。
设计一个可拔插的 IOC 容器
crossoverJie
2018-11-15
阅读 4 分钟
2.7k
前言 磨了许久,借助最近的一次通宵上线 cicada 终于更新了 v2.0.0 版本。 之所以大的版本号变为 2,确实是向下不兼容了;主要表现为: 修复了几个反馈的 bug。 灵活的路由方式。 可拔插的 IOC 容器选择。 其中重点是后面两个。 新的路由方式 先来看第一个:路由方式的更新。 在之前的版本想要写一个接口必须的实现一个 ...
不改一行代码定位线上性能问题
crossoverJie
2018-11-12
阅读 4 分钟
2.8k
背景 最近时运不佳,几乎天天被线上问题骚扰。前几天刚解决了一个 HashSet 的并发问题,周六又来了一个性能问题。 大致的现象是: 我们提供出去的一个 OpenAPI 反应时快时慢,快的时候几十毫秒,慢的时候几秒钟才响应。 尝试解决 由于这种也不是业务问题,不能直接定位。所以尝试在测试环境复现,但遗憾的测试环境贼快。...
一次 HashSet 所引起的并发问题
crossoverJie
2018-11-08
阅读 4 分钟
4.3k
背景 上午刚到公司,准备开始一天的摸鱼之旅时突然收到了一封监控中心的邮件。 心中暗道不好,因为监控系统从来不会告诉我应用完美无 bug,其实系统挺猥琐。 打开邮件一看,果然告知我有一个应用的线程池队列达到阈值触发了报警。 由于这个应用出问题非常影响用户体验;于是立马让运维保留现场 dump 线程和内存同时重启...
1.6W star 的 JCSprout 阅读体验大提升
crossoverJie
2018-11-06
阅读 2 分钟
2.3k
万万没想到 JCSprout 截止目前居然有将近1.6W star。真的非常感谢各位大佬的支持。 年初时创建这个 repo 原本只是想根据自己面试与被面试的经历记录一些核心知识点,结果却是越写越多。 <!--more--> 在我自己宣传和其他技术大佬(包括阮大)的助攻之下连续两个月都在 GitHub trending Java片区的榜首。 甚至有一次还...
一份针对于新手的多线程实践--进阶篇
crossoverJie
2018-11-01
阅读 3 分钟
2k
这只是多线程其中的一个用法,相信看到这里的朋友应该多它的理解更进一步了。 再给大家留个阅后练习,场景也是类似的: 在 Redis 或者其他存储介质中存放有上千万的手机号码数据,每个号码都是唯一的,需要在最快的时间内把这些号码全部都遍历一遍。
一份针对于新手的多线程实践
crossoverJie
2018-10-29
阅读 7 分钟
2.2k
前段时间在某个第三方平台看到我写作字数居然突破了 10W 字,难以想象高中 800 字作文我都得巧妙的利用换行来完成(懂的人肯定也干过?)。
利用责任链模式设计一个拦截器
crossoverJie
2018-10-22
阅读 5 分钟
9.2k
前言 近期在做 Cicada 的拦截器功能,正好用到了责任链模式。 这个设计模式在日常使用中频率还是挺高的,借此机会来分析分析。 责任链模式 先来看看什么是责任链模式。 引用一段维基百科对其的解释: 责任链模式在面向对象程式设计里是一种软件设计模式,它包含了一些命令对象和一系列的处理对象。每一个处理对象决定它...
分享几个 SpringBoot 实用的小技巧
crossoverJie
2018-10-15
阅读 5 分钟
2.5k
最近分享的一些源码、框架设计的东西。我发现大家热情不是特别高,想想大多数应该还是正儿八经写代码的居多;这次就分享一点接地气的: SpringBoot 使用中的一些小技巧。
从源码分析如何优雅的使用 Kafka 生产者
crossoverJie
2018-10-11
阅读 6 分钟
9.1k
前言 在上文 设计一个百万级的消息推送系统 中提到消息流转采用的是 Kafka 作为中间件。 其中有朋友咨询在大量消息的情况下 Kakfa 是如何保证消息的高效及一致性呢? 正好以这个问题结合 Kakfa 的源码讨论下如何正确、高效的发送消息。 内容较多,对源码感兴趣的朋友请系好安全带?(源码基于 v0.10.0.0 版本分析)。同时最...
「造个轮子」——设计 HTTP 请求全局上下文
crossoverJie
2018-10-09
阅读 4 分钟
5.3k
前言 本次 Cicada 已经更新到了 v1.0.3。 主要是解决了两个 issue,#9(Boss线程数好像设置有误 ) #8(怎么返回纯字符串内容不要JSON格式?)。 所以本次的主要更新为: Cicada 采用合理的线程分配来处理接入请求线程以及 IO 线程。 支持多种响应方式(以前只有 json,现在支持 text)。 为了满足上者引入了 context。 优雅...
设计一个百万级的消息推送系统
crossoverJie
2018-09-25
阅读 6 分钟
13.1k
前言 首先迟到的祝大家中秋快乐。 最近一周多没有更新了。其实我一直想憋一个大招,分享一些大家感兴趣的干货。 鉴于最近我个人的工作内容,于是利用这三天小长假憋了一个出来(其实是玩了两天?)。 先简单说下本次的主题,由于我最近做的是物联网相关的开发工作,其中就不免会遇到和设备的交互。 最主要的工作就是要有...
「造个轮子」——cicada 设计一个配置模块
crossoverJie
2018-09-14
阅读 4 分钟
1.6k
前言 在前两次的 cicada 版本中其实还不支持读取配置文件,比如对端口、路由的配置。 因此我按照自己的想法创建了一个 issue ,也收集到了一些很不错的建议。 最终其实还是按照我之前的想法来做了这个配置管理。 同时将 cicada 升级到了 v1.0.2。 目标 在做之前是要把需求想好,到底怎样的一个配置管理是对开发人员来说...
【译】如何高效的使用 Git
crossoverJie
2018-09-07
阅读 3 分钟
2.2k
原文链接 [链接] 代码昨天还是运行好好的今天就不行了。代码被删了。 突然出现了一个奇怪的 bug,但是没人知道怎么回事。 如果你出现过上面的任何一种情况,那本篇文章就是为你准备的。 除了知道 git add, git commit , git push 之外,Git 中还需要其他重要的技术需要掌握。长远来看对我们是有帮助的。这里我将向你展示...
「造个轮子」——cicada 源码分析
crossoverJie
2018-09-05
阅读 5 分钟
1.6k
两天前写了文章[《「造个轮子」——cicada(轻量级 WEB 框架)》]([链接] 向大家介绍了 cicada 之后收到很多反馈,也有许多不错的建议。
「造个轮子」——cicada(轻量级 WEB 框架)
crossoverJie
2018-09-03
阅读 5 分钟
2.9k
前言 俗话说 「不要重复造轮子」,关于是否有必要不再本次讨论范围。 创建这个项目的主要目的还是提升自己,看看和知名类开源项目的差距以及学习优秀的开源方式。 好了,现在着重来谈谈 cicada 这个项目的核心功能。 我把他定义为一个快速、轻量级 WEB 框架;没有过多的依赖,核心 jar 包仅 30KB。 也仅需要一行代码即可...
强如 Disruptor 也发生内存溢出?
crossoverJie
2018-08-29
阅读 3 分钟
9.5k
前言 OutOfMemoryError 问题相信很多朋友都遇到过,相对于常见的业务异常(数组越界、空指针等)来说这类问题是很难定位和解决的。 本文以最近碰到的一次线上内存溢出的定位、解决问题的方式展开;希望能对碰到类似问题的同学带来思路和帮助。 主要从表现-->排查-->定位-->解决 四个步骤来分析和解决问题。 <...
分布式(一) 搞定服务注册与发现
crossoverJie
2018-08-27
阅读 5 分钟
4.7k
背景 最近在做分布式相关的工作,由于人手不够只能我一个人来怼;看着这段时间的加班表想想就是够惨的。 不过其中也有遇到的不少有意思的事情今后再拿来分享,今天重点来讨论服务的注册与发现。 分布式带来的问题 我的业务比较简单,只是需要知道现在有哪些服务实例可供使用就可以了(并不是做远程调用,只需要拿到信息...
什么样的简历不会被丢进回收站
crossoverJie
2018-08-21
阅读 2 分钟
3.5k
前言 从去年校招开始到现在负责部门的面试,从我手上流走的简历多多少少也有上百封了。 同时最近秋招又要开始了,就想着把我这一年来筛选简历的经验分享给大家,多少还是能提高一些命中率。 突出优势 「简历」自然是突出简单的好,相信大部分面试官都不是全职做面试工作;多数都是工作之余筛选简历。 就我的情况来说,每...
GitHub 1W star 成就达成!
crossoverJie
2018-08-17
阅读 2 分钟
5.2k
起因 感谢各位大佬的支持收获了人生第一个(很有可能也是唯一一个)1W star 项目。 从今年一月份创建项目至今 8 个月时间。 一共关闭了 27 个 issue,47 个 RP,总共有 11 位小伙伴参与维护。 神奇般的连续两个月上了 GitHub Java 热门榜首。 整个热度走势图也是一路向北: 过程中也有许多朋友反馈得到了帮助,自己确实...
如何成为一位「不那么差」的程序员
crossoverJie
2018-08-13
阅读 6 分钟
7.4k
前言 已经记不清有多少读者问过: 博主,你是怎么学习的?像我这样的情况有啥好的建议嘛? 也不知道啥时候我居然成人生导师了。当然我不排斥这些问题,和大家交流都是学习的过程。 因此也许诺会准备一篇关于学习方面的文章;所以本文其实准备了很久,篇幅较长,大家耐心看完希望能有收获。 以下内容仅代表我从业以来所积...
Netty(三) 什么是 TCP 拆、粘包?如何解决?
crossoverJie
2018-08-06
阅读 9 分钟
9.2k
前言 记得前段时间我们生产上的一个网关出现了故障。 这个网关逻辑非常简单,就是接收客户端的请求然后解析报文最后发送短信。 但这个请求并不是常见的 HTTP ,而是利用 Netty 自定义的协议。 有个前提是:网关是需要读取一段完整的报文才能进行后面的逻辑。 问题是有天突然发现网关解析报文出错,查看了客户端的发送日...
如何优雅的使用和理解线程池
crossoverJie
2018-07-30
阅读 9 分钟
27.2k
前言 平时接触过多线程开发的童鞋应该都或多或少了解过线程池,之前发布的《阿里巴巴 Java 手册》里也有一条: 可见线程池的重要性。 简单来说使用线程池有以下几个目的: 线程是稀缺资源,不能频繁的创建。 解耦作用;线程的创建于执行完全分开,方便维护。 应当将其放入一个池子中,可以给其他任务进行复用。 线程池原...
HashMap? ConcurrentHashMap? 相信看完这篇没人能难住你!
crossoverJie
2018-07-23
阅读 14 分钟
15.9k
本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 HashMap,没有它就不会有后面的 ConcurrentHashMap。
Guava 源码分析(Cache 原理【二阶段】)
crossoverJie
2018-07-16
阅读 7 分钟
5.1k
前言 在上文「Guava 源码分析(Cache 原理)」中分析了 Guava Cache 的相关原理。 文末提到了回收机制、移除时间通知等内容,许多朋友也挺感兴趣,这次就这两个内容再来分析分析。 在开始之前先补习下 Java 自带的两个特性,Guava 中都有具体的应用。 Java 中的引用 首先是 Java 中的引用。 在之前分享过 JVM 是根据可达...
一次线上问题排查所引发的思考
crossoverJie
2018-07-09
阅读 3 分钟
4.8k
前言 之前或多或少分享过一些内存模型、对象创建之类的内容,其实大部分人看完都是懵懵懂懂,也不知道这些的实际意义。 直到有一天你会碰到线上奇奇怪怪的问题,如: 线程执行一个任务迟迟没有返回,应用假死。 接口响应缓慢,甚至请求超时。 CPU 高负载运行。 这类问题并不像一个空指针、数组越界这样明显好查,这时就...
Netty(二) 从线程模型的角度看 Netty 为什么是高性能的?
crossoverJie
2018-07-05
阅读 4 分钟
13.8k
前言 在之前的 SpringBoot 整合长连接心跳机制 一文中认识了 Netty。 但其实只是能用,为什么要用 Netty?它有哪些优势?这些其实都不清楚。 本文就来从历史源头说道说道。 传统 IO 在 Netty 以及 NIO 出现之前,我们写 IO 应用其实用的都是用 java.io.* 下所提供的包。 比如下面的伪代码: {代码...} <!--more-->...
一个学渣的阿里之路
crossoverJie
2018-06-22
阅读 5 分钟
10.1k
前言 最近有些朋友在面试阿里,加上 Java-Interview 项目的原因也有小伙伴和我讨论,近期也在负责部门的招牌,这让我想起年初那段长达三个月的奇葩面试经历?。 本来没想拿出来说的,毕竟最后也没成。 但由于那几个月的经历让我了解到了大厂的工作方式、对候选同学的考察重点以及面试官的套路等都有了全新的认识。 当然最...
1
…
More
3
4
5
(current)
6
下一页
上一页
5
(current)
下一页