- 博客(115)
- 资源 (6)
- 收藏
- 关注
原创 Elasticsearch系列---增量更新原理及优势
概要本篇主要介绍增量更新(partial update,也叫局部更新)的核心原理,介绍6.3.1版本的Elasticsearch脚本使用实例和增量更新的优势。增量更新过程与原理简单回顾前文我们有简单介绍过增量的语法,简单回顾一下请求示例:POST /music/children/1/_update{ "doc": { "length": "76" }}一般从客户...
2019-12-05 07:54:34 2768
原创 Elasticsearch系列---并发控制及乐观锁实现原理
概要本篇主要介绍一下Elasticsearch的并发控制和乐观锁的实现原理,列举常见的电商场景,关系型数据库的并发控制、ES的并发控制实践。并发场景不论是关系型数据库的应用,还是使用Elasticsearch做搜索加速的场景,只要有数据更新,并发控制是永恒的话题。当我们使用ES更新document的时候,先读取原始文档,做修改,然后把document重新索引,如果有多人同时在做相同的操作,...
2019-12-05 07:38:24 1153
原创 Elasticsearch系列---全面了解Document
概要本篇主要介绍一下document的知识,对document的元数据和基本的语法进行讲解。document核心元数据前面入门实战一节有简单介绍过document数据示例,这次我们来详细了解一下它的核心元数据,查询响应报文如下:{ "_index": "music", "_type": "children", "_id": "1", "_version": 1, "fo...
2019-11-29 07:22:21 1299
原创 Elasticsearch系列---分布式架构机制讲解
概要本篇主要介绍Elasticsearch的数据索引时的分片机制,集群发现机制,primary shard与replica shard是如何分工合作的,如何对集群扩容,以及集群的容错机制。分片机制前面基本概念一节中,我们有提到建立索引时,会自动将数据拆分到多个分片(shard)中,默认数量是5,这个就是索引数据分片机制。我们在往Elasticsearch集群插入数据,并没有关心过数据最终落地...
2019-11-22 22:10:26 532
原创 Elasticsearch系列---常见搜索方式与聚合分析
概要本篇主要介绍常见的6种搜索方式、聚合分析语法,基本是上机实战,可以和关系型数据库作对比,如果之前了解关系型数据库,那本篇只需要了解搜索和聚合的语法规则就可以了。搜索响应报文以上篇建立的music索引为例,我们先看看搜索结果的属性都有哪些{ "took": 1, "timed_out": false, "_shards": { "total": 5, "suc...
2019-11-22 21:54:05 1135
原创 Elasticsearch系列---简单入门实战
概要本篇主要介绍一下Elasticsearch Document的数据格式,在Java应用程序、关系型数据库建模的对比,介绍在Kibana平台编写Restful API完成基本的集群状态查询,Document最基本CRUD操作示例以及bulk批处理示例。Document数据格式Java应用系统的数据模型都是面向对象的,有些对象比较复杂,传统的业务系统,数据需要落地到关系型数据库,在数据库领域...
2019-11-19 08:13:34 1115
原创 Elasticsearch系列---Elasticsearch的基本概念及工作原理
基本概念Elasticsearch有几个核心的概念,花几分钟时间了解一下,有助于后面章节的学习。NRTNear Realtime,近实时,有两个层面的含义,一是从写入一条数据到这条数据可以被搜索,有一段非常小的延迟(大约1秒左右),二是基于Elasticsearch的搜索和分析操作,耗时可以达到秒级。Cluster集群,对外提供索引和搜索的服务,包含一个或多个节点,每个节点属于哪个集群是...
2019-11-15 07:35:08 1224
原创 Elasticsearch系列---初识Elasticsearch
Elasticsearch是什么?Elasticsearch简称ES,是一个基于Lucene构建的开源、分布式、Restful接口的全文搜索引擎,还是一个分布式文档数据库。天生就是分布式、高可用、可扩展的,可以在很短的时间内存储、搜索和分析大量的数据。什么是全文搜索?全文搜索也叫全文检索,是指扫描文章中的每一个词,对每一个词进建立一个索引,指明该词在文章中出现的次数和位置,当前端用户输入的关...
2019-11-14 08:15:41 1185
原创 记一次ES查询数据突然变为空的问题
基本环境elasticsearch版本:6.3.1客户端环境:kibana 6.3.4、Java8应用程序模块。其中kibana主要用于数据查询诊断和查阅日志,Java8为主要的客户端,数据插入和查询都是由Java实现的。案例介绍使用elasticsearch存储订单的主要信息,document内的field,基本上是long或keyword,创建索引的order.json文件如下...
2019-11-05 07:31:37 3092
原创 Sonar最基础使用教程
Sonarqube服务端安装过程略不能用root账号启动,必须使用普通账号如esuser,启动后自动会启动一个Elasticsearch实例(Elasticsearch实例在Sonarqube安装包里有自带的),如果误用root账号启动过sonar,则需要删除Sonarqube下的temp文件夹,否则一直会无法启动启动完成后,输入地址http://localhost:9000 可以看到控制台界面...
2019-10-29 08:09:08 2155
原创 一篇文章彻底搞懂snowflake算法及百度美团的最佳实践
写在前面的话一提到分布式ID自动生成方案,大家肯定都非常熟悉,并且立即能说出自家拿手的几种方案,确实,ID作为系统数据的重要标识,重要性不言而喻,而各种方案也是历经多代优化,请允许我用这个视角对分布式ID自动生成方案进行分类:实现方式完全依赖数据源方式ID的生成规则,读取控制完全由数据源控制,常见的如数据库的自增长ID,序列号等,或Redis的INCR/INCRBY原子操作产生顺序...
2019-10-25 07:11:56 4332 4
原创 RocketMQ事务消息学习及刨坑过程
一、背景MQ组件是系统架构里必不可少的一门利器,设计层面可以降低系统耦合度,高并发场景又可以起到削峰填谷的作用,从单体应用到集群部署方案,再到现在的微服务架构,MQ凭借其优秀的性能和高可靠性,得到了广泛的认可。随着数据量增多,系统压力变大,开始出现这种现象:数据库已经更新了,但消息没发出来,或者消息先发了,但后来数据库更新失败了,结果研发童鞋各种数据修复,这种生产问题出现的概率不大,但让人很郁闷...
2019-10-19 08:44:39 1137
原创 使用Spring-boot-starter标准改造项目内的RocketMQ客户端组件
一、背景介绍我们在使用Spring Cloud全家桶构建微服务应用时,经常能看到spring-boot-xxx-starter的依赖,像spring-boot-starter-web、spring-cloud-starter-feign、spring-boot-starter-test、mybatis-spring-boot-starter,仿佛只要带上starter的东西,你就拥有了这个组件的...
2019-10-18 07:21:09 825
原创 Maven项目分析剔除无用jar引用
一、为什么要做这件事?项目持续研发,不停地在上面新增功能,新增特性,引入新的框架和组件,jar包依赖多并且复杂,再加上需求各种变更,有不少已经存在的功能下线,但jar包依赖没人管,还是放在项目的pom.xml文件里。项目持续的时间一长,经常会出现项目打包要求内存多,时间慢的问题,如何分析项目中哪些依赖是有用的,哪些可以剔除的,一方面减轻打包内存占用多,时间慢的问题,另一方面照顾研发童鞋的强迫症问...
2019-10-14 07:48:04 1903
原创 Java volatile关键字内存原语
一、简述 volatile特性:实现最轻量级的同步。 volatile关键字的内存原语主要包含2个:1、保证volatile修饰的变量对所有线程的可见性。2、禁止指令重排序优化。二、案例代码 先给一个经典的错误案例:package com.hy.current;public class VolatileTest {privat...
2019-06-23 07:57:46 1948
原创 Linux服务器重启后JBoss和ActiveMQ无法正常启动故障解决
一、问题描述 Linux服务器重启后,发现原本能正常启动的Jboss实例和ActiveMQ实例都无法正常启动了,Jboss报错如下:java.net.MalformedURLException: Local host name unknown: java.net.UnknowstException: hy-192.168.1.103: hy-192.168.1.103: unk...
2019-05-03 07:30:54 514
原创 SQL小技巧-关联表重复数据清除处理办法
一、背景描述 数据库有订单表和订单明细表两张表,订单表与订单明细表的关系为一对多,通过订单ID作为外键进行关联,订单表的订单号字段本应设计成唯一约束,但由于数据库约束未在表里体现,并且由于业务操作的一些原因,导致订单表里出现重复的订单号,并且这些订单记录下面都关联了货品,现需要将重复的订单记录删除,同一个订单号只保留一条记录,其余被删除的订单表记录下面的明细记录全部移到保留的那条记录上面。表...
2018-02-11 15:31:34 13286
原创 mysql实例无法启动故障修复
一、问题描述 环境:Linux CentOS 6.5,mysql 5.6.16-log Linux服务器异常断电,mysql非正常退出,导致mysql数据和mysql日志出现不一致的情况,mysql启动失败。失败的现象:1)mysql启动失败,提示无法更新pid文件。2)查看mysql error日志,出现如下字样:InnoDB: Error: page xxx log sequenc...
2018-02-10 15:38:25 4581
原创 SVN使用svn:ignore忽略Eclipse的项目工程文件
Eclipse+SVN管理的项目工程,使用svn:ignore操作来忽略项目文件
2017-11-17 23:06:02 3319
原创 增量部署包出现java.lang.NoSuchMethodError异常解决过程
javaweb项目部署增量包时,出现了java.lang.NoSuchMethodError异常信息的诊断思路及解决办法
2017-06-02 23:56:11 5751 6
原创 ActiveMQ SSL应用之七 ActiveMQ管理控制台队列Send To功能的使用
应用程序使用SSL连接ActiveMQ后,ActiveMQ控制台自带的Send To功能的使用方法,以及运维过程中该功能的作用。
2016-10-16 21:57:57 6260 2
原创 ActiveMQ SSL应用之六 Tomcat、Jboss部署项目使用SSL连接ActiveMQ
Tomcat或Jboss容器环境的项目使用SSL连接ActiveMQ
2016-10-16 21:53:27 1195
原创 ActiveMQ SSL应用之五 Spring+ActiveMQ开启SSL连接
实际项目经常使用到Spring框架,本篇主要介绍在Spring框架背景下,如何开启SSL连接ActiveMQ。
2016-10-16 21:51:00 3543 2
原创 ActiveMQ SSL应用之四 编写Java Demo类使用SSL连接ActiveMQ
在Eclipse平台编写Java Demo类使用SSL连接ActiveMQ,并进行简单的报文发送,接收,并使用wireshark抓包工具对报文进行抓取分析
2016-10-16 21:46:59 3833
原创 ActiveMQ SSL应用之一 整体介绍
ActiveMQ如何学习SSL应用的整体思路,涵盖了SSL服务端的修改和客户端的操作,包括项目中结合Spring框架的应用场景,以及常用Web容器环境下的应用场景,最后是实际生产环境运维中,开启SSL对ActiveMQ管理页面常用操作是否会产生影响的验证。
2016-10-16 21:23:14 1940 2
原创 利用wsdl2java工具生成webservice的客户端代码
apache-cxf 3.1.7使用wsdl2java工具生成webservice的客户端代码
2016-10-12 12:42:10 12929 2
原创 Linux Jboss下logback日志框架的输出日志只保留10天的问题
操作系统为Linux CentOS 6.5 64bit,Jboss为4.3.0 GA版本,logback版本为1.1.2,maxHistory配置为180天,但/tmp/logs的日志文件只保留10天,原因是tmpwatch调度任务把10天前的日志删除了。
2016-09-07 22:08:26 5557
原创 SSH集成CXF项目启动时出现告警日志
spring 4.1.3.RELEASE + cxf 2.5.0框架,在项目启动时出现一大堆告警日志,虽然不影响项目正常运行,但看着很刺眼,所以要想办法清除掉。
2016-07-13 22:03:40 4207
原创 Webservice客户端工程导成runnable jar包运行时出现异常
eclipse集成环境,spring 4.1.3.RELEASE + cxf 2.5.0框架,开发的Webservice客户端程序。在eclipse开发环境下运行正常,导出runnable jar包时出现如下异常: java.lang.NullPointerException: null
2016-07-11 21:40:23 1821
原创 Quartz框架多个trigger任务执行出现漏执行的问题分析
使用Quartz配置定时任务,配置了超过10个定时任务,这些定时任务配置的触发时间都是5分钟执行一次,实际运行时,发现总有几个定时任务不能执行到。本篇重点讲解了该现象的本质原因和解决方案
2016-05-21 15:47:53 15777 7
原创 JBoss调用Webservice出现org.jboss.ws.core.jaxws.spi.ProviderImple not found错误
Linux CentOS 6.5 64bit,JDK1.7 ,JBoss 4.3.0-GA环境作为客户端调用Webservice服务出错
2016-05-12 20:34:33 3353
原创 Memcache-Java-Client-Release源码阅读(之七)
一、主要内容 本章节的主要内容是介绍Memcache Client的Native,Old_Compat,New_Compat三个Hash算法的应用及实现。二、准备工作 1、服务器启动192.168.0.106:11211,192.168.0.106:11212两个服务端实例。 2、示例代码:String[] servers = { "192.168.0.106:
2016-05-08 10:13:27 887
原创 Memcache-Java-Client-Release源码阅读(之六)
本章节的主要内容是介绍Memcache Client的一致性Hash算法的应用及实现。
2016-05-06 21:57:06 1223
原创 Memcache-Java-Client-Release源码阅读(之五)
本章节的主要内容是介绍Memcache Client的失效转移机制,自动恢复机制和Sock状态检测机制的实现原理。
2016-05-02 23:43:22 664
原创 Memcache-Java-Client-Release源码阅读(之四)
本章节的主要内容是介绍Memcache Client其他一些基本操作的大致实现,如flush操作,delete操作,incr/decr操作等
2016-04-26 23:07:06 941
原创 Memcache-Java-Client-Release源码阅读(之三)
本章节的主要内容是介绍Memcache 最基本的set/get操作过程
2016-04-19 21:07:30 1095
magent-0.6-修正版
2016-01-02
magent-0.5-修正版
2016-01-02
magent-0.6
2016-01-02
magent-0.5
2016-01-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人