升级ES6.x遇到的坑和解决方案 发表于 2019-03-10 | 更新于 16:30:02 | 分类于 后端 | 评论数: 问题描述 这星期公司要把es5.x升级到es6.x,因为是一个大版本的升级,所以坑肯定是不可避免的,详细的变更可以通过链接了解。ES各版本变更信息。 这里我主要讲对我有较大影响的两个地方: ES官方建议通过Java Low Level REST Client来访问Elasticsearch,不建 ... 阅读全文 »
Disruptor初步使用 发表于 2019-02-17 | 更新于 13:54:55 | 分类于 后端 | 评论数: 背景介绍 最近在作一个用于调用第三方服务以及充当数据仓储的服务,对于数据的存储和获取都要有很好的响应。 整体架构使用的是spring flux作接口层的异步调用,可以高效率的进行数据获取;使用Disruptor作为内存队列,将存储数据批量写入。 为什么选择Disruptor Disruptor是用于 ... 阅读全文 »
ES5.x常用查询(javaAPI) 发表于 2018-11-04 | 更新于 2019-03-10 | 分类于 后端 | 评论数: 简介 java Elastic 客户端基本使用 引入jar 123compile 'org.elasticsearch:elasticsearch:5.5.0'compile 'org.elasticsearch.client:transport:5.5.0 client基本使用 得到client ... 阅读全文 »
关于ES字符串类型Text和keyword 发表于 2018-10-19 | 更新于 16:56:35 | 分类于 后端 | 评论数: 问题描述 今天在做es的聚合查询的时候,遇到了一个问题。 123456789101112131415161718192021222324252627282930{ "error": { "root_cause": [ { "type": ... 阅读全文 »
分布式事务的四种解决方案 发表于 2018-09-06 | 更新于 19:07:39 | 分类于 后端 | 评论数: 简述 分布式事务指事务的操作位于不同的节点上,需要保证事务的 AICD 特性。 例如在下单场景下,库存和订单如果不在同一个节点上,就涉及分布式事务。 解决方案 在分布式系统中,要实现分布式事务,无外乎那几种解决方案。 一、两阶段提交(2PC) 两阶段提交(Two-phase Commit,2PC), ... 阅读全文 »
Elasticsearch初体验 发表于 2018-08-20 | 更新于 20:17:40 | 分类于 后端 | 评论数: 简介 Elasticsearch 是一款稳定高效的分布式搜索和分析引擎,它的底层基于 Lucene,并提供了友好的 RESTful API 来对数据进行操作,还有比较重要的一点是, Elasticsearch 开箱即可用,上手也比较容易。 目前 Elasticsearch 在搭建企业级搜索(如日志搜 ... 阅读全文 »
ThreadLocal线程安全机制与坑 发表于 2018-08-12 | 更新于 2019-12-06 | 分类于 后端 | 评论数: Java 多线程类库对于共享数据的读写控制主要采用锁机制保证线程安全,本文所要探究的 ThreadLocal 则采用了一种完全不同的策略。ThreadLocal 不是用来解决共享数据的并发访问问题的,它让每个线程都将目标数据复制一份作为线程私有,后续对于该数据的操作都是在各自私有的副本上进行,线程之 ... 阅读全文 »
CompletableFuture终极指南 发表于 2018-08-04 | 更新于 2018-08-06 | 分类于 后端 | 评论数: 一、简介 java.util.concurrent.CompletableFuture继承于java.util.concurrent.Future,它本身具备Future的所有特性,并且基于JDK1.8的流式编程以及Lambda表达式等实现一元操作符、异步性以及事件驱动编程模型,它的灵活性和更强大的 ... 阅读全文 »
Netty入门浅析(2) 发表于 2018-07-22 | 更新于 2019-12-06 | 分类于 后端 | 评论数: 简介 在上一章中我们认识了netty,他有三大优点:并发高,传输快,封装好。在这一章我们来用Netty搭建一个HttpServer,从实际开发中了解netty框架的一些特性和概念。 认识Http请求 在动手写Netty框架之前,我们先要了解http请求的组成,如下图: HTTP Request ... 阅读全文 »
Netty入门浅析(1) 发表于 2018-07-22 | 更新于 2019-12-06 | 分类于 后端 | 评论数: Netty的简单介绍 Netty 是一个 NIO client-server(客户端服务器)框架,使用 Netty 可以快速开发网络应用,例如服务器和客户 端协议。 Netty 提供了一种新的方式来使开发网络应用程序,这种新的方式使得它很容易使用和有很强的扩展性。 Netty 的内部实现时很复杂的, ... 阅读全文 »