- 博客(132)
- 资源 (3)
- 收藏
- 关注
原创 ElasticSearch概述
最令人惊喜的是,Elasticsearch能胜任上成百上千个服务节点的分布式扩展,支持PB级别的结构化或者非结构化海量数据的处理。Elasticsearch 也是使用 Java 编写的,它的内部使用 Lucene 做索引与搜索,但是它的目的是使全文检索变得简单, 通过隐藏 Lucene 的复杂性,取而代之的提供一套简单一致的 RESTful API。而个人信息过载已成为越来越多的人的负担,“我们面前一无所有”。今天介绍的搜索引擎是Elasticsearch——一个开源的搜索引擎(简称ES)。
2022-09-06 11:57:30
651
1
原创 ElasticSearch的基础模块
HTTP模块允许通过JSON over HTTP的方式访问ES的API,HTTP模块本质上是完全异步的,这意味着没有阻塞线程等待响应。负责对收到Master广播下来的集群状态(cluster state)数据的持久化存储,并在集群完全重启时恢复它们。Engine模块封装了对Lucene的操作及translog的调用,它是对一个分片读写操作的最终提供者。封装了分片分配相关的功能和策略,包括主分片的分配和副分片的分配,本模块由主节点调用。发现模块负责发现集群中的节点,以及选举主节点。
2022-09-06 11:46:25
332
原创 安装并运行 Elasticsearch & Kibana
Elasticsearch单机版部署及配置修改。elasticsearch.yml做如下修改。Elasticsearch下载地址。Elasticsearch下载。Kibana部署及配置修改。
2022-09-06 11:09:11
564
原创 Java项目 log4j2 配置日志写入指定文件
一、背景由于业务需要,需要将服务部分埋点日志写入指定文件,然后进行日志收集,进行数据分析统计。需要通过修改log4j2配置,引入对应logger打印日志实现。二、log4j2.xml配置三、Java使用案例四、文件写入效果五、易踩坑点引入类时要注意,以下为正确的类博主在使用时,误引入了错误的类,导致日志没有写入指定文件。而后通过debug发现logger对象异常,又参考官方文档才发现问题。六、参考资料log4j2配置官方文档......
2022-07-29 18:13:12
2511
3
原创 MAC iterm2配置rz sz
一、安装brew国内brew安装,参考Homebrew国内如何自动安装(国内地址)(Mac & Linux) - 知乎/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"二、安装lrzszbrew install lrzsz三、iterm2 rz sz 执行文件下载https://github.com/Cactus-L/iterm2/tree/mai.
2022-05-13 15:26:41
1443
9
原创 redission中pipeline的使用案例
一、如何在redission使用pipelineRedisson supports pipelining. Multiple operations can be batched as a single atomic operation. This is facilitated by the RBatch class. Multiple commands are aggregated against an RBatch object instance before they are executed.RB
2021-09-17 22:55:29
2336
原创 linux crontab任务不执行踩坑指南
踩坑场景crontab 设置了定时任务,虽然时间到了,任务却没有执行避坑指南一、查看crontab任务是否执行首先要确认任务执行了,需要查看crontab的执行日志crontab日志目录:/var/log/cron确认任务执行了就可以断定任务是执行过程失败了二、任务执行过程失败的常见原因1. 执行文件无执行权限00 10 * * 6 /mnt/root/test.sh需要为执行文件添加执行权限 chmod 777 /mnt/root/test.sh2. 执行文件内部命令没
2021-02-09 14:03:45
534
原创 linux (centos)安装redis
正常安装流程wget https://download.redis.io/releases/redis-6.0.9.tar.gztar -xvf redis-6.0.9.tar.gzcd redis-6.0.9make# 启动 redis-cli 测试cd src./redis-cli 编译报错处理报错信息error: XXX has no member named XXX处理gcc的版本过低,需要更新gcc# 1. 安装gcc套装(如果是新系统,gcc通常安装不全面)y
2021-01-11 11:38:26
173
原创 动态规划-军训队列
【题目】某大学开学进行军训队列训练,将学生从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列剩下的依次向前靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的依次向前靠拢,继续从头开始进行一至二报数。。。以后每次从头开始轮流进行一至二报数、一至三报数直到剩下的人数不超过三人为止。 输入...
2020-12-25 14:24:39
451
原创 idea&jar包 配置远程调试
一、jar包启动配置jar包在启动时加入如下参数java -Xdebug -Xrunjdwp:transport=dt_socket,address=8788,server=y,suspend=n -jar xxx.jar二、Idea配置远程调试(此处的debug端口号即为tomcat启动参数配置的端口)
2020-12-02 14:49:56
397
原创 SpringBoot打jar包失败问题解决(无主清单属性或无依赖文件)
一、问题背景使用maven对SpringBoot项目打jar包,jar包无法正常运行,出现如下问题:问题1:xxx.jar中没有主清单属性问题2:Error: A JNI error has occurred, please check your installation and try againCaused by: java.lang.ClassNotFoundException: XXX表面上报错是找不到依赖包的某一类,实际上解压jar包发现相关依赖并没有打进去二、问题解决
2020-12-02 14:44:30
743
原创 idea&Tomcat 配置远程调试
一、tomcat服务配置修改启动脚本(脚本位置:~/apache-tomcat-7.0.103/bin/startup.sh)在startup.sh内添加远程调试相关从参数(vim start.sh)declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8788"修改后重新启动tomcat容
2020-10-07 14:47:56
329
原创 redisson入门使用
一、相关依赖 <!--edisson--> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter</artifactId> <version>3.13.1</version>
2020-09-07 19:09:31
539
原创 SpringBoot项目,配置Redis多数据源
一、maven依赖Springboot版本: 1.5.6.RELEASE<!--redis--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><!--多数据源--><depend
2020-06-08 14:23:47
487
原创 Mongodb进行upsert操作,报主键重复错误
一、bug背景并发场景,对mongodb某一collection的某一条数据进行upsert操作。二、报错errororg.springframework.dao.DuplicateKeyException: Write failed with error code 11000 and error message 'E11000 duplicate key error collection: XXX.XXX index: _id_ dup key: { : "XXX" }'; nested exc
2020-05-29 17:04:09
4627
原创 shell脚本:一些常用命令
一、定义数组strArr = ("aaa" "bbb" "ccc")二、数组遍历strArr=("aaa" "bbb" "ccc")for i in ${strArr[@]};doecho $idoneresult:cactus:Desktop liruigao$ sh test.shaaabbbccc三、日期获取昨天日期yesterday=`date +%Y%m%d -d -1days`日期遍历#!/bin/bashdatebeg=20200326dateend
2020-05-27 22:51:47
259
原创 pip升级及自定义依赖包安装位置
一、pip升级(mac)# 使用root角色(避免一些权限问题) sudo su root# pip安装 easy_install pip# pip升级 pip install --upgrade pip# 查看pip版本 pip -V二、自定义依赖包安装位置使用target参数pip install tensorflow==1.7.0 --target=/usr/loca...
2020-05-05 15:17:52
492
原创 Jpa分页查询遇到的bug
背景问题描述使用Jpa hsql直接进行分页查询,查询失败报错errorCaused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: order near line 1, column 14 [select...
2020-04-16 16:48:19
732
原创 java包装类的比较
java包装类比较注意事项:包装类对象直接比较的值是对象地址若要进行value值的比较需要获取真实值,或者直接调用equals方法code: @Test public void basicTest() { Long t1 = new Long(1L); Long t2 = new Long(1L); System.out.pr...
2020-03-05 12:00:32
378
原创 Spring高级话题-测试
一、关于Spring中的测试在开发过程中开发人员会经常使用到两种测试方式,单元测试和集成测试单元测试:只针对单一的类或方法,对运行环境没有依赖集成测试:需要来自不同层的不同对象的交互,如数据库,网络连接,ioc容器等Spring通过Spring TestContext Framework对集成测试提供了顶级的支持补充: 基于Maven构建的项目结构默认有关于测试的目录:测试代...
2019-12-09 16:48:10
178
原创 Spring高级话题-@Enable*注解的工作原理
一、@Enable*注解的工作原理我们通过使用@Enable*来开启某一项功能的支持,从而避免配置大量大麦,降低使用难度通过观察源码,@Enable*注解都使用了@Import注解,@Import是用来导入配置类的,这就意味着@Enable*的实现是通过导入了一些自动配置的Bean来实现的二、导入配置方式的三种类型1. 直接导入配置类如:@EnableScheduling@Ta...
2019-12-09 16:47:29
454
原创 Spring高级话题-元注解与组合注解
一、什么是元注解、组合注解元注解:可以注解到别的注解上的注解组合注解: 被注解的注解二、annotationCombineDemo组合注解package com.cactus.demo.annotation_combine;import org.springframework.context.annotation.ComponentScan;import org.springf...
2019-12-09 16:46:33
196
原创 Spring高级话题-条件注解
一、什么是条件注解根据特定的条件来控制Bean的创建行为使用到的注解 @Conditional二、如何使用条件注解通过实现Condition接口并重写matches方法(构造判断条件)来实现一个条件判断类在配置Bean时使用@Conditional注解,并指定条件判断类,实现有条件地创建Bean三、conditionDemo通过判断程序在什么系统下运行,来创建对应的Be...
2019-12-09 16:45:44
284
原创 Spring高级话题-计划任务
一、什么是计划任务就相当于一个定时器,可以使代码在固定的日期时间执行二、在Spring中如何使用计划任务使用@EnableScheduling开启对计划任务的支持使用@Scheduled声明一个计划任务 (支持多类型,包括cron, fixDelay, fixRate)三、scheduleDemo配置类package com.cactus.demo.schedule;im...
2019-12-09 16:45:00
167
原创 Spring高级话题-多线程
一、Spring中的多线程如何使用Spring通过TaskExecutor(任务执行器)来实现多线程和并发编程,通过ThreadPoolTaskExecutor实现以基于线程池的TaskExecutor。在实际使用中,我们需要通过@EnableAsync来开启对异步任务的支持,通过@Async来声明一个异步任务二、AsyncDemo实现一个基于线程池的异步任务demo配置类...
2019-12-09 16:44:18
280
原创 Spring高级话题-Aware
一、Aware是什么?Spring Aware就是一些定义了Spring容器本身功能资源的接口Spring提供的Aware接口接口备注BeanNameAware获得到容器中Bean的名称BeanFactoryAware获得当前 bean factory,这样可以调用容器的服务ApplicationContextaware*当前的 applicatio...
2019-12-09 16:24:38
256
原创 Spring常用配置-Event
一、什么是Event?Spring的Event(事件)为Bean与Bean之间的消息通信提供了支持。通俗来说,当BeanA处理完事情,我们希望BeanB知道BeanA处理了这件事情并作出相应处理,这个时候我们就要用到Event了二、如何使用Event?自定义事件,继承ApplicationEvent定义事件监听器,实现ApplicationListener使用容器发布事件...
2019-10-15 16:13:54
270
原创 Spring常用配置-Profile
一、Profile是什么?在企业开发中,项目开发环境和产品环境的配置是不同的(如数据库的配置)。Profile为不同环境下使用不同的配置提供了支持二、如何使用profile通过设定Environment的ActiceProfile来设定当前context(容器)需要使用的配置环境开发中通常使用@Profile注解,达到不同情况实例化不同Bean的目的三、ProfileDem...
2019-10-15 16:12:49
169
原创 Spring常用配置-Bean的初始化和销毁
一、如何Bean的生命周期进行操作Spring对Bean的生命周期操作提供了支持java配置方式: 使用Bean的initMethod和destoryMethod进行配置二、BeanWayDemoBeanpackage com.cactus.demo.beanway;/** * Created by liruigao * Date: 2019-10-15 14:19 * D...
2019-10-15 16:11:44
155
原创 Spring常用配置 - EL及使用资源文件
一、Spring EL是什么?Spring表达式语言,支持在xml和注解中使用表达式,类似于JSP的el表达式语言。二、怎么使用?Spring主要在 @Value注解 使用表达式, 实现资源的注入。可以注入包括以下内容:普通字符操作系统属性表达式运算结果其他Bean的属性文件内容网址内容属性文件三、ELDemo一个憨憨的Beanpackage com.cac...
2019-10-15 16:10:40
333
原创 Spring常用配置 - Bean的Scope
一、Scope是什么?Scope: 描述Spring容器如何创建Bean的实例二、Scope具体内容@Scope的value有5个,分别解释下:@Scope意义SingletonSpring的默认配置,一个Spring容器中只有一个Bean的实例Prototype每次调用都会新建一个Bean的实例RequestWeb项目中,会给每个http req...
2019-10-15 16:09:33
196
原创 Spring基础配置
Spring框架的四大原则:使用POJO进行轻量级和最小侵入式开发通过依赖注入和基于接口编程实现松耦合通过AOP和默认习惯进行声明式编程使用AOP和模板(template)减少模式化代码对四大原则的理解可以看这里一、依赖注入1.依赖注入的概念:依赖注入是指容器负责创建对象和维护对象间的依赖关系,而非通过对象本身负责自己的创建和解决自己的依赖。2.依赖注入的主要目的:...
2019-10-11 16:22:37
231
原创 Spring项目快速搭建
一、MavenMaven简介Apache Maven是一个软件项目管理工具。基于项目对象模型的概念,maven可用来管理项目的依赖、编译、文档等信息。使用Maven管理项目时,项目依赖的jar包将不再包含在项目内,而是集中在用户目录下的.m2文件夹下Maven安装详情见https://maven.apache.org/download.cgipom.xmlMaven项目都有一个p...
2019-10-11 16:20:21
249
原创 Spring 概述
一、Spring概述The Spring Framework is an application framework and inversion of control container for the Java platform. The framework’s core features can be used by any Java application, but there are ...
2019-10-11 16:18:28
308
原创 记一次RocketMQ的重复消费问题
问题现场博主正在负责一个数据服务平台,某一天,下游客户突然找上门来,说平台消费后保存的数据存在大量重复现象,于是迅速展开了排查。排查解决part1博主排查了上游数据,排查了rocketmq server端,但是却忽视掉了消费client端。其原因是由于数据量过大,日志无法观察到进行了重复消费。最后实在排查无果,本着快速解决的原则,于是博主开发了一套数据去重机制,就这样问题暂时解决了。p......
2019-09-12 16:49:24
1583
原创 Docker本地部署RocketMq
部署流程前期准备本地环境:macOS 10.14.6docker1.拉取官方镜像docker pull rocketmqinc/rocketmq成功拉取可以看到对应镜像:2.运行docker容器运行nameserver:docker run -d -p 9876:9876 -v `pwd`/data/namesrv/logs:/root/logs -v `pwd`/data...
2019-09-11 14:05:33
465
原创 Docker基础操作
一.docker下载安装Docker Hub下载地址(Mac)二.创建docker镜像本地创建一个空目录,并创建如下三个文件:1.Dockerfile# Use an official Python runtime as a parent imageFROM python:2.7-slim# Set the working directory to /appWORKDIR /ap...
2019-09-04 17:51:06
201
原创 一场因数据库连接池配置引发的血案
数据库连接池配置引发的危机车祸现场:xxx系统由于业务需求,所要部署的定时任务变的越来越多,于是决定利用Quartz框架来做一个任务调度管理模块(采用集群模式,并持久化任务调度信息,数据保存于mysql5.6)。翌日,模块开发完成,顺利上线,但是上线一天后,服务报error了,如下:JobStoreTX - MisfireHandler: Error handling misfires: ......
2019-09-02 15:04:12
7386
2
原创 RocketMQ使用场景之吞吐量优先Case
一、Broker端进行消息过滤,提高吞吐量在 Broker端进行消息过滤,可以减少无效消息发送到 Consumer,少占用网络带宽从而提高吞吐量 。过滤方式:方式1:通过tag 和 key 进行过滤(在创建Message时设置)Tag和 Key的主要差别是使用场景不同Tag用在 Consumer的代码中,用来进行服务端消息过滤Key 主要用于通过命令行查询消息 。方式2:通过sq...
2019-01-30 19:19:06
927
基于JSP实现的在线投票系统
2018-04-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人