自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 java SpringBoot(十五)JUnit5简单使用

JUnit5的注解与JUnit4的注解有所变化https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations@Test :表示方法是测试方法。但是与JUnit4的@Test不同,他的职责非常单一不能声明任何属性,拓展的测试将会由Jupiter提供额外测试 @ParameterizedTest :表示方法是参数化测试,下方会有详细介绍 @RepeatedTest :表示方法可重复执行,下方会有详细介绍 @Di

2021-05-31 14:58:07 297

原创 java SpringBoot(十四)redis简单使用

一、导入pom依赖因为我们使用jedis连接器,所以导入jedis依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- 导入jedis--> <depen

2021-05-28 16:22:38 94

原创 java SpringBoot(十三)MyBatis Plus 自动配置介绍以及使用MyBatis Plus

MyBatis Plus 官方https://baomidou.com/1、引入MyBatis Starter 引入Druid当做数据源 引入mysql驱动 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.1</version&.

2021-05-28 14:36:14 2382

原创 java SpringBoot(十二)数据库访问Ddemo 使用Druid跟MyBatis简单实例

今天我们简单使用Druid作为数据库操作的数据源Druid可以提供对数据库访问、慢sql、防火墙、sql注入等很多监控功能使用MyBatis数据库操作工具对数据库进行简单操作。前提:我们都知道用SpringBoot操作数据库需要导入JDBC包JDBC包帮我们底层配置好的连接池是:HikariDataSource我们想将数据源切换成Druid,导入Druid包查看源码在DataSourceAutoConfiguration之前加载,所以数据源就切换成我们的Druid...

2021-05-27 19:21:15 336 2

原创 java SpringBoot(十一)数据库访问-Druid

什么是Druid: Druid是java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。druid官方github地址https://github.com/alibaba/druidSpringBoot配置示例https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter配置项列表https://github.com/alibaba/druid/wiki/DruidDataSource%.

2021-05-27 09:59:24 180

原创 java SpringBoot(十)Web原生组件注入(Servlet、Filter、Listener)

1、Servletimport javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;.

2021-05-25 16:33:13 164

原创 java SpringBoot(九) 自定义异常处理

1、返回运行时异常 返回错误码跟错误信息import org.springframework.http.HttpStatus;import org.springframework.web.bind.annotation.ResponseStatus;//RuntimeException 运行时异常//返回错的状态码 HttpStatus.FORBIDDEN 错误信息:reason@ResponseStatus(value= HttpStatus.FORBIDDEN,reason = "用户数

2021-05-25 16:28:43 130

原创 java SpringBoot(八)文件上传、多文件上传实现

实现文件上传以及多文件上传的功能。import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bi

2021-05-24 16:07:16 272

原创 java Flink(三十) 面试问题合集

https://blog.csdn.net/wypblog/article/details/103900577https://zhuanlan.zhihu.com/p/138101642

2021-05-24 10:59:39 138

原创 java Flink(二十九)Flink 总结 什么是Flink、Flink的主要特点、Flink 运行架构 运行时组件、Flink任务流程、什么是状态一致性(精确一次) 等

一、什么是FlinkFlink 是为分布式、高性能、随时可用以及准确 的流处理应用程序打造的开源流处理框架。Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行有 状态计算。Flink 被设计在所有常见的集群环境中运行,以内存执行速度和任意规模 来执行计算。二、为什么选择Flink1、流数据更真实地反映了我们的生活方式2、低延迟 ➢ 高吞吐 ➢ 结果的准确性和良好的容错性3、支持事件时间(event-time)和处理时间(processing-time) 语义4.

2021-05-21 17:48:41 1196 1

原创 java Flink(二十八)Flink实战之电商订单流与到账流数据匹配 使用:connect对两条数据流进行连接、intervalJoin对两条数据流数据区间进行连接

题目:我们要将收到的订单流与到账流进行数据匹配。1、目录结构2、到账流数据内容3、到账流包装类package Beans;public class ReceiveEvent { private String txId; private String payChannel; private Long timetemp; public ReceiveEvent() { } public ReceiveEvent(String

2021-05-21 16:57:17 583

原创 java flink(二十七) 实战之电商 订单超时取消报警计算 CEP与ProcessFunction 对比

题目:根据订单文件,读取订单状态:创建-支付-取消,如果15分钟未支付,输出该订单报警。1、首先利用CEP实现目录结构:文件内容:文件内容转换成pojo包装类:package Beans;public class OrderEvent { private Long orderId; private String eventType; private String txId; private Long timestamp; publ.

2021-05-21 15:06:36 775 1

原创 java flink(二十六) 实战之电商黑名单过滤 Flink CEP编程实现、什么是CEP、CEP组合模式demo、CEP循环模式demo

什么是CEP:1、复杂事件处理2、Flink中实现复杂事件处理库3、CEP允许在无休止的事件中检测事件模式,让我们有机会掌握数据中的重要部分4、一个或多个由简单事件构成的事件通过一定的规则匹配,然后输出用户想要的数据。CEP API:begin 第一个事件定义where 条件next 后一个紧跟着事件定义subtype 子类型判断followedBy 后边的时间 不一定紧跟着CEP 个体模式:CEP 模式序列CEP 超时处理...

2021-05-21 11:04:04 687

原创 java flink(二十五) 实战之电商黑名单过滤 使用:控制定时器触发、删除。实现:1、根据时间触发定时器 2、根据事件触发定时器

题目:1、我们获取访问日志,如果2s内连续登录失败超过两次的用户进行报警2、解决时效性 连续失败等于两次就报警1、目录结构:2、日志内容:3、接收数据包装类package Beans;public class LoginEvent { private Long userId; private String ip; private String loginState; private Long timestamp; public

2021-05-21 10:01:04 365

原创 java flink(二十四) 实战之电商广告点击黑名单过滤 使用:process自定义过滤器、侧输出流报警、最终统计数据之前拦截数据、双状态、定时器、双key分组

实际场景中有这么一种情况,我们需要在数据进入窗口统计之前进行一次过滤,但是数据不是单纯的被过滤掉,而是另有用途或者是数据只需要部分,多余的会产生报警信息。所以不能单纯的使用filter进行数据过滤。场景:读取广告点击记录,统计根据城市统计各个城市点击量。另外需要根据用户id统计,如果用户点击单个广告超过100次(一天之内,超过一天重新计算)则进行报警,输出到测输出流,并且超过100次的数据不进入城市统计。1、目录结构2、pojo代码 首先是将接收到的数据转换成pojo类型packa

2021-05-20 14:50:24 576

原创 java Flink(二十三)Flink实战之模拟市场营销,用户动作统计。使用:自定义模拟数据源、组合开窗、增量聚合、滑动窗口

这篇主要介绍怎么自定义模拟数据源,还有组合开窗的使用。1、目录结构:2、pojo包装类package Bean;public class MarketingUserBehavior { private Long userId; private String behavior; private String channel; private Long timestamp; public MarketingUserBehavior() {

2021-05-19 20:16:16 258

原创 java Flink(二十二)Flink实战之电商用户访问量(uv独立访客数)统计 使用:利用set进行数据去重、自定义布隆过滤器,解决状态数据过大、内存过大的问题、使用trigger自定义窗口触发器

某些情况下,我们开窗统某些数量,需要根据主键进行去重操作,这里我们可以利用set集合进行去重操作但是如果窗口中set里面的数据过多,则会占用大量的内存。于是在这种场景下,我们可以选择将数据保存到redis,使用一个布隆过滤器,高效又能降低内存使用。布隆过滤器的基本原理就是将主键进行hash计算,将计算的值在redis里保存的位图的相关位置置1,如果再来数据可以检测相关位置是否是1,如果是1说明已经有该数据。我们实战一个电商统计每小时内访问量(独立访客数)1、目录结构:2、pojo

2021-05-19 19:25:25 863 5

原创 java Flink(二十一)Flink实战之电商用户访问量统计,统计某个时间段内的访问总量,设计随机key解决数据倾斜问题,解决并行度只是用一个问题。

1、在实际项目中,如果只单纯的统计数量,但是要进行开窗操作,开窗之前是需要keyBy操作的,因为我们需要统计所有数量,所以keyBy没有意义。所以我们可以设计Tuple将keyBy 的key统一为固定一个。2、如此操作 所有key固定,并行度是根据key的hashcode取模之后进行重分区,这样key固定 并行度就没有意义。题目:开窗统计一个小时的窗口内总的访问数量,解决数据倾斜问题,使并行度设计更加合理。1、首先项目结构2、文件内容3、pojo类设计package

2021-05-18 11:32:57 2485 1

原创 面试准备(四)位运算以及代码中简单使用

位运算:从现代计算机中所有的数据二进制的形式存储在设备中。即 0、1 两种状态,计算机对二进制数据进行的运算(+、-、*、/)都是叫位运算,即将符号位共同参与运算的运算。合理的运用位运算更能显著提高代码在机器上的执行效率。一、& 与运算两位同时为1,结果才为1,否则结果为0。0&0=0 0&1=0 1&0=0 1&1=1应用技巧:1、清零:如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。2

2021-05-17 18:03:36 90

原创 面试准备(三)原码、补码、反码以及进制转换

原码、补码、反码:首先:计算机中的所有数据都是以数据补码的形式存储的(机器码)。计算机中没有减法计算器,所以引入反码、补码具有减法计算的意义。原码:原码就是最高位表示符号位,0为正数,1为负数。其余是数值。 ps:原码在正数计算上没有问题,但是在正数负数相加、负数负数相加上会有错误。原码最大的问题就是一个数加上他的相反数不等于0,所以引入反码。反码:正数的反码还是等于原码,负数的反码就是他的原码除符号位外,按位取反。ps:反码的存在解决了两个相反数相加不等于0 的问题,但是在两个负数相加还是存在

2021-05-17 17:37:24 168

原创 java flink(二十) 实战之电商页面统计热门二(apache log)访问地址 使用:详细理解flink延迟处理机制、使用flink侧输出流、flink双计时器使用。数据排序

基于上文我们本文来具体理解flink的延迟处理机制以及侧输出流使用,如何注册使用两个计时器等。1、首先理解flink窗口的范围,flink如何设置每个窗口的范围根据flink底层代码,我们可以看到flink的初始窗口的范围选择是根据窗口大小选择最近的整数倍的窗口。举个例子:比如我们的窗口大小是10s第一条进来的数据事件时间是 16000000009那么flink设置的第一个窗口范围就是[16000000000,16000000010) 前闭后开2、理解watermark的使...

2021-05-14 15:01:30 502

原创 java flink(十九) 实战之电商页面统计热门(apache log)访问地址 使用:map、filter、aggregate、process、定时器、状态

实战二说明:看视频学习之二,继续根据实战一往后进行学习1、首先新建模块 目录结构:同样我们模块内的pom不需要进行修改 利用主pom即可2、数据源(这里数据源使用文件读取,展示部分内容)3、代码展示首先是pojo类里边的接收类,把接收到的数据转成对象package Bean;public class ApachLogEvent { private String ip; private String userId; private Long .

2021-05-13 17:04:23 511 3

原创 java redis工具类 redis哨兵模式使用

redis工具类package Source;import com.alibaba.fastjson.JSON;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;import java.io.Seri.

2021-05-11 15:49:26 436

原创 java flink获取数组中的最大值以及索引、数组中的最小值以及索引并返回元组类型、计算数组的和

import org.apache.flink.api.java.tuple.Tuple2;//获取数组最大值以及最大值索引 public static Tuple2<Double, Integer> getListMaxValue(List<Double> list) { double maxValue = list.get(0); int index = 0; for (int i = 0; i < list.s.

2021-05-11 15:13:47 756

原创 java Flink(十八)flink 1.10从程序打包到flink安装、服务部署 包含kafka、检查点使用、状态保存、故障状态恢复checkpoint等

一、检查服务器运行环境*(重要)运行 vim /etc/profile查看当前服务器的运行环境 jdk需要大于1.8以上版本(如果没有需要安装jdk)hadoop版本2.7.5scala版本2.11二、flink下载下载我们需要的flink版本https://archive.apache.org/dist/flink/我们scala是2.11下载之后 tar zxvf flink-1.10.0-bin-scala_2.11.tgz进行解压修改con...

2021-05-11 14:39:10 796

原创 java Flink(十七)flink程序打包 单机部署 以及与kafka遇到的那些问题 解决 NoClassDefFoundError 解决无法消费 解决无法加载类用户classloader

今天记录一下这两天部署flink程序的过程以及遇到的坑。首先我的服务是一个flink计算服务,里边用到了kafka、redis等。一、flink下载安装https://archive.apache.org/dist/flink/点击下载flink版本,这里要选择好自己的flink匹配的hadoop版本以及scala版本。这里我们选择的是比较稳定的1.7.2...

2021-05-08 10:21:11 3627

空空如也

空空如也

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

TA关注的人

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