自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(105)
  • 资源 (28)
  • 问答 (1)
  • 收藏
  • 关注

原创 springboot常用启动初始化方法

sprongboot项目启动初始化加载方式:ApplicationRunner与CommandLineRunner接口、Spring Bean初始化的构造方法、PostConstruct、init-method、InitializingBean

2023-01-03 20:55:29 3063 1

原创 Mybatis进阶之自定义TypeHandler

Mybatis进阶之自定义TypeHandler,实现个性化需求

2022-12-29 22:42:49 1094

原创 Spring web开发之Request 获取三种方式

在开发 Java Web 项目中,我们经常使用 HttpServletRequest 获取请求参数、请求头等信息。在Spring项目,我们通常会使用 Spring 提供的注解获取参数,如 @RequestParam、@RequestHeader。

2022-12-25 18:43:25 5943

原创 Flink怎么获取kafka的topic,partition,offset信息

实现KafkaDeserializationSchema解决Flink中对kafka消息反序列化问题

2022-10-10 11:40:31 2235 1

原创 Nginx中Head参数踩坑

Nginx中Head参数踩坑

2022-10-09 18:28:49 1220

原创 Flink cdc本地编译常见问题

Flink cdc本地编译常见问题归集

2022-09-09 10:53:05 819

原创 Spring Kafka的Offset提交时机

1、前提项目中使用了spring-kafka1.3版本,也用了2.5版本。但是对于offset的提交时机是模糊的,这次通过源码分析和资料进一步明确。2、认识KafkaConsumer的偏移量KafkaConsumer是kafka客户端一个入口,通过KafkaConsumer可以拉取kafka服务上的数据、发送心跳包、上报消费分区的偏移量(offset)。为了保证调用KafkaConsumer.poll()方法时总能返回未被消费者读取过的记录,消费者需要维护每个分区中已读消息对应的偏移量off

2022-05-15 22:24:48 1749 1

原创 Java并行流ParallelStream你应了解的

parallelStream作用采用多线程可以加快处理集合操作,底层原理是使用线程池ForkJoinPool(深入原理期待你的分享)并行流一定会比Stream快吗?在处理数据量并不大的情况下,“parallelStream()”的代码有时比使用“stream()”的代码慢。因为:parallelStream()总是需要执行比按顺序执行更多的,在多个线程之间分割工作并合并或组合结果会带来很大的开销。像将短字符串转换为小写字符串这样的用例非常小,与并行拆分开销相比,它们可以忽略不计。[外链图片转存失败

2022-02-11 20:04:04 6423

原创 三、Java线程池原理

线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。他的主要特点为:线程复用;控制最大并发数;管理线程。Java线程池工作过程1)线程池刚创建时,里面没有一个线程。任务队列是作为参数传进来的。不过,就算队列里面有任务,线程池也不会马上执行它们。2)当调用execute() 方法添加一个任务时,线程池会做如下判断: 2.1)如果正在运行的线程数量小..

2021-11-14 22:45:47 625

原创 二、Java垃圾收集器

垃圾收集算法是内存回收的方法论,垃圾收集器就是内存回收的具体实现。下图展示了7种不同分代的收集器,如果两个收集器之间存在连线,就说明他们可以搭配使用。并没有最好的收集器这一说,我们需要选择的是对具体应用最合适的收集器。1)Serial垃圾收集器(单线程、复制算法)--新生代 是最基本垃圾收集器,使用复制算法,曾经是JDK1.3.1之前新生代唯一的垃圾收集器。Serial是一个单线程的收集器,它不但只会使用一个CPU或一条线程去完成垃圾收集工作,并且在进行垃圾收集的同时,必须暂停其他所有的工作线程..

2021-11-14 22:26:25 536

原创 一、GC算法介绍

如何确定垃圾1、引用计数算法(见:https://mp.csdn.net/mp_blog/creation/editor/119833432)2、可达性分析为了解决引用计数法的循环引用问题,通过一系列"GC ROOTS"对象作为超点搜索。如果在“GC ROOTS”和一个对象之间没有可达路径,则认为对你是不可达的。需要注意的是:不可达对象不等价于可回收对象,不可达对象变为可回收对象至少要经过两次标记过程。两次标记后仍然是可回收对象,则将面临回收。垃圾收集算法1、标记清除2、复制3、

2021-11-14 21:59:48 354

原创 四、流计算容错问题

一、为什么需要容错二、state三、State Backend类型四、重启策略当task发生故障时,flink需要重启出错的task以及其它受影响的task,以使用作业恢复到正常执行状态。重启策略可以2种配置1)配置文件flink-conf.yamlrestart-strategy.fixed-delay.attempts:3restart-strategy.fixed-delay.delay:52)基于代码配置 env.setRestartStrategy(R...

2021-10-10 17:19:26 179

原创 二、Flink流计算-乱序之时间

1、时间的重要性,弄明白为什么需要有序?当iot设备上传的轨迹数据是乱序时,那业务在处理时就会有误,如计算超速就不准确。在直播带货中,每小时计算销售金额,并给主播按时结算报酬,如果时间乱了,把19:00的算到20:00了,那就是问题了。对于流计算中的乱序,应该怎么排序呢?在flink中,流计算的数据是事件,每个事件都会有自己的产生时间(如:每个gps点都会有自己的时间),所以流计算中的排序是按时间维度,Flink也是按时间排序来实现的。2、Flink时间类型1)事件产生的时间(.

2021-10-10 14:10:58 939

原创 maven多个仓库源配置及repositories和mirrors的配置及区别详解

maven仓库配置仓库优先级为:本地仓库(localRepositories) > profile中的repositories仓库 > POM > mirrors全局仓库repositories配置repositories指定jar包下载的地点,可以是多个。repositories可以通过setting.xml方式配置,会对所有maven项目生效,也可只在本项目pom.xml中配置一个maven仓库标签来实现。当在自己的maven项目的pom.xml中添加如下配置。

2021-09-21 00:52:27 16342 1

原创 Flink源码构建(1.10.0)

1、下载源码(本地安装有git环境)git clone https://gitee.com/apache/flink.gitgit checkout release-1.10.0#注意1.10.0是tag版本2、mvn构建时会有异常:Could not find artifact io.confluent:kafka-schema-registry-client:pom:3.3.1 in aliyunmaven (https://maven.aliyun.com/repository/p

2021-09-14 21:04:50 222

原创 一、引用算法介绍(补)

该算法会在每一个对象上记录这个对象被引用的次数,只要有任何一个对象引用了次对象,这个对象的计数器就+1,取消对这个对象的引用时,计数器就-1。任何一个时刻,如果该对象的计数器为0,那么这个对象public static void invoke() { User a = new User ();}public static void main(String[] args) { invoke();}main函数调用invoke方法,invoke方法中new了一个User的对象,

2021-08-20 23:59:37 198

原创 八、QueryServer参数说明

以下配置参数在phoneix中的bin目录下的hbase-site.conf文件中修改或新增项1、与服务端缓存相关配置属性 描述 avatica.connectioncache.concurrency 连接缓存并发级别。默认是10。 avatica.connectioncache.initialcapacity 连接缓存初始容量。默认是100。 avatica.connectioncache.maxcapacity 连接缓存的最大容量。接近这一点时,缓存将开始驱逐

2021-08-14 20:38:34 426

原创 七、Phoenix命名空间(schema)使用

phoenix中的命名空间可以类似于Mysql中的库名。默认情况下,所创建的表都是在默认的命名空间中。1、启用名称空间映射参数1)phoenix.schema.isNamespaceMappingEnabled:默认false,如果启用了它,那么使用模式创建的表将映射到名称空间。这需要在客户端和服务器端同时设置。如果设置一次,则不应回滚。启用此属性后,旧客户端将无法工作。2)phoenix.schema.mapSystemTablesToNamespace:默认true,如果它启动,系统表将自动

2021-08-14 20:07:36 2568

原创 六、Phoenix常见问题

1、如何预切割表预切割表指通过指定切割值,进而指定每个预分区的region的分割点,有效避免单点过热的问题。create table test(id integer primary key, name varchar,age integer,address varchar) split on (10, 20, 30, 40)#split后为切割点上面将创建5个region,其rowkey的范围为:Region 1 : row key 的前两位是 min~10Region 2 :

2021-08-14 19:49:19 848

原创 五、Phoenix Query Server

1、什么是Query Server1)先认识一下Phoenix重客户端架构在重客户端中,业务代码调用Phoenix提供的API,Phoenix将SQL转换为Hbase中API,再通过Hbase的客户端调用Hbase的服务,完成数据读写。通过这个图我们也可以看到,Phoenix的核心功能都是在RegionServer上执行,将处理下推到服务端,以致在大数据情况下查询速度在毫秒级别。这样的一个架构,业务应用重度融合了Phoenix和hbase客户的逻辑,依赖的jar包都几百M.2)Ph.

2021-08-14 19:19:55 4701 3

原创 四、Phoenix二级索引

Hbase只能基于字典序的rowKey索引,对于非主键过滤条件的查询都会变成扫全表操作,为了解决这个问题Phoenix引入了二级索引功能。然而此二级索引又有别于传统关系型数据库的二级索引。1、创建测试表CREATE TABLE IF NOT EXISTS test_user (id VARCHAR NOT NULL PRIMARY KEY,username VARCHAR ,phoen VARCHAR ,addr VARCHAR,times bigint) COLUMN_ENCOD

2021-08-14 17:47:54 1374

原创 三、Phoenix加盐表

1、认识加盐Phoenix中加盐是指对:Phoenix中PK(主键)对应的byte数组插入特定的byte数据。2、加盐能解决什么问题加盐能解决HBASE读写热点问题,例如:单调递增rowkey数据的持续写入,使得负载集中在某一个RegionServer上引起的热点问题。通过加盐,将数据打散分布在不同的RegionServer上,降低RegionServer的压力。3、如何加盐创建表的时候指定属性值:SALT_BUCKETS,其值表示所分buckets(region)数量, 范围是1~25

2021-08-14 16:47:48 897

原创 二、Phoenix DML语法

Select1、从一个表或多个表查询数据2、LIMIT(或者FETCH FIRST) 在ORDER BY子句后将转换为top-N查询3、OFFSET子句指定返回查询结果前跳过的行数(这个和mysql中是同一个意思)UPSERT注意:upsert和数据库的insert不一样,当主键存在时是更新,不存在是插入更多见:https://phoenix.apache.org/language/index.html...

2021-08-14 15:43:37 151

原创 一、Phoenix 快速入门

Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询,Phoenix有提供了其它优势:1、二级索引支持(global index + local index)2、充分利用服务端的资源,在数据层完成计算,server端的coprocessor执行聚合3、下推where过滤条件到server端的scan filter上4、利用统计信息优化、选择查询计划5、skip scan功能提高扫描速...

2021-08-14 15:33:57 839

原创 Nacos2.x集群下各nacos节点注册服务不一致问题

现象:测试环境用Docker部署了Nacos2.0版本作为配置中心和服务注册中心。今天测试反馈,服务在调用时时通时不通,https://blog.csdn.net/Alfalfa99/article/details/108042109

2021-06-19 18:31:44 9415

原创 MySQL8.0.23事务隔离级别

mysql8.0.23的可重复读(repeatable-read中不会出现幻读的情况) 1、脏读:A事务读取了B事务更新的数据(B未提交),然后B回滚操作,那么A读取到的数据是脏数据 2、不可重复读:A事务多次读取同一数据,B事务在A事务多次读取的过程中对数据作了更新并提交,导致A事务读取的数据在B事务提交前后结果不一致。 3、幻读:A事务查询表只有4笔数据,并对数据做了修改,B事务在A事务修改过程中新增了一笔数据,导致A事务查询数据量多了一笔数据,这个为幻读。 重点:不可重复读和幻读区..

2021-05-23 23:05:23 121

原创 java应用占用内存高的排查

场景:生产环境运行了一个java tomcat web应用,之前没有去观察他的资源使用情况,今天在查看日志时看了一下应用的内存,发现内存占用很高(这里说明一下,这个应用没有什么人访问,理论上来说是不会占用太多内存的)。排查步骤1、top 查看当前进程的情况2、上图可以看到是线程1占用的内存高,那再定们线程问题:ps p 1 -L -o pcpu,pmem,pid,tid,time,tname,cmd当我执行这个命令时,已经发现了异常,这里有近2000个线程在(继续排查是什么线程).

2021-03-14 19:28:29 1040

原创 Linux查找大文件并自动删除(日志管理)

服务上线有段时间了,今天收到磁盘报警通知,想应该是日志报警,于是想通过自动化删除7天前的日志信息,具体操作步骤如下(前两步排查文件大小):1、登录服务器查看磁盘占用情况df -lH是/mvsp的目录占用空间太多2、再通过du命令查看是哪个目录占用日志大du -sh /mvsp/*3、现在确定是日志文件了,下面做自动删除3.1创建一个 clearlog.sh 文件,内容如下#!/bin/bash find /mvsp/LOGS/logs -name "*..

2021-02-28 07:01:37 1425

原创 Docker日志策略调整

线上使用了Docker部署Tomcat项目,今天查看磁盘发现5天100G没有了,经过与同事商量后发现,是Docker记录的日志。1、排查Docker容器日志输出情况docker inspect --format {{.LogPath}} 容器名/容器ID ,这下面是docker的日志输出路径。2、调整日志保留策略 1)全局设置(必须重启docker守护进程)# vim /etc/docker/daemon.json{ "registry-mirrors": [...

2021-02-03 15:37:45 641

原创 Phoenix日期时间问题

Phoenix中跟时间相关的类型有TIMESTAMP,DATE和TIME,这些类型对于时区的处理逻辑是相同的,所以这里就以TIMESTAMP类型为例来说明Phoenix关于时区的处理方式。首先,我们先来看下Phoenix文档中对于TIMESTAMP类型的描述:The timestamp data type. The format is yyyy-MM-dd hh:mm:ss[.nnnnnnnnn]. Mapped to java.sql.Timestamp with an internal rep...

2021-01-24 16:40:59 2619

原创 VBoxGuestAdditions加载不了

未能加载虚拟光盘 D:\Program Files (x86)\oraclevm\VBoxGuestAdditions.iso 到虚拟电脑 centeros7_8.Could not mount the media/drive 'D:\Program Files (x86)\oraclevm\VBoxGuestAdditions.iso' (VERR_PDM_MEDIA_LOCKED).返回 代码: E_FAIL (0x80004005) 组件: ConsoleWrap 界...

2020-10-28 07:24:28 997

原创 VirtualBox配置CentOS7.2 网络(固定IP+上网)

注意:对虚拟机网络设置,需要先关闭虚拟机;一、采用Host-Only模式给虚拟机设置一个固定IP,让主机与虚拟机网络相通。 打开虚拟机的设置,找到网络设置。再启用网卡1,选择连接方式为Host-only,界面名称选择VirtualBox Host-Only Ethernet Adapter,设置如下图二、打开网卡2,选择网络地址转换(NAT)模式,用于上互联网(如下图)三、进入系统,修改配置文件前提:要了解主机配置给虚拟机的IP是多少,在VirtualBox管理主界面--...

2020-10-25 14:55:43 237

原创 mysql8通过docker-compose集群配置

因工作需要,现在自己搭建mysql主从集群环境,这里以docker-compose为基础,部署一主一从。说明:该操作是在window系统上使用docker,如果是mac或linux,主要关注volumes中的路径1、在任意目录下创建docker-compose.yml文件,内容如下:version: '2.2'services: mysql-master: container_name: "mysql-master" image: docker.io/mysql pri

2020-08-08 14:22:34 1148

翻译 一、Flink本地安装

通过3步,在本地搭建Flink环境前提:本地安装有JDK8+java -version1、下载Flink文件,并解压(linux/mac系统)$ tar -xzf flink-1.11.0-bin-scala_2.12.tgz$ cd flink-1.11.0-bin-scala_2.122、启动集群(启动成功后,可以访问http://localhost:8081查看任务)$ ./bin/start-cluster.shStarting cluster.Starting

2020-07-20 16:36:42 310

原创 windows 10 家庭版安装docker

1、家庭版添加Hyper-V 新建hyper-V.bat命令文件,内容如下pushd "%~dp0"dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txtfor /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"..

2020-07-18 11:27:24 217

原创 五、基于Docker的ES环境搭建

前提:系统中已经安装好docker和docker-compose。1、新建一个目录用 Elasticsearch,用于存放相关的配置文件(我的目录为:/Volumes/Home/Elasticsearch)2、新建 docker-compose.yml 其内容如下:version: '2'services: es-data-server: image:elasticsearch:7.6.0 container_name: es-data-server envir...

2020-07-17 14:09:08 352

原创 通过jstat命令查看jvm的GC情况

jstat [Options] vmid[interval] [count]参数说明:Options,选项,我们一般使用 -gcutil 查看gc情况vmid ,VM的进程号,即当前运行的java进程号interval ,间隔时间,单位为秒或者毫秒count ,采集次数,如果缺省则打印无数次示例通常运行命令如下:jstat -gc 31 1000即会每1秒一次显示进程号为31的java进成的GC情况,显示内容如下图:结果说明S0C:年轻代中第一个...

2020-07-10 10:08:49 411

原创 解决 Mysql Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)

mysql根据中文条件查询时,报如标题的异常,其本质是:数据库出现了两种字符集。SHOW VARIABLES LIKE 'character_set_%'; +--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+| character_set_client |.

2020-07-06 16:16:31 3884

原创 Docker安装Elasticsearch问题归集

前提:docker容器中的log目录和data目录挂载到物理机上,如下#数据目录- /data/xxx/es-config/data:/usr/share/elasticsearch/data#日志目录- /data/xxx/es/logs:/usr/share/elasticsearch/logs1、启动时报:Error opening log file 'logs/gc.log': Permission denied#root用户登录给日志目录授权chown -R 100.

2020-07-02 17:18:25 426

原创 Elasticsearch让 keyword 和 term 忽略大小写

在Elasticsearch中处理字符串类型的数据时,如果我们想把整个数据作为一个完整的 term 存储,我们通常会将其类型(type)设定为keyword。而这种设定又会给我们带来麻烦,比如Bar、bar两个实际都是bar,但当我们去搜索bar时却无法返回 Bar的文档。要解决这个问题,就需要Normalizer出场了!PUT test_normalizer{ "mappings": { "doc":{ "properties": { ...

2020-07-01 09:39:39 10831 1

java编程规范

java编程规范

2012-02-23

Expert_One-on-One_J2EE_Design___Development

Expert_One-on-One_J2EE_Design___Development

2012-02-23

Expert_One-on-One_J2EE_Design___Development -1

Expert_One-on-One_J2EE_Design___Development

2012-02-23

Openfire使用与插件开发

Openfire使用与插件开发 主要是用于熟悉openfire

2012-02-23

FreeMarker中文教程

FreeMarker 中文教程,非常实用

2011-08-24

详解EJB3源码(2)

详解EJB3源码(2) 要和(1)一起下载

2011-08-24

详解EJB3源码(1)

详解EJB3源码(1),学习好东西。 下载(2)后,放在同一个目录下解压即可。

2011-08-24

详解EJB3.pdf

EJB3.pdf教程很好的。写的比较好 ,在jboss上运行

2011-08-24

wap2.0说明(XHTML MP and WCSS)

wap2.0说明(XHTML MP and WCSS)

2011-07-10

QuickstartAxis2

QuickstartAxis2QuickstartAxis2QuickstartAxis2

2011-04-07

深入理解计算机系统(原书第2版).pdf

深入理解计算机系统教程 这是迷你版,欢迎下载

2011-03-29

Java P2P UDP

Java P2P UDP 点对点 NAT UDP TCP Socket 聊天 通讯 穿越 防火墙

2011-03-29

ajax 框架dwr

ajax框架:dwr》实战(包括整合).pdf

2010-11-23

apache-ivy

apache ivy bin zip 2.2

2010-11-23

ajax教程.chm

XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面

2009-03-30

软件工程思想 软件开发

《软件工程思想》讲述“软件开发”和“做程序员”的道理,视野独特,构思新颖,内容风趣,不落窠臼,令人耳目一新。堪称难得,以至回味无穷。

2009-03-30

commons-collections-3.2.jar

commons-collections-3.2.jarcommons-collections-3.2.jarcommons-collections-3.2.jar

2008-12-20

spring 2.0中文手册

Spring Framework 2.0开发参考手册

2008-11-19

linuxjava.rar

linux java

2008-01-25

AjaxFastLane

新手快道.ajax.入门

2007-09-23

prototype.js

一个js 包...............

2007-09-23

Thinking.In.Java.3rd.rar

java编程思路 3rd

2007-08-23

iReport+jasperReports开发java Application报表

iReport+jasperReports开发java Application报表

2007-08-23

spring 2.0中文用户指南

则重于spring入门

2007-08-23

oracle class14驱动程序

oracle驱动程序

2007-05-12

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

TA关注的人

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