共 5 页: 上一页 1 2 3 4 5 下一页
摘要:前言 以前一直用的是 windows 的,但是最近特别想买个 macOS 的。其实不是为了其他什么目的,只是涉及到开发 macOS更接近 linux 系统,一直没使用过所以就想尝试体验下,而且现在很多公司都配置了 mac 给开发人员使用,像阿里很多部门都是配 Macbook 的。提前体验下,不仅自己 阅读全文
posted @ 2019-03-04 00:20 JaJian 阅读 (13993) 评论 (55) 编辑
摘要:寒冬的思考 2019年初,俗话说"金三银四"。这时候面试不知道你们慌不慌张。因为2018年冬天是寒冷的。其实18年的低温持续时间不算很长,我也没有披上军大衣。但是突如其来的互联网寒冬影响了不少人,互联网寒冬当然主要受影响的就是程序员了。 回顾过往,2017年是互联网高速发展的一年,共享经济仅仅一个概 阅读全文
posted @ 2019-02-18 09:06 JaJian 阅读 (6357) 评论 (32) 编辑
摘要:Java7 中 ConcurrentHashMap ConcurrentHashMap 和 HashMap 思路是差不多的,但是因为它支持并发操作,所以要复杂一些。 整个 ConcurrentHashMap 由一个个 Segment 组成,Segment 代表”部分“或”一段“的意思,所以很多地方都 阅读全文
posted @ 2019-02-17 17:24 JaJian 阅读 (694) 评论 (2) 编辑
摘要:HashMap 可能是面试的时候必问的题目了,面试官为什么都偏爱拿这个问应聘者?因为 HashMap 它的设计结构和原理比较有意思,它既可以考初学者对 Java 集合的了解又可以深度的发现应聘者的数据结构功底。 阅读前提:本文分析的是源码,所以至少读者要熟悉它们的接口使用,同时,对于并发,读者至少要 阅读全文
posted @ 2019-02-16 21:12 JaJian 阅读 (616) 评论 (0) 编辑
摘要:记得刚毕业找工作面试的时候,经常会被问到:你知道“3次握手,4次挥手”吗?这时候我会“胸有成竹”地“背诵”前期准备好的“答案”,第一次怎么怎么,第二次……答完就没有下文了,面试官貌似也没有深入下去的意思,深入下去我也不懂,皆大欢喜! 作为程序员,要有“刨根问底”的精神。知其然,更要知其所以然。这篇文 阅读全文
posted @ 2019-01-22 23:09 JaJian 阅读 (822) 评论 (6) 编辑
摘要:前情提示 上篇文章: "《互联网面试必杀:如何保证消息中间件全链路数据100%不丢失:第三篇》" ,我们分析了 RabbitMQ 开启手动ack机制保证消费端数据不丢失的时候,prefetch 机制对消费者的吞吐量以及内存消耗的影响。 通过分析,我们知道了 prefetch 过大容易导致内存溢出,p 阅读全文
posted @ 2019-01-21 09:58 JaJian 阅读 (608) 评论 (3) 编辑
摘要:前情提示 上一篇文章: " " ,我们分析了 ack 机制的底层实现原理( 机制),还有消除处理失败时的nack机制如何触发消息重发。 通过这个,已经让大家进一步对消费端保证数据不丢失的方案的理解更进一层了。 这篇文章,我们将会对 ack 底层的 机制进行更加深入的分析,让大家理解的更加透彻一些。 阅读全文
posted @ 2019-01-20 12:01 JaJian 阅读 (686) 评论 (1) 编辑
摘要:前情提示 上一篇文章 "《互联网面试必杀:如何保证消息中间件全链路数据100%不丢失:第一篇》" ,我们初步介绍了之前制定的那些消息中间件数据不丢失的技术方案遗留的问题。 一个最大的问题,就是生产者投递出去的消息,可能会丢失。 丢失的原因有很多,比如消息在网络传输到一半的时候因为网络故障就丢了,或者 阅读全文
posted @ 2019-01-19 20:10 JaJian 阅读 (772) 评论 (0) 编辑
摘要:背景引入 这篇文章,我们来聊聊在线上生产环境使用消息中间件技术的时候,从前到后的全链路到底如何保证数据不能丢失。 这个问题,在互联网公司面试的时候高频出现,而且也是非常现实的生产环境问题。 如果你的简历中写了自己熟悉MQ技术(RabbitMQ、RocketMQ、Kafka),而且在项目里有使用的经验 阅读全文
posted @ 2019-01-11 21:56 JaJian 阅读 (1938) 评论 (1) 编辑
摘要:什么是循环依赖? 循环依赖其实就是循环引用,也就是两个或则两个以上的 Bean 互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。如下图: 如果在日常开发中我们用new 对象的方式发生这种循环依赖的话程序会在运行时一直循环调用,直至内存溢出报错。下面说一下Spring是如果解决循 阅读全文
posted @ 2019-01-08 22:56 JaJian 阅读 (735) 评论 (0) 编辑
摘要:发现方式 Zen discovery是内建的、默认的、用于Elasticsearch的发现模块。它提供了单播和基于文件的发现,可以通过插件扩展到支持云环境和其他形式的发现。 Zen Discovery 是与其他模块集成的,例如,节点之间的所有通信都使用 "transport" 模块完成。某个节点通过 阅读全文
posted @ 2018-12-27 09:01 JaJian 阅读 (1868) 评论 (0) 编辑
摘要:前言 通过前面章节的了解,我们已经知道 Elasticsearch 是一个实时的分布式搜索分析引擎,它能让你以一个之前从未有过的速度和规模,去探索你的数据。它被用作全文检索、结构化搜索、分析以及这三个功能的组合。 Elasticsearch 可以横向扩展至数百(甚至数千)的服务器节点,同时可以处理P 阅读全文
posted @ 2018-12-26 22:30 JaJian 阅读 (841) 评论 (0) 编辑
摘要:业务问题 业务需求是不断变化迭代的,也许我们之前写的某个业务逻辑在下个版本就变化了,我们可能需要修改原来的设计,例如数据库可能需要添加一个字段或删减一个字段,而在搜索中也会发生这件事,即使你认为现在的索引设计已经很完美了,在生产环境中,还是有可能需要做一些修改的,需要添加映射字段或者需要修改字段类型 阅读全文
posted @ 2018-12-20 21:47 JaJian 阅读 (1680) 评论 (1) 编辑
摘要:数据库建表的时候,我们的DDL语句一般都会指定每个字段的存储类型,例如:varchar,int,datetime等等,目的很明确,就是更精确的存储数据,防止数据类型格式混乱。 sql CREATE TABLE ( varchar(36) NOT NULL COMMENT 'id', varchar( 阅读全文
posted @ 2018-12-18 21:51 JaJian 阅读 (1474) 评论 (4) 编辑
摘要:前言 这篇博文本来是想放在全系列的大概第五、六篇的时候再讲的,毕竟查询是在索引创建、索引文档数据生成和一些基本概念介绍完之后才需要的。当前面的一些知识概念全都讲解完之后再讲解查询是最好的,但是最近公司项目忙经常加班,毕竟年底了。但是不写的话我怕会越拖越久,最后会不了了之了,所以刚好上海周末下雪,天冷 阅读全文
posted @ 2018-12-10 08:40 JaJian 阅读 (7443) 评论 (8) 编辑
共 5 页: 上一页 1 2 3 4 5 下一页