- 博客(123)
- 资源 (15)
- 收藏
- 关注
原创 Kibana使用Watcher监控服务日志并发送飞书报警(Markdown)
Kibana Watcher 是 Elasticsearch 的监控和告警工具,它允许你设置和管理告警规则以监控 Elasticsearch 数据和集群的状态。它提供了一种强大的方式来实时监控 Elasticsearch 数据、集群性能、日志和事件,以及其他关键指标。Create threshold alert: 一般用于简单的指标监控, 及Index数量统计。Create advanced watch: 高级预警, 用于创建更复杂和灵活的监控规则。
2023-11-09 15:17:15
2667
原创 Kibana Dashboard饼图展示keyword子字符串去重统计
在这里插入图片描述](https://img-blog.csdnimg.cn/5bdba2422ebd4b33ab7fd8dd5bdf4e92.png。以message为关键词分组, 提取TOP50, 并展示Other统计结果。从message中取关键词, _value为目标字符串。, 表示按照message字段进行分组统计。注意: 每次更改之后需要点击右下角。, 然后再Refresh查看效果。
2023-11-07 18:12:24
1022
原创 ForkJoinPool简单实用示例(并发执行, 同步获取结果)
如有2w数据上传, 接口接收后并行处理, 最后将部分错误数据返回到页面.模拟批量上传处理功能, 接口同步处理, 并返回结果.
2023-07-21 15:27:02
346
原创 解决Beego安装过程中遇到的各种问题(亲测有效)
Beego安装过程遇到的问题, 踩过的坑cannot find package...parsing go.mod: unexpected module path ...cannot find package ...
2022-10-31 18:56:17
644
原创 钉钉机器人消息MarkDown下发送带色消息兼容手机APP
添加font标签, 设置颜色, 一定要使用\"包围色号, 否则手机不显示颜色, 不支持英文颜色如red, blue… ## 只支持pc变色<font color='#0000FF'> Test Content </font>## 支持pc和app变色<font color=\"#0000FF\"> Test Content </font>...
2021-11-19 14:39:30
8527
4
原创 SpringBoot下RocketMQListener如何发起onMessage方法(源码)
示例通过注解方式监听, 指定了消息的类型, 会自动转换, 当获取到消息后会自动调用onMessage()@Component@RocketMQMessageListener(topic = "topic-A", consumerGroup = "group1")public class RocketMQListenerService implements RocketMQListener<String> { public void onMessage(String messag
2021-11-17 12:22:46
7611
原创 SpringCloud Nacos服务发现及调用过程(源码)
前提条件客户端及服务端已经完成启动并注册成功Feign远程调用由于使用了feign, 所以向Spring容器中注入了FeignClientFactoryBean, 通过getObject方法, 获取到feign对应的代理对象, 对应的InvocationHandler为HystrixInvocationHandler. 当调用feign接口中方法时, 会执行HystrixInvocationHandler中的invoke方法.public Object invoke(Object proxy, fi
2021-11-09 14:12:45
736
原创 SpringCloud Nacos服务注册和心跳发送(源码)
入口jar包目录下META-INF目录下spring.factories文件中org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration,\ com.alibaba.cloud.nacos.ribbon.RibbonNacosAutoConfiguration,\ com.alibaba.cl
2021-11-05 17:12:37
613
原创 Flink通过滚动窗口达到滑动窗口目的 节省内存和CPU资源(背压)
Flink在实时处理滑动窗口数据时, 由于窗口时间长, 滑动较为频繁, 导致算子计算压力过大, 下游算子计算速度抵不上上游数据产生速度, 会出现背压现象.需求: 统计6小时用户设备共同用户数, 每10min统计一次公共类@Data@AllArgsConstructor// flatMap转换对象private static class UserDevice { private final String userId; private final String deviceId;
2021-10-15 15:27:27
1126
原创 Flink通过本地文件持久化算子状态并重启恢复数据
Flink在运行过程中, 难免会因为一些异常导致服务终止, 因为Flink的优势在于处理实时数据, 所以重启的话, 可能会导致部分数据指标不正确, 会丢失部分数据, 比如统计最近一小时数据, 运行半小时终止, 再次重启, 也只能重新开启统计. 但Flink可以通过state来解决这个问题, 将状态保存在内存, 文件系统或者db中, 持久化后, 即可实现故障后重启继续计算.以下示例是通过kafka作为数据源, 统计各message出现的次数, 利用keyBy, process和窗口富函数实现state初始化
2021-10-15 14:56:15
1165
原创 使用elk监控文件根据ip地址在map地图上分布显示
ELK版本 7.13.1kibana.ymlmap.tilemap.url: 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}'下载geoIphttps://www.maxmind.com/en/accounts/596018/geoip/downloads解压到指定目录logstash.confinput
2021-08-18 12:11:16
837
原创 Flink从kafka消费消息并Sink消息到kafka
场景flink上游一般使用kafka, 因为可以充分利用flink的checkPoint保存状态, 实现高可用. 而由于Sink输出端数据量可能也比较大, 所以部分场景还是要Sink到kafka, 降低数据库或者其他组件压力代码import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.common.serialization.SimpleStringSchema;import o
2021-07-25 19:29:37
1361
4
原创 Flink消费Kafka并统计报警
模拟场景服务端异常时, 向kafka推送一条ALERT消息, flink解析消息, 如果连续10s钟有3次alert消息, 则发出报警消息实现方法在首次获取到alert消息后, 注册一个10s后的timer事件, 后续alert消息, 校验当前时间是否在timer有效期内, 如果不在则重置timer, 待timer到期时, 校验个数是否满足, 如果满足发出报警代码import org.apache.flink.api.common.functions.FlatMapFunction;import
2021-07-25 19:23:21
910
原创 Flink使用自定义Source Sink reduce aggregate统计最小值及平均值
模拟设备上报温度, 获取最低温度pom.xml<dependencies> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.12.4</version> </dependency> &
2021-07-20 16:40:57
991
原创 Windows下使用Grafana和Prometheus实现对SpringBoot项目的JVM实时检测
添加Prometheus支持pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency> <groupId>io.micrometer</groupId
2021-07-15 11:33:29
478
原创 Windows下安装flink服务
下载点击链接到下载页 https://flink.apache.org/zh/downloads.html选择对应文件下载后解压启动下载包中没有启动bat文件, 所以需要创建对应文件flink.bat 用于执行task::###############################################################################:: Licensed to the Apache Software Foundation (A
2021-07-08 17:27:39
1979
3
原创 Spring框架下使用策略模式
策略模式, 即根据不同的参数, 调用不同业务流程, 但各流程的逻辑基本类似.真实场景:支付路由, 根据不同的渠道参数, 进行不同的调用. 但具有类似逻辑: 参数校验->本地创建订单->发送请求->根据结果做不同的处理.AbstractChannel抽象类, 定义了各渠道的整体架构public abstract class AbstractChannel { public void handle() { check(); createOrd
2021-04-29 12:31:17
321
1
原创 Java使用easyexcel实现导入导出功能
Easyexcel是阿里开源的, 简单, 可快速集成的excel文件导入导出工具, 能够有效的节省内存, 避免出现OOM问题. 原理: 不是一次性将内容全部读取, 而是一行行读取, 从而降低内存的使用.pom.xml<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.7</versio
2021-04-28 10:25:40
1474
原创 Elasticsearch基础知识笔记
Elasticsearch是一种基于Lucene开发的高性能,可扩展的分布式搜索引擎。与常用数据库索引不同,采用倒序索引(全文索引)方式实现,将内容信息进行分词拆装成关键字,然后对每个关键字建立索引。广泛应用在搜索,电商及各类资源型网站中。ES提供了Restful API及java开发接口,隐藏了原有Lucene的复杂性。实现了近乎实时的搜索功能,延迟控制在秒级内,可以使用集群方式达到大数据量的快速检索。类似数据库,ES也有与库、表及字段相对应的存储结构,分别为index,type,document。
2021-04-25 00:04:17
480
2
原创 SpringBoot整合ElasticSearch及MySQL实现简单插入/搜索/分页及排序
pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/mav
2021-04-20 18:19:01
817
原创 记一次开发BUG Sharding读写分离事务下使用select for update导致死锁
死锁场景select for update 为悲观锁,只有当前会话才能过去到锁,其他事务访问加锁数据会被阻塞。代码如下@Transactionalpublic void test() {userService.selectByIdForUpdate(1L);userService.increaseAmountById(1L, 10);}使用Sharding JDBC读写分离时,导致死锁。死锁原因使用Sharding JDBC后,当前事务第一个写之前的所有读操作都会优先读取从库,而事务内第
2021-03-30 21:45:43
1301
原创 RocketMQ消息生产过程 源码解析
示例首先写一个生产消息的实例, 代码入口@Autowiredprivate RocketMQTemplate rocketMQTemplate;public String sendMsg(String topic, String msg) { Message<String> message = MessageBuilder.withPayload(msg).build(); SendResult result = rocketMQTemplate.syncSend(to
2021-02-28 13:17:47
733
原创 RocketMQ 基本原理及知识点
简介RocketMQ 是阿里旗下(后来被纳入到Apache旗下), 使用java语言开发, 支持集群高并发, 高吞吐量的开源消息队列.角色NameServer 保存了topic及broker的信息, 各NameServer间不通信, 功能类似于ZooKeeperBroker 保存消息的服务, 与NameServer保持长连接Queue 存放消息的队列, 实际存放的是消息的offsetProducer 消息生产者, 从NameServer获取broker信息, 将消息存入queue中Consum
2021-02-27 20:58:52
1364
2
原创 自己手写一个starter完成方法异步调用 非代理方式 线程池
SpringBoot架构下, 默认开启了自动配置, 在启动后会自动扫描包下的/META-INF/spring.factories文件, 自动加载文件中配置的类.async-spring-boot-starterpom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSche
2021-02-04 20:14:35
214
1
原创 SpringBoot 自动配置启动流程 为什么没有执行selectImports方法
SpringBoot main方法所在类添加了注解@SpringBootApplication, 在此注解中添加了注解@EnableAutoConfiguration, 默认开启了自动配置@Import(AutoConfigurationImportSelector.class)public @interface EnableAutoConfiguration { ...}AutoConfigurationImportSelector实现了DeferredImportSelector接口,
2021-02-03 19:32:27
2672
5
原创 Spring和JDK中观察者设计模式 Event事件监听
观察者设计模式特性被观察者有观察者的引用观察者不能主动发起操作, 需要等被观察者通知在JDK中通过继承Observable类作为一个被观察者, 实现Observer接口作为一个观察者模拟场景 天气变化, 任何狗做出不同反应public class WeatherObservable extends Observable { private int temperature; public int getTemperature() { return temperat
2021-01-27 10:48:03
311
原创 SpringBoot通过websocket实现web即时聊天
websocket通常用于即时通讯场景中, 在SpringBoot下也提供了jar支持spring-boot-starter-websocketpom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:
2021-01-24 00:10:11
569
原创 SpringBoot 自动配置启动 tomcat
SpringBoot之所以能有使用java -jar命令启动, 是因为内部嵌入了web容器jar包, 如tomcat, jetty… 分析下SpringBoot中tomcat加载流程.SpringBoot自动依赖spring-boot-autoconfigure-2.1.2.RELEASE.jar(参考版本), 在META-INF文件夹spring.factories文件, 开启了自动装配类ServletWebServerFactoryAutoConfigurationorg.springframewo
2021-01-22 18:00:39
1994
原创 Spring Async注解 方法异步调用 用法 源码解析 以及错误使用解决方法
Async是Spring新加入的一种异步机制, 大多开发者也只是停留在会用的水平, 对其原理不太了解, 作为一名开发人员, 我们不仅要知其然, 更要知其所以然, 才能在项目开发过程中不会踩到不必要的坑.用法1.在SpringBoot启动类添加注解@EnableAsync@EnableAsync@SpringBootApplicationpublic class WebApplication { public static void main(String[] args) {
2021-01-17 01:27:08
1182
原创 MySQL递归查询 获取某节点的各层父集和子集
表结构DROP TABLE IF EXISTS `s_menu`;CREATE TABLE `s_menu` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', `parent_id` bigint(20) DEFAULT NULL COMMENT '父级菜单', `title` varchar(100) NOT NULL COMMENT '名称', `url` varchar(255) NOT NULL COMMENT '链接
2021-01-16 18:20:03
1332
1
原创 解决java@RequestBody中枚举不匹配问题 空字符串转枚举异常
异常org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type *.**.**.TaskStatusEnum from String “”: value not one of declared Enum instance names: [0, 1, 2]; nested exception is com.fasterxml.jac
2021-01-15 13:16:08
6735
4
原创 利用Spring模拟FeignClient自己实现RMI远程调用
首先应了解FeignClient的原理, 参考文章 Feign远程调用过程 初始化/动态代理/负载均衡原理:在Application启动类中注入Enable,注解中Import导入ImportBeanDefinitionRegistrar实现类,在实现类中即可完成对BeanDefinition的注入,然后BeanDefinition的BeanClass设置成Feign的代理类,当调用方法时,调用代理对象的方法,完成http远程调用。本文直接用了POST发起远程请求,并且服务发起方和提供方在同一个服务中,
2021-01-04 20:15:17
801
原创 Spring核心类ConfigurationClassPostProcessor解析:Spring初始化 Bean扫描、Configuration类动态代理
Spring在初始化时会向容器添加6个BeanPostProcessor,其中最为重要的就是ConfigurationClassPostProcessor。ConfigurationClassPostProcessor是Spring容器初始化的核心类,实现了BeanPostProcessor的子接口BeanDefinitionRegistryPostProcessor。postProcessBeanDefinitionRegistry用来扫描并解析指定路径的类,生成对应的BeanDefinition,解
2021-01-04 11:21:22
613
原创 MySQL explain语法与各字段含义解析及示例
explain 用于MySQL中查询性能分析的工具, 可判断是否使用索引, 扫描记录数等使用语法explain sql语句;返回信息| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |id 查询序列号, 也代表了查询顺序 id越大越先执行select_type 查询类型SIMPLE
2020-12-03 11:51:38
235
原创 JVM GC 收集器 类加载 性能调优笔记
对象可回收引用计数法 循环引用可达性分析法 GC Roots对象栈中对象方法区中常量/静态属性对象本地方法栈中对象可回收区域新生代 老年代 永久区(废弃的常量/类)回收算法 标记不被回收的对象标记清除算法 碎片复制算法 浪费一半空间标记整理算法分代回收算法 新生代(分代/标记清理) 老年代(标记整理)收集器Serial 单线程 复制算法 stw 没有线程切换 效率高ParNew Serial多线程版本 可通过-XX:ParallelGCThreads限制线程个数Paral
2020-12-02 20:33:01
223
原创 SpringBoot添加Swagger2支持 可直接供前端及测试使用 生产环境禁用
pom.xml<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version></dependency><dependency> <groupId>io.springfox</grou
2020-12-02 16:49:49
427
Web微信, SpringMVC使用Socket做聊天链接
2018-07-27
SpringCloud及SpringBoot整合使用, 包含zuul, eureka服务, mybatis做持久层
2018-07-10
SpringBoot整合MyBatis MySql demo
2018-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人