自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

泛音青年的博客

现代矿工的自我修养

  • 博客(30)
  • 收藏
  • 关注

原创 记录一次生产环境慢SQL优化

记录一次生产环境慢SQL优化问题发现监控系统排在第一位就是此文主角,好在系统还在灰度期间,流量不大,但在1月7日放了4倍流量进来后,爆发了慢SQL,接口的耗时平均耗时从平时的80-100ms陡增到了400ms左右,高点在700ms,吓出一声冷汗,随着流量增加,必定拖垮服务。排查问题跟踪代码发现,此处的list永远不会为null,因为Id字段数据库给了默认值,所以这是一个代码缺陷,导致,每个请求都会去调用xxxService查库,导致了每个请求都回去扫描全表,并且频次非常高。这个SQL的写

2021-01-07 21:51:56 449 2

原创 TheadlLocal用法之基于SpringAOP的全局日志跟踪

烦恼:你是否有如下烦恼:你的系统日志打印非常乱,每次排查问题需要根据业务id去查询每个对应服务中这次请求所对应的日志,在单线程情况下,还能按照业务的调用顺序去排查,但是在多线程情况下,日志可能存在乱序,排查起来非常难受。解决:ThreadLocal的用法,除了用于SimpleDateFormate之外,还有更好的应用场景:在多线程情况的日志跟踪,同一线程或者一次事务的日志打印,将事务的日志保存在线程局部变量当中,在一次API请求的全链路下,均能全局的获取到这个日志的序号,无需侵入你的业务参数中层层传递

2020-08-06 14:12:58 279

原创 常见web攻击以及防御式编程

XSS跨站脚本攻击1)反射型(数据流向:浏览器 ->后端 -> 浏览器)2)存储型(数据流向是:浏览器 ->后端 -> 数据库 -> 后端-> 浏览器)3)基于DOM(数据流向是:URL–>浏览器 )CSRF跨站请求伪造攻击SQL注入攻击路径遍历...

2020-07-30 16:30:58 536

原创 基于ELK的日志收集分析系统(Elasticsearch+Filebeat+Kibana)

前言痛点:传统意义上,查找日志都是通过shell等工具登陆服务器后台去相应的日志目录下查看log文件,特别是联调、测试时,我们需要通过tail -f 、grep 'xxx’等命令,肉眼观察日志,如果是一个复杂的业务流程,则需要辗转多个日志目录下,并且没有统计分析等功能。思考:对于我们的业务系统,现在已经存在了一套日志收集系统(syslog+flume+kafka+elasticsearch),但是是基于核心业务,收集的都是需要做分析统计和机器学习的业务日志,对于研发人员来说,需要关心的是程序运行时l

2020-07-20 18:52:56 538

原创 SpringBoot集成Jsp教程

Springboot的默认视图支持是Thymeleaf, Thymeleaf是一个流行的模板引擎,是用来开发Web和独立环境项目的服务器端的Java模版引擎,开发传统Java WEB工程时,我们还是使用JSP页面模板语言,尽管在SpringBoot中已经不推荐使用了,但是Thymeleaf我们不熟悉,在不熟悉Thymeleaf语法语法情况下,我们熟悉的还是jsp,当SpringBoot需要集成jsp时,如下操作,能快速搭建起前后端一体的项目。1、在springboot项目基础上,在src/main下创建w

2020-07-20 18:52:16 246 1

原创 flume自定义拦截器

1.背景介绍鉴定Flume可以对数据进行简单处理,有一个需求是接收syslog格式的数据写入kafka,如果收到了非syslog数据,则分发到异常的kafka topic里做一个记录,或者对数据过滤完成初步的数据清洗。通过拦截器Interceptor实现不同的功能。Source将同一个事务的所有事件event传递给Channel处理器,进而依次可以传递给多个拦截器,直至从最后一个拦截器中返回的最终事件event写入到对应的Channel中。2.架构图[外链图片转存失败,源站可能有防盗链机制,建议将图片

2020-07-20 18:51:31 570

原创 Flume+syslog+kafka

一、概述1、flume是什么Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集、聚集、移动的服务,Flume只能在Linux环境下运行。Flume基于流式架构,容错性强,也很灵活简单,架构简单。Flume、Kafka用来实时进行数据收集,Spark、Storm用来实时处理数据,impala用来实时查询。的2、flume三层架构1)flume架构图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aJyoUX5E-1595242184263)(ht

2020-07-20 18:50:48 1421

原创 API限流方案调研

对于高并发的系统,有三大利器来保证系统的稳定可用:缓存、降级、限流缓存即是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹降级即是把服务暂时屏蔽,直接越过,待高峰后再恢复限流即流量限制,限流的目的是在遇到流量高峰期或者流量突增(流量尖刺)时,把流量速率限制在系统所能接受的合理范围之内,不至于让系统被高流量击垮(熔断即是把服务直接短路掉,返回一个mock的值)目前有几种常见的限流方式:通过限制单位时间段内调用量来限流 基于redis的限速器来限流(分布式系统) 使用

2020-07-20 09:57:03 308

原创 记录一次生产环境JVM调优的过程

1、起因:系统运行了一个单机版的Flink,一直处于重启的状态,手动进行重启后,运行几分钟任务全挂了,不停进行Restart重试提交,陷入死循环,排查是因为TaskManage挂掉了,在对jobmanager.heap.size和taskmanager.heap.size进行了无数次设置后,依然会挂掉,最后发现是系统的内存已经所剩无几,只有1.4G了2、排查过程排查其他的进程发现,很多模块的JVM参数设置过于偏高,如下图,Xms堆内存设置了2048m,我们不能盲目的去修改这个值,所以决定结合

2020-07-16 10:54:19 327

原创 zookeeper占用8080端口解决

zookeeper 3.5.5启动默认会把AdminService服务启动,这个服务默认是8080端口,是一个通过jetty启动的管理控制台,一般不会用到,网上的复制粘贴就是来自同一个办法如下:方法一、删除jetty方法二、修改端口。修改方法的方法有两种:在启动脚本中增加 -Dzookeeper.admin.serverPort=你的端口号.-Dzookeeper.admin.serverPort=你的端口号在zoo.cfg中增加admin.serverPort=没有被占用的端口号a

2020-07-14 15:01:16 3197 1

原创 JVM性能调优监控工具实战(jconsole,jvisualvm)

waiting。。。。

2020-07-13 18:33:19 542

原创 远程监控Flink任务性能内存分析超详细篇

前言上一篇讲了JVM性能调优的实战工具,针对于普通jar包的进程只需配置JXM即可,这篇讲解真实业务场景中服务器负载过高,首先找出性能耗费最高的进程,然后通过jconsole.exe和jvisualvm.exe工具分析。不出意外,这将是全网第一篇讲远程监控flink任务的教程工具介绍:JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。可以轻松地使用 JConsole来监控 Java 应用程序性能和跟踪 Java 中的代码,分析堆栈溢出、多线程死锁等效果俱

2020-07-13 18:16:09 3802 1

原创 Flink读取Kafka数据批量写入ES(elasticsearch)

Flink实时消费kafka数据,数据经过处理,富化、清洗等操作,写入ES。在流式计算中,此场景十分常见。本文采用ES的批量操作BulkProcessor方式,此方式使用的是TransportClient,基于Tcp协议;而rest方式采用的是restClient,基于http协议,并不能保证结果的准确性。参考一、依赖准备:主要依赖:<dependency> <groupId>org.elasticsearch</groupId> <art

2020-07-10 18:28:48 5917 2

原创 shell编程 (Jenkins)自动化部署脚本

自己摸索写了一个部署脚本,附shell语法使用超详细备注#!/bin/bash# 系统打包PROFILE_NAME=${PROJECT_NAME}#使用当前最新的环境变量source /etc/profile#定义模块名MODEL_LIST=( project-demo1 project-demo2)#定义模块的路径MODEL_PATH=( /usr/local/project-demo1 /usr/local/project-demo2)SEND_

2020-07-06 12:12:48 641

原创 Spark 本地提交、WebUI全攻略

本地提交:Local提交方式主要用于快速入门,开发阶段测试。用该模式提交,开箱即用,不用启动Spark的Master、Worker守护进程( 只有集群的Standalone方式时,才需要这两个角色),也不用启动Hadoop的各服务(除非你要用到HDFS)提交命令:提交javaspark-submit --class com.WordCount --master local /usr/local/spark/bin/spark-test-1.0-SNAPSHOT.jar提交pythonspar

2020-05-20 17:24:17 1159

原创 SpringBoot+Druid启动报错Failed to configure a DataSource: 'url' attribute is not specified

报错信息:Description:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver classAction:Consider the following: If you want an embedded database

2020-05-14 14:44:55 3471 2

原创 spark提交方式总结

spark部署方式:当用/bin/spark-submit 提交任务时,conf = SparkConf().setAppName(appName).setMaster(master)sc = SparkContext(conf=conf)一、Local模式:单机版,不需要依赖Hadoop、Zookeeper等组件。local: 所有计算都运行在一个线程当中,没有任何并行计算,通常我们在本机执行一些测试代码,或者练手,就用这种模式。local[K]: 指定使用几个线程来运行计算,比如loca

2020-05-12 18:45:36 286

原创 基于ELK的日志收集分析系统(Elasticsearch+Filebeat+Kibana)

基于ELK的日志收集分析系统(Elasticsearch+Filebeat+Kibana)痛点:传统意义上,查找日志都是通过shell等工具登陆服务器后台去相应的日志目录下查看log文件,特别是联调、测试时,我们需要通过tail -f 、grep 'xxx’等命令,肉眼观察日志,如果是一个复杂的业务流程,则需要辗转多个日志目录下,并且没有统计分析等功能。思考:对于我们的业务系统,现在已...

2020-05-06 14:42:55 1241

原创 Flink实战—基于时间窗口定时输出sink

Flink时间窗口运用上一篇介绍了Flink定时读取外部数据Flink 定时加载外部文件数据并广播这一篇将介绍Flink定时输出到外部存储介质,有两种办法实现,一种是同上一篇一样,在RichXXXFunction中实现SinkFunction的方法,在其中open()方法中引入java的定时任务。本文介绍另一种实现,基于Flink window窗口机制,定时sink。需求:经过...

2020-04-14 17:40:00 4815

原创 Flink 定时加载外部文件数据并广播

场景:刚做完的需求,一个kafka的流数据,需要和外部文件数据进行对比,这个外部文件存在每天更新的场景,所以需要再flink中定时读取,并用广播机制,广播到下游。1、实时流:基于flink1.9.2,必须使用FlinkKafkaConsumerFlinkKafkaConsumer ssConsumer = new FlinkKafkaConsumer(READ_TOPIC, new ...

2020-04-10 16:56:43 4548 4

转载 【转ThinkWon系列】面试题(2020最新版)

序号 内容 链接地址 1 Java基础知识面试题(2020最新版) https://thinkwon.blog.csdn.net/article/details/104390612 2 Java集合容器面试题(2020最新版) https://thinkwon.blog.csdn.net/article/details/104588551 3 ...

2020-04-08 14:59:42 7693 3

原创 Java8 Lambda表达式运用集锦

test

2020-04-08 14:52:00 313

原创 Flink按统计Kafka中每小时的数量并输出到MySQL

基于Flink1.9,统计某个日志中每小时的数据量,并输出到MySQLpublic static void main(String[] args) throws Exception { StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); ...

2020-03-17 16:02:54 4303

原创 Flink编程报错集锦

1、Could not find a suitable table factory for 'org.apache.flink.table.factories.TableSourceFactory' inthe classpath.Exception in thread "main" org.apache.flink.table.api.TableException: findAndCr...

2020-03-09 12:17:42 7349 4

原创 记录一次递归查询

这是一个自关联父id的表结构最近工作中遇到一个需求,查询每一层的父路径, 这个需求非常常见,但是一直没有写过,今天记录一下实现方式是:递归。把数据全部加载到内存中,放入map(不要放list遍历),然后去map里对比idMap<String, Group> mapId2Group = new HashMap<String, Group>(); for ...

2019-04-03 11:41:10 142

原创 SpringBoot启动失败:Unable to start embedded Tomcat

10:02:26.349 logback [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet Engine: Apache Tomcat/8.5.2310:02:26.463 logback [Tomcat-startStop-1] ERROR o.apache.catalina.core.ContainerBase...

2018-10-26 11:04:16 3053

转载 关于TCC分布式事务

今日,阿里电话面试,问了TCC,直接当场懵了,必须恶补分布式相关知识,记录一下。在当前如火如荼的互联网浪潮下,如何应对海量数据、高并发成为大家面临的普遍难题。广大IT公司从以往的集中式网站架构,纷纷转向分布式的网站架构,随之而来的就是进行数据库拆分和应用拆分,如何在跨数据库、跨应用保证数据操作和业务操作的一致性、原子性,又成为需要解决的新的问题。从分布式事务的需求来源来看:1、跨数据库 ...

2018-09-29 11:25:51 118

原创 XML格式数据与模型对象互转

记录一下工作中遇到的问题: webservice请求返回的不是对象而是XML,调研了一下,这种算是比较前沿的技术,非常简单,将XML文件中的每层标签做成模型对象dojo,切记必须序列化,然后加入相应的注解完成转换。 JAXB(Java API for XML Binding),提供了一个快速便捷的方式将Java对象与XML进行转换。在JAX-WS(Java的WebService规

2016-11-17 10:08:40 439

原创 SeleniumUI自动化测试版本兼容问题

selenium 2.53.1 firefox 47.0.1firefox 自带WebDriver,只需指定安装目录位置chrome需要自行下载ChromeDriver./** * */package com.luran.test;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firef

2016-08-16 17:27:11 771

原创 java.lang.IllegalArgumentException

java.lang.IllegalArgumentException解决方案:Tomcat版本问题,apache-tomcat-7.0.67改成apache-tomcat-7.0.11版本,问题解决。

2016-04-12 10:56:54 410

空空如也

空空如也

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

TA关注的人

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