自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

跟心爱的人一起浪迹天涯

生命的意义在于拼搏

  • 博客(123)
  • 资源 (15)
  • 收藏
  • 关注

原创 Kibana使用Watcher监控服务日志并发送飞书报警(Markdown)

Kibana Watcher 是 Elasticsearch 的监控和告警工具,它允许你设置和管理告警规则以监控 Elasticsearch 数据和集群的状态。它提供了一种强大的方式来实时监控 Elasticsearch 数据、集群性能、日志和事件,以及其他关键指标。Create threshold alert: 一般用于简单的指标监控, 及Index数量统计。Create advanced watch: 高级预警, 用于创建更复杂和灵活的监控规则。

2023-11-09 15:17:15 1508

原创 Kibana Dashboard饼图展示keyword子字符串去重统计

在这里插入图片描述](https://img-blog.csdnimg.cn/5bdba2422ebd4b33ab7fd8dd5bdf4e92.png。以message为关键词分组, 提取TOP50, 并展示Other统计结果。从message中取关键词, _value为目标字符串。, 表示按照message字段进行分组统计。注意: 每次更改之后需要点击右下角。, 然后再Refresh查看效果。

2023-11-07 18:12:24 616

原创 ForkJoinPool简单实用示例(并发执行, 同步获取结果)

如有2w数据上传, 接口接收后并行处理, 最后将部分错误数据返回到页面.模拟批量上传处理功能, 接口同步处理, 并返回结果.

2023-07-21 15:27:02 228

原创 解决Beego安装过程中遇到的各种问题(亲测有效)

Beego安装过程遇到的问题, 踩过的坑cannot find package...parsing go.mod: unexpected module path ...cannot find package ...

2022-10-31 18:56:17 451 1

原创 Go构造ResultVO结构体, 响应Json

Go中定义ResultVO, 用于封装返回结构体!

2022-10-27 21:36:35 249

原创 Beego入门简单构建, 连接MySQL实现增查操作

使用Beego搭建第一个web项目, 并连接MySQL数据库, 实现相关操作!

2022-10-26 18:02:33 2146

原创 Python抓取7日内天气并发送飞书机器人消息

Python抓取7日内天气

2022-08-29 17:16:40 672 2

原创 Python抓取行政区域划分存入MySQL数据库

Python爬虫抓取行政区域划分

2022-08-29 17:08:35 416

原创 钉钉机器人消息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 6631 3

原创 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 6785

原创 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 657

原创 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 458

原创 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 899

原创 Flink通过本地文件持久化算子状态并重启恢复数据

Flink在运行过程中, 难免会因为一些异常导致服务终止, 因为Flink的优势在于处理实时数据, 所以重启的话, 可能会导致部分数据指标不正确, 会丢失部分数据, 比如统计最近一小时数据, 运行半小时终止, 再次重启, 也只能重新开启统计. 但Flink可以通过state来解决这个问题, 将状态保存在内存, 文件系统或者db中, 持久化后, 即可实现故障后重启继续计算.以下示例是通过kafka作为数据源, 统计各message出现的次数, 利用keyBy, process和窗口富函数实现state初始化

2021-10-15 14:56:15 954

原创 使用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 705

原创 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 1213 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 771

原创 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 784

原创 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 390

原创 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 1810 3

原创 Spring框架下使用策略模式

策略模式, 即根据不同的参数, 调用不同业务流程, 但各流程的逻辑基本类似.真实场景:支付路由, 根据不同的渠道参数, 进行不同的调用. 但具有类似逻辑: 参数校验->本地创建订单->发送请求->根据结果做不同的处理.AbstractChannel抽象类, 定义了各渠道的整体架构public abstract class AbstractChannel { public void handle() { check(); createOrd

2021-04-29 12:31:17 267 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 1396

原创 Elasticsearch基础知识笔记

Elasticsearch是一种基于Lucene开发的高性能,可扩展的分布式搜索引擎。与常用数据库索引不同,采用倒序索引(全文索引)方式实现,将内容信息进行分词拆装成关键字,然后对每个关键字建立索引。广泛应用在搜索,电商及各类资源型网站中。ES提供了Restful API及java开发接口,隐藏了原有Lucene的复杂性。实现了近乎实时的搜索功能,延迟控制在秒级内,可以使用集群方式达到大数据量的快速检索。类似数据库,ES也有与库、表及字段相对应的存储结构,分别为index,type,document。

2021-04-25 00:04:17 370 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 727

原创 记一次开发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 1044

原创 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 613

原创 RocketMQ 基本原理及知识点

简介RocketMQ 是阿里旗下(后来被纳入到Apache旗下), 使用java语言开发, 支持集群高并发, 高吞吐量的开源消息队列.角色NameServer 保存了topic及broker的信息, 各NameServer间不通信, 功能类似于ZooKeeperBroker 保存消息的服务, 与NameServer保持长连接Queue 存放消息的队列, 实际存放的是消息的offsetProducer 消息生产者, 从NameServer获取broker信息, 将消息存入queue中Consum

2021-02-27 20:58:52 1248 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 174 1

原创 SpringBoot 自动配置启动流程 为什么没有执行selectImports方法

SpringBoot main方法所在类添加了注解@SpringBootApplication, 在此注解中添加了注解@EnableAutoConfiguration, 默认开启了自动配置@Import(AutoConfigurationImportSelector.class)public @interface EnableAutoConfiguration { ...}AutoConfigurationImportSelector实现了DeferredImportSelector接口,

2021-02-03 19:32:27 2313 4

原创 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 260

原创 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 514

原创 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 1760

原创 Spring Async注解 方法异步调用 用法 源码解析 以及错误使用解决方法

Async是Spring新加入的一种异步机制, 大多开发者也只是停留在会用的水平, 对其原理不太了解, 作为一名开发人员, 我们不仅要知其然, 更要知其所以然, 才能在项目开发过程中不会踩到不必要的坑.用法1.在SpringBoot启动类添加注解@EnableAsync@EnableAsync@SpringBootApplicationpublic class WebApplication { public static void main(String[] args) {

2021-01-17 01:27:08 1073

原创 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 1182 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 5862 4

原创 利用Spring模拟FeignClient自己实现RMI远程调用

首先应了解FeignClient的原理, 参考文章 Feign远程调用过程 初始化/动态代理/负载均衡原理:在Application启动类中注入Enable,注解中Import导入ImportBeanDefinitionRegistrar实现类,在实现类中即可完成对BeanDefinition的注入,然后BeanDefinition的BeanClass设置成Feign的代理类,当调用方法时,调用代理对象的方法,完成http远程调用。本文直接用了POST发起远程请求,并且服务发起方和提供方在同一个服务中,

2021-01-04 20:15:17 690

原创 Spring核心类ConfigurationClassPostProcessor解析:Spring初始化 Bean扫描、Configuration类动态代理

Spring在初始化时会向容器添加6个BeanPostProcessor,其中最为重要的就是ConfigurationClassPostProcessor。ConfigurationClassPostProcessor是Spring容器初始化的核心类,实现了BeanPostProcessor的子接口BeanDefinitionRegistryPostProcessor。postProcessBeanDefinitionRegistry用来扫描并解析指定路径的类,生成对应的BeanDefinition,解

2021-01-04 11:21:22 504

原创 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 183

原创 JVM GC 收集器 类加载 性能调优笔记

对象可回收引用计数法 循环引用可达性分析法 GC Roots对象栈中对象方法区中常量/静态属性对象本地方法栈中对象可回收区域新生代 老年代 永久区(废弃的常量/类)回收算法 标记不被回收的对象标记清除算法 碎片复制算法 浪费一半空间标记整理算法分代回收算法 新生代(分代/标记清理) 老年代(标记整理)收集器Serial 单线程 复制算法 stw 没有线程切换 效率高ParNew Serial多线程版本 可通过-XX:ParallelGCThreads限制线程个数Paral

2020-12-02 20:33:01 172

原创 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 319

SpringBoot整合Dubbo微服务

SpringBoot整合Dubbo, 分3个模块: api提供接口; service提供服务; mobile消费服务.

2019-08-15

Web微信, SpringMVC使用Socket做聊天链接

使用WebSocket作为前后端连接方式, SpringMVC+JSP+WebSocket, 即时通讯, 最近聊天记录, 好友列表. 需要配置D盘下创建好对应文件, 图片需要配置nginx才可以访问: server { listen 8888; server_name localhost; location / { alias D://itchat4j/; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }

2018-07-27

SpringCloud及SpringBoot整合使用, 包含zuul, eureka服务, mybatis做持久层

SpringCloud及SpringBoot整合使用, 包含zuul, eureka服务, mybatis做持久层, Maven模块划分: boot-test父模块, admin, remote-server, eureka-server, ruul-server, commons-api模块; 其中admin用来提供web服务模块; remote-server用来做服务端, 操作数据; eureka-serve作为服务的注册及发现; ruul-server则作为请求的路由和转发; commons-api则是数据表映射的实体.

2018-07-10

SpringBoot整合MyBatis MySql demo

整合SpringBoot和Mybatis简单的demo, 简单易学, 无配置文件, 只有application.properties配置

2018-04-08

使用Jsoup抓取网页关键信息并入库 ip天气查询并发送邮件

使用Jsoup抓取网页关键信息并入库 ip天气查询并发送邮件

2017-08-09

Java使用Jsoup抓取网页关键信息并入库

使用jsoup抓取网页列表信息,并入库,使用了PreparedStatement防止sql注入小demo。

2017-08-08

Spring+Hibernate+Mysql简单搭建

Spring+Hibernate+Mysql整合,实现了简单查询及插入,便于新手入门学习。

2017-03-02

解决动软代码生成器mysql下没有备注

完美解决动软代码生成器mysql下生成word或html文档时没有备注的情况。

2015-11-12

java统计excel并生成新的excel

使用java统计多个excel文档,分月份统计信息,并将结果生成新的excel文档

2015-10-28

通过ip查询当地天气信息

Java通过访问的ip获取城市信息,根据城市信息查询天气信息

2015-10-19

java利用工具生成word文档

使用itext生成word文档,导入即可使用

2015-03-30

数据库实现学生成绩管理系统选课管理及ER图

使用数据库实现了学生成绩管理系统,包含了选修课程管理,用viso画出了数据库对应的E-R图,数据库sql文件直接导入到数据库即可

2014-07-13

SSH框架实现登陆、注册、分页、图片上传入门

ssh与mysql结合,实现web的基本操作,主要包含用户登陆、注册,分页显示用户、图片上传,简单,适合初学SSH2的童鞋。

2013-09-18

ATM自动提款机

采用java技术设计,使用Mysql数据库,实现了各种功能

2013-03-25

基于MVC的客户系统管理系统开发

采用jsp+servlet+javabean,数据库为MysqL

2013-03-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除