Loading...

摘要:Java7 中 ConcurrentHashMap ConcurrentHashMap 和 HashMap 思路是差不多的,但是因为它支持并发操作,所以要复杂一些。 整个 ConcurrentHashMap 由一个个 Segment 组成,Segment 代表”部分“或”一段“的意思,所以很多地方都 阅读全文
posted @ 2019-02-17 17:24 JaJian 阅读(4141) 评论(4) 推荐(10) 编辑
摘要:HashMap 可能是面试的时候必问的题目了,面试官为什么都偏爱拿这个问应聘者?因为 HashMap 它的设计结构和原理比较有意思,它既可以考初学者对 Java 集合的了解又可以深度的发现应聘者的数据结构功底。 阅读前提:本文分析的是源码,所以至少读者要熟悉它们的接口使用,同时,对于并发,读者至少要 阅读全文
posted @ 2019-02-16 21:12 JaJian 阅读(2956) 评论(0) 推荐(6) 编辑
摘要:记得刚毕业找工作面试的时候,经常会被问到:你知道“3次握手,4次挥手”吗?这时候我会“胸有成竹”地“背诵”前期准备好的“答案”,第一次怎么怎么,第二次……答完就没有下文了,面试官貌似也没有深入下去的意思,深入下去我也不懂,皆大欢喜! 作为程序员,要有“刨根问底”的精神。知其然,更要知其所以然。这篇文 阅读全文
posted @ 2019-01-22 23:09 JaJian 阅读(1643) 评论(6) 推荐(5) 编辑
摘要:前情提示 上篇文章: "《互联网面试必杀:如何保证消息中间件全链路数据100%不丢失:第三篇》" ,我们分析了 RabbitMQ 开启手动ack机制保证消费端数据不丢失的时候,prefetch 机制对消费者的吞吐量以及内存消耗的影响。 通过分析,我们知道了 prefetch 过大容易导致内存溢出,p 阅读全文
posted @ 2019-01-21 09:58 JaJian 阅读(1323) 评论(3) 推荐(2) 编辑
摘要:前情提示 上一篇文章: " " ,我们分析了 ack 机制的底层实现原理( 机制),还有消除处理失败时的nack机制如何触发消息重发。 通过这个,已经让大家进一步对消费端保证数据不丢失的方案的理解更进一层了。 这篇文章,我们将会对 ack 底层的 机制进行更加深入的分析,让大家理解的更加透彻一些。 阅读全文
posted @ 2019-01-20 12:01 JaJian 阅读(1447) 评论(1) 推荐(1) 编辑
摘要:前情提示 上一篇文章 "《互联网面试必杀:如何保证消息中间件全链路数据100%不丢失:第一篇》" ,我们初步介绍了之前制定的那些消息中间件数据不丢失的技术方案遗留的问题。 一个最大的问题,就是生产者投递出去的消息,可能会丢失。 丢失的原因有很多,比如消息在网络传输到一半的时候因为网络故障就丢了,或者 阅读全文
posted @ 2019-01-19 20:10 JaJian 阅读(1652) 评论(0) 推荐(0) 编辑
摘要:背景引入 这篇文章,我们来聊聊在线上生产环境使用消息中间件技术的时候,从前到后的全链路到底如何保证数据不能丢失。 这个问题,在互联网公司面试的时候高频出现,而且也是非常现实的生产环境问题。 如果你的简历中写了自己熟悉MQ技术(RabbitMQ、RocketMQ、Kafka),而且在项目里有使用的经验 阅读全文
posted @ 2019-01-11 21:56 JaJian 阅读(3938) 评论(1) 推荐(4) 编辑
摘要:什么是循环依赖? 循环依赖其实就是循环引用,也就是两个或则两个以上的 Bean 互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。如下图: 如果在日常开发中我们用new 对象的方式发生这种循环依赖的话程序会在运行时一直循环调用,直至内存溢出报错。下面说一下Spring是如果解决循 阅读全文
posted @ 2019-01-08 22:56 JaJian 阅读(3727) 评论(0) 推荐(4) 编辑
摘要:发现方式 Zen discovery是内建的、默认的、用于Elasticsearch的发现模块。它提供了单播和基于文件的发现,可以通过插件扩展到支持云环境和其他形式的发现。 Zen Discovery 是与其他模块集成的,例如,节点之间的所有通信都使用 "transport" 模块完成。某个节点通过 阅读全文
posted @ 2018-12-27 09:01 JaJian 阅读(6331) 评论(1) 推荐(3) 编辑
摘要:前言 通过前面章节的了解,我们已经知道 Elasticsearch 是一个实时的分布式搜索分析引擎,它能让你以一个之前从未有过的速度和规模,去探索你的数据。它被用作全文检索、结构化搜索、分析以及这三个功能的组合。 Elasticsearch 可以横向扩展至数百(甚至数千)的服务器节点,同时可以处理P 阅读全文
posted @ 2018-12-26 22:30 JaJian 阅读(2915) 评论(0) 推荐(6) 编辑
摘要:业务问题 业务需求是不断变化迭代的,也许我们之前写的某个业务逻辑在下个版本就变化了,我们可能需要修改原来的设计,例如数据库可能需要添加一个字段或删减一个字段,而在搜索中也会发生这件事,即使你认为现在的索引设计已经很完美了,在生产环境中,还是有可能需要做一些修改的,需要添加映射字段或者需要修改字段类型 阅读全文
posted @ 2018-12-20 21:47 JaJian 阅读(6581) 评论(2) 推荐(2) 编辑
摘要:数据库建表的时候,我们的DDL语句一般都会指定每个字段的存储类型,例如:varchar,int,datetime等等,目的很明确,就是更精确的存储数据,防止数据类型格式混乱。 sql CREATE TABLE ( varchar(36) NOT NULL COMMENT 'id', varchar( 阅读全文
posted @ 2018-12-18 21:51 JaJian 阅读(4376) 评论(4) 推荐(3) 编辑
摘要:前言 这篇博文本来是想放在全系列的大概第五、六篇的时候再讲的,毕竟查询是在索引创建、索引文档数据生成和一些基本概念介绍完之后才需要的。当前面的一些知识概念全都讲解完之后再讲解查询是最好的,但是最近公司项目忙经常加班,毕竟年底了。但是不写的话我怕会越拖越久,最后会不了了之了,所以刚好上海周末下雪,天冷 阅读全文
posted @ 2018-12-10 08:40 JaJian 阅读(25408) 评论(12) 推荐(9) 编辑
摘要:JSON,全称:JavaScript Object Notation,作为一个常见的轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 Java是面向对象的 阅读全文
posted @ 2018-12-03 08:40 JaJian 阅读(41581) 评论(2) 推荐(8) 编辑
摘要:前言 2018.11.28 IntelliJ IDEA 2018.3 正式版发布。对于一个忠实爱好者,迫不及待的我下载了最新版本来体验下。而且 IDEA 今年的第三次重大更新提供了不容错过的显著功能!你可以访问详细概述的新内容 "What's New" ,或直接访问网站并立即 "下载 Intelli 阅读全文
posted @ 2018-11-26 00:02 JaJian 阅读(14669) 评论(4) 推荐(8) 编辑
摘要:之前网上看到很多写分布式事务的文章,不过大多都是将分布式事务各种技术方案简单介绍一下。很多朋友看了还是不知道分布式事务到底怎么回事,在项目里到底如何使用。 所以这篇文章,就用大白话+手工绘图,并结合一个电商系统的案例实践,来给大家讲清楚到底什么是 TCC 分布式事务。 首先说一下,这里可能会牵扯到一 阅读全文
posted @ 2018-11-24 23:38 JaJian 阅读(98246) 评论(32) 推荐(80) 编辑
摘要:简介 Elasticsearch是一个高度可扩展的、开源的、基于 Lucene 的全文搜索和分析引擎。它允许您快速,近实时地存储,搜索和分析大量数据,并支持多租户。 Elasticsearch也使用Java开发并使用 Lucene 作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RE 阅读全文
posted @ 2018-11-19 09:04 JaJian 阅读(9711) 评论(8) 推荐(18) 编辑
摘要:概述 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈Spring Cloud微服务架构的底层原理。 实际上,Sp 阅读全文
posted @ 2018-11-17 21:00 JaJian 阅读(15740) 评论(8) 推荐(46) 编辑
摘要:周末快到了,今天为大家送上一篇很有意思的小文章,具有提神醒脑之功效。作者是来自阿里巴巴 LAZADA 产品技术部的申徒童鞋。 血案由来 近期我在为 Lazada 卖家中心做一个自助注册的项目,其中的 shop name 校验规则较为复杂,要求: 1. 英文字母大小写 2. 数字 3. 越南文 4. 阅读全文
posted @ 2018-11-03 13:13 JaJian 阅读(648) 评论(0) 推荐(1) 编辑
摘要:我常常认为程序员是另类的钢琴家,当双手在键盘上跳动的时候,再配合上一个青轴的机械键盘,谱写的就是一个个的曲谱啊。 加班了 “前面左转,拐入宛平南路高架桥,从卢浦大桥走,……”,加班完之后我叫了辆滴滴,已经是凌晨1点了,平时打车我都会看看高架桥上车窗外的灯火和夜景,毕竟黄浦江上灯火璀璨彰显大城市的美丽 阅读全文
posted @ 2018-10-29 09:00 JaJian 阅读(9404) 评论(52) 推荐(84) 编辑