记录日志系统的安装-部署-配置-使用文档(5)
ELK-ALERTING - 告警功能(使用告警功能必须配置ssl,配置安全性可以站内搜索[记录日志系统的安装-部署-配置-使用文档(4)] kibana本身提供了告警功能,左菜单位位置(7.14.0),但是免费支持的告警操作只有写入索引和写入kibana日志,其他功能需要dollar,19美元一个月,网上提到一个方案sentinl,但是似乎截止到21210820仅支持到kibana7.6.1的版本 创建连接器(以邮件和webhook举例), 邮件 12345678企业微信邮箱发送方主机ip : smtp.exmail.qq.comport : 465qq邮箱发送方主机ip : smtp.qq.comport : 465/587记得在账户那里开启smtp,然后密码是授权码 测试, 可以有多个接收方 飞书webhook 企业微信群机器人 发个测试 123456789{ "msg_type": "text", "content": { "...
Elasticsearch数据建模
Elasticsearch数据建模数据建模 数据建模是创建数据模型的过程 数据模型是对真实世界进行抽象描述的一种工具和方法,实现对现实世界的映射 三个过程:概念模型=》逻辑模型=》数据模型 数据模型:结合具体的数据库,在满足业务读写性能等需求的前提下,确定最终定义 数据建模:功能需求+性能需求 逻辑模型(功能需求) 实体属性 实体之间的关系 搜索相关的配置 物理模型(性能需求) 索引模版 分片数量 索引Mapping 字段配置 关系处理 对字段进行建模 字段类型: Text vs Keyword Text 用于全文本字段,文本会被Analyzer分词 默认不支持聚合分析及排序。需要设置fielddata为true Keyword 用于id,枚举及不需要分词的文本。例如电话号码,email地址,手机号码,邮政编码,性别等 适用于Filter(精确匹配),Sorting和Aggregations 设置多字段类型 默认会为文本类型设置成text,并且设置一个keyword的子字段 在处理人类语言时,通...
Elasticsearch测试数据下载
Elasticsearch测试数据下载/bank-demo银行数据
Elasticsearch的基本使用
1 了解ES1.1.1.elasticsearch的作用elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 1.1.2.ELK技术栈elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域: 而elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。 1.1.3.elasticsearch和luceneelasticsearch底层是基于lucene来实现的。 Lucene是一个Java语言的搜索引擎类库,是Apache公司的顶级项目,由DougCutting于1999年研发。官网地址:https://lucene.apache.org/ 。 elasticsearch的发展历史: 2004年Shay Banon基于Lucene开发了Compass 2010年Shay Banon 重写了Compass,取名为Elasticsearch。 1....
一个jdbc批量处理的工具类
12345678910111213141516171819202122232425262728293031323334353637383940414243// batchUtils.batchUpdateOrInsert(数据集合, xxxxx.class, (item, mapper实例对象) -> mapper实例对象.insert方法(item));public class MybatisBatchUtils { /** * 每次处理1000条 */ private static final int BATCH_SIZE = 1000; @Resource private SqlSessionFactory sqlSessionFactory; /** * 批量处理修改或者插入 * * @param data 需要被处理的数据 * @param mapperClass Mybatis的Mapper类 * @param function 自定义处理逻辑 * @return ...
利用KeyTool生成自签名证书
任何机构或者个人都可以申请数字证书,并使用由CA机构颁发的数字证书为自己的应用保驾护航。常用的两个证书管理工具:KeyTool,OpenSSL--->构建CSR(Certificate Signing Request,数字证书签发申请),交由CA机构签发,形成最终的数字证书。 最近用到p12文件,就记录一下如何使用jdk自带的keytool来创建p12文件 打开cmd,切换到jdk的bin目录下 输入命令 1keytool -genkeypair -alias serverkey -keyalg RSA -keysize 2048 -validity 3650 -keystore D:\rabbitmq\tls-gen-master\p12test.keystore 参数解释: 12345678storepass: keystore文件存储密码,不加这个参数会在后面要求你输入密码 keypass 私钥加解密密码 alias 实体别名(包括证书私钥) dname 证书个人信息 keyalg 采用公钥算法,默认是DSA,这里采用RSA keysize 密钥长度...
关于Serializable的认识
首先,如果对象需要网络传输或者持久化(我的理解是dto和entity/model),那么就需要实现Serializable接口。为了防止反序列失败,该对象需提供一个默认的serialVersionUID(该值在反序列化的时候会进行校验,如果校验失败会抛异常-InvalidClassException)。 但如果只是转换为json字符串的形式与网络打交道(比如MVC中前后端分离情况下,返回json-response给前端),那么这个response对象就不需要实现Serializable接口。 关于UID serialVersionUID有两种显式的生成方式: 12一个是默认的1L一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段, 如果没有显式地定义一个名为serialVersionUID的long型的变量,编译器在编译的时候也会根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,这就决定了这个类在序列化上一定不是向前兼容的 使用默认计算的serialVersionUID就会有一个明显的劣势 1234使用默认计算的seria...
如何使用jstack分析异常线程以及线程状态
使用top命令定位异常进程。找到CPU和内存占用率都非常高的pid,假设为11268 top 此时可以再执行ps -ef | grep java,查看所有的java进程,在结果中找到进程号为11268的进程,可以查看是哪个应用占用的该进程。 ps -ef|grep java 使用top -H -p 进程号查看异常线程,(-H : 加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。) top -H -p 11268 使用printf "%x\n" 线程号将异常线程号转化为16进制,假设异常线程为11422 printf "%x\n" 11422 -> 2c9e 使用jstack 进程号|grep 16进制异常线程号 -A90来定位异常代码的位置(-A90是指输出的日志行数)。可以看到异常代码的位置。 jstack 11268|grep 2c9e -A90 介绍top命令在linux环境下,可以通过top命令查看各个进程的cpu使用情况,默认按cpu使用率排序 通过top -Hp 可以查看...
线程池知识记录
七大参数一、corePoolSize 线程池核心线程大小12线程池中会维护一个最小的线程数量,即使这些线程处理空闲状态,他们也不会被销毁,除非设置了allowCoreThreadTimeOut。这里的最小线程数量即是corePoolSize。 二、maximumPoolSize 线程池最大线程数量1234一个任务被提交到线程池以后,首先会找有没有空闲存活线程,如果有则直接将任务交给这个空闲线程来执行,如果没有则会缓存到工作队列中,如果工作队列满了,才会创建一个新线程,然后从工作队列的头部取出一个任务交由新线程来处理,而将刚提交的任务放入工作队列尾部。线程池不会无限制的去创建新线程,它会有一个最大线程数量的限制,这个数量即由maximunPoolSize指定。 三、keepAliveTime 空闲线程存活时间12一个线程如果处于空闲状态,并且当前的线程数量大于corePoolSize,那么在指定时间后,这个空闲线程会被销毁,这里的指定时间由keepAliveTime来设定 四、unit 空闲线程存活时间单位1keepAliveTime的计量单位 五、workQueue 工作队列12...
设计模式
面向对象设计原则我们在进行软件开发时,不仅仅需要将最基本的业务给完成,还要考虑整个项目的可维护性和可复用性,我们开发的项目不单单需要我们自己来维护,同时也需要其他的开发者一起来进行共同维护,因此我们在编写代码时,应该尽可能的规范。如果我们在编写代码时不注重这些问题,整个团队项目就像一座屎山,随着项目的不断扩大,整体结构只会越来越遭。 甚至到最后你会发现,我们的程序居然是稳定运行在BUG之上的… 所以,为了尽可能避免这种情况的发生,我们就来聊聊面向对象设计原则。 单一职责原则单一职责原则(Simple Responsibility Pinciple,SRP)是最简单的面向对象设计原则,它用于控制类的粒度大小。 一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。 比如我们现在有一个People类: 123456789101112131415161718192021222324252627282930//一个人类public class People { /** * 人类会编程 */ public void coding()...
