摘要: 本文将从数据存储和搜索的角度简单分析Elasticsearch的搜索运行机制,主要涉及搜索API、搜索机制、存在问题和解决方案。 阅读全文
posted @ 2021-12-28 23:18 James_Shangguan 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 本文探讨Elasticsearch的数据请求、路由和写入过程的原理,主要涉及ES的分布式存储架构、节点和副本的写入过程、近实时搜索的原因、持久化机制等。 阅读全文
posted @ 2021-12-16 08:33 James_Shangguan 阅读(553) 评论(0) 推荐(1) 编辑
摘要: Mapping是Elasticsearch中数据建模的基础,本文从Mapping简介、Dynamic Mapping、自定义Mapping和Mapping常用参数说明4个部分介绍Elasticsearch如何设置Mapping。 3.1 Mapping简介 3.1.1 什么是Mapping Mapp 阅读全文
posted @ 2021-10-29 09:03 James_Shangguan 阅读(238) 评论(0) 推荐(1) 编辑
摘要: 本文从基本概念、基本CRUD操作、倒排索引原理、分词等部分来初识Elasticsearch。 阅读全文
posted @ 2021-08-19 23:16 James_Shangguan 阅读(901) 评论(0) 推荐(3) 编辑
摘要: 磨刀不误砍柴工,要学习Elasticsearch,首先要搭建起来一套学习环境,本文为手把手教你在MacOS上面搭建Elasticsearch学习环境。 阅读全文
posted @ 2021-03-07 20:58 James_Shangguan 阅读(518) 评论(0) 推荐(1) 编辑
摘要: 2021,终于来了!还记得2020年的愿望是什么?活着就好。哈哈,毕竟除了生死,都是小事。虽为小事,但也重要。这一年,我顺利毕业,离开了陪伴多年的校园,成功进入职场,开启了人生中一段崭新的旅程。 阅读全文
posted @ 2021-01-09 23:54 James_Shangguan 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 说起ID,特性就是唯一,在人的世界里,ID就是身份证,是每个人的唯一的身份标识。在复杂的分布式系统中,往往也需要对大量的数据和消息进行唯一标识,这个标识就是分布式ID,那你知道有哪些常用的分布式ID解决方案吗? 阅读全文
posted @ 2020-12-06 21:58 James_Shangguan 阅读(792) 评论(0) 推荐(2) 编辑
摘要: 本文从是什么、为什么、怎么做的三个步骤,分析简单工厂模式、工厂方法模式和抽象工厂模式,通过框架源码学习如何优雅地使用工厂模式。 阅读全文
posted @ 2020-11-28 22:47 James_Shangguan 阅读(407) 评论(0) 推荐(1) 编辑
摘要: 责任链模式(Chain of Responsibility Pattern)在《Head First设计模式》一书中被称为“剩下的模式”,其实使用也是蛮多的。最近在学习Netty的过程中用到了责任链模式,在此反过头来重温一下责任链模式。本文教你如何优雅地使用责任链模式。 阅读全文
posted @ 2020-07-25 19:16 James_Shangguan 阅读(721) 评论(0) 推荐(0) 编辑
摘要: 一、为什么需要面向切面编程? 面向对象编程(OOP)的好处是显而易见的,缺点也同样明显。当需要为多个不具有继承关系的对象添加一个公共的方法的时候,例如日志记录、性能监控等,如果采用面向对象编程的方法,需要在每个对象里面都添加相同的方法,这样就产生了较大的重复工作量和大量的重复代码,不利于维护。面向切 阅读全文
posted @ 2020-07-22 22:55 James_Shangguan 阅读(4225) 评论(0) 推荐(2) 编辑
摘要: XXL-JOB是一个分布式任务调度平台,作为当下流行的分布式解决方案,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。它的有两个核心模块,一个模块叫做调度中心,另外一个模块叫做执行器,它把任务调度和任务执行分成两个部分。本文从准备工作、搭建“调度中心”、搭建“执行器”三个步骤进行快速搭建。 阅读全文
posted @ 2020-07-12 21:24 James_Shangguan 阅读(1344) 评论(0) 推荐(1) 编辑
摘要: 先来看下结论:正确启动线程的方式是使用start()方法,而不是使用run()方法。 代码实战 1. 输出线程名称 “Talk is cheap. Show me the code”,用代码说话:分别调用run()方法和start()方法,打印输出线程的名字。 运行结果: 2. 深入一点 如果代码是 阅读全文
posted @ 2020-01-29 20:36 James_Shangguan 阅读(692) 评论(0) 推荐(1) 编辑
摘要: 2019在干什么,在实习和找工作的旋律中飞快度过。说起这段历程,肯定首先是感谢。感谢在此过程中遇到的每家公司和每一个人,感谢给我机会的每家公司,有你们的认可,我觉得我还是有价值的;也要感谢拒绝我的公司,谢谢你们曾经看轻我,是你们的拒绝和不屑,鞭策我继续努力。 第一份实习 过完年回来学校,三月份开始准 阅读全文
posted @ 2019-12-29 14:46 James_Shangguan 阅读(1241) 评论(2) 推荐(4) 编辑
摘要: 随着生产力和经济社会的发展,现在已经进入内容付费的时代。得到APP便是其中的代表作,本文用于爬取得到APP的课程数据,包括课程名称、作者、单价、学习人数等数据,可作为一个爬取APP数据的demo进行分享。 阅读全文
posted @ 2019-10-27 16:55 James_Shangguan 阅读(2303) 评论(0) 推荐(1) 编辑
摘要: 并发编程是Java语言的重要特性之一,“如何在Java中实现线程”是学习并发编程的入门知识,也是Java工程师面试必备的基础知识。本文从线程说起,然后用代码说明如何在Java中实现线程。 阅读全文
posted @ 2019-08-28 22:10 James_Shangguan 阅读(1412) 评论(0) 推荐(3) 编辑
摘要: synchronized关键字在多线程并发编程中一直是元老级角色的存在,是学习并发编程中必须面对的坎,也是走向Java高级开发的必经之路。本文介绍synchronized关键字,用代码展示多线程访问同步方法的7种情况。 阅读全文
posted @ 2019-08-24 16:46 James_Shangguan 阅读(1518) 评论(0) 推荐(2) 编辑
摘要: 本文使用Docker搭建RabbitMQ集群,然后使用HAProxy做负载均衡,最后使用KeepAlived实现集群高可用,从而搭建起来一个完成了RabbitMQ高可用负载均衡集群。受限于自身条件,本文使用VMware虚拟机的克隆功能克隆了两台服务器进行操作,仅作为一个demo,开发中可根据实际情况进行调整。 阅读全文
posted @ 2019-08-03 19:41 James_Shangguan 阅读(9829) 评论(2) 推荐(5) 编辑
摘要: RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。Spring Boot的兴起,极大地简化了Spring的开发,本文将使用Spring Boot与RabbitMQ进行简单整合,实现生产和消费消息。 阅读全文
posted @ 2019-07-27 18:46 James_Shangguan 阅读(13191) 评论(1) 推荐(3) 编辑
摘要: RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。作为一名合格的开发者,有必要了解一下相关知识,RabbitMQ(一)已经入门RabbitMQ,本文介绍RabbitMQ的高级特性。 阅读全文
posted @ 2019-07-21 15:37 James_Shangguan 阅读(17573) 评论(3) 推荐(7) 编辑
摘要: RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。作为一名合格的开发者,有必要对RabbitMQ有所了解,本文是RabbitMQ快速入门文章,主要内容包括RabbitMQ是什么、RabbitMQ核心概念、常用交换器类型、用Docker安装RabbitMQ等。 阅读全文
posted @ 2019-07-20 11:00 James_Shangguan 阅读(165052) 评论(1) 推荐(29) 编辑