自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

IUNIQUE技术册

读史使人明智,读诗使人灵秀,数学使人周密,科学使人深刻,伦理学使人庄重,逻辑修辞使人善辩,凡有所学,皆成性格。

  • 博客(133)
  • 资源 (2)
  • 收藏
  • 关注

原创 freemarker与flying-saucer-core实现html转图片显示图片方框的问题解决

freemarker与flying-saucer-core实现html转图片方案在windows系统测试正常,到linux测试发现中文字体都是显示方框,经过排查为linux服务器中缺少中文字体,故此下面为linux安装字体的方法。

2023-07-28 11:04:49 461

原创 Nocas为什么会在SpringBoot启动完就会注册呢?

小编在使用Nacos的时候,突然有了这个疑问,所以来debugger跟踪一下源码看看。SpringBoot使用的是ServletWebServerApplicationContext容器,是AbstractApplicationContext的子类,当Spring容器完成之后,即调用了finishRefresh方法。可以从下图可知,会调用以下方法列表。

2022-09-16 23:15:07 646 1

原创 Spring之事务实现原理及其注解@Transactional底层和传播机制原理

本文介绍Spring之事务实现原理,以及注解@Transactional底层实现和7种传播传播机制原理//尝试获取一个事务对象 Object transaction = doGetTransaction();/*** 判断从上一个方法传递进来的事务属性是不是为空} /*** 判断是不是已经存在了事务对象(事务嵌套)//处理存在的事务 return handleExistingTransaction(definition , transaction , debugEnabled);

2022-09-10 16:06:02 604

原创 Spring之AOP-JDK动态代理源码解析

主要介绍SpringAOP中JDK动态代理封装实现.

2022-09-07 23:42:32 538 1

原创 AQS之ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue阻塞队列特性及源码分析

BlockingQueue——是JUC包提供用于解决并发生产者与消费者问题的类,具有在任意时刻只有一个线程可以进行take或者put方法的特性,即执行take和put方法时阻塞,还提供了超时机制,常用于解耦,在很多的生产与消费场景中可以看见,例如需要在一个系统内实现多任务并发执行,可将任务放入阻塞队列存放,多线程进行消费执行。

2022-09-06 21:40:28 257

原创 kafka_2.11-2.3.0版本生产者与消费者启动时大量打印DEBUG日志关闭

kafka_2.11-2.3.0版本生产者与消费者启动时大量打印DEBUG日志,无法看到程序输出的关键信息。

2022-09-06 21:33:55 1345

原创 Centos7 SSH登陆慢的解决办法

使用ssh登陆 centos,特别的慢,等至少几十秒才登陆进去。2)、执行*/etc/init.d/sshd restart。centos7 登录慢,可能是在反向验证DNS,禁用即可。ip地址 查看详细登录信息 具体看那个阶段慢。重启sshd进程使上述配置生效,或者。

2022-09-01 21:39:04 2157

原创 AQS之Semaphore&CountDownLatch&CyclicBarrier的特性与源码分析

第一节 synchronized关键字详解-偏向锁、轻量级锁、偏向锁、重量级锁、自旋、锁粗化、锁消除第二节 AQS抽象队列同步器原理详解第三节 AQS之ReentrantLock特性和源码分析及CAS和LockSupport的核心原理本节介绍Semaphore、CountDownLatch、CyclicBarrier三大工具类的相关特性与源码分析。PV操作是一种实现进程互斥与同步的有效方法。PV操作与信号量的处理相关,P表示通过的意思,V表示释放的意思。①S减1;②若S减1后仍大于或等于0,则进程继续

2022-07-12 21:22:54 176

原创 Redis分布式锁实战

第一节 Redis的安装第二节 Redis的五种数据结构(String、Hash、List、Set、ZSet)第三节 Redis的持久化方式第四节 Redis主从架构第五节 Redis哨兵高可用架构第六节 Redis集群高可用架构第七节 Redis集群选举原理与脑裂问题第八节 Redis高可用集群之水平扩展操作实战本节介绍Redis分布式锁实战,包含Redis高并发问题现象与Redis分布式问题解决方案两大方面。在redis客户端操作,设置stock_number为502、SpringBoo

2022-07-08 16:37:03 144

原创 Redis高可用集群之水平扩展操作实战

第一节 Redis的安装第二节 Redis的五种数据结构(String、Hash、List、Set、ZSet)第三节 Redis的持久化方式第四节 Redis主从架构第五节 Redis哨兵高可用架构第六节 Redis集群高可用架构第七节 Redis集群选举原理与脑裂问题从《Redis集群高可用架构》这一节的基础上,本节介绍Redis水平扩展的操作实战。在三台机器上面分别执行以下的命令启动所有的redis服务二、连接集群连接任意一个客户端集群状态从上面的打印结果可知,集群运行正常,三

2022-07-06 12:23:57 367

原创 Redis集群选举原理与脑裂问题

第一节 Redis的安装第二节 Redis的五种数据结构(String、Hash、List、Set、ZSet)第三节 Redis的持久化方式第四节 Redis主从架构第五节 Redis哨兵高可用架构第六节 Redis集群高可用架构当slave节点发现自己的master节点变为FAIL状态时,便尝试进行Failover(故障转移),以期成为新的master。由于挂掉的master节点可能会有多个slave节点,从而存在多个slave节点竞争成为master节点的过程。过程如下:从节点并不是在主节点

2022-07-05 20:46:55 1829

原创 Redis集群高可用架构

第一节 Redis的安装第二节 Redis的五种数据结构(String、Hash、List、Set、ZSet)第三节 Redis的持久化方式第四节 Redis主从架构第五节 Redis哨兵高可用架构本节介绍集群高可用架构、与哨兵架构的区别及搭建过程。哨兵架构的特点:三主三从:三个master节点,每个master节点搭配一个slave节点;三台机器,每台机器一主一从。以一台机器为例,其余两台机器类似:3、修改7002节点配置把修改后的7001文件夹里的配置文件redis.conf复制到700

2022-07-05 19:17:34 789

原创 JVM对象创建、对象内存分配、对象内存回收机制

第一节 JVM类加载机制详解本节介绍JVM的对象创建、内存分配、内存回收机制,对象创建包含类加载检查、分配内存、初始化、设置对象头、执行init方法;对象内存分配包含对象栈上分配(逃逸分析和标量替换)以及新生代Eden和老年代内存分配介绍;对象内存回收包含引用计数法和可达性分析以及常见的四种引用类型——强引用、软引用、弱引用、虚引用。虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相

2022-07-04 20:48:25 146

原创 AQS之ReentrantLock特性和源码分析及CAS和LockSupport的核心原理

第一节 synchronized关键字详解-偏向锁、轻量级锁、偏向锁、重量级锁、自旋、锁粗化、锁消除第二节 AQS抽象队列同步器原理详解ReentrantLock是一种基于AQS框架的应用实现,是JDK中的一种线程并发访问的同步手段,它的功能类似于synchronized,是一种互斥锁,可以保证线程安全。而且它具有比synchronized更多的特性,比如它支持手动加锁与解锁,支持加锁的公平性。首先synchronized不具备的公平与非公平性,在ReentrantLock内部定义了一个Sync的内部类,

2022-07-01 16:54:03 248

原创 JVM类加载机制详解

第一节 JVM类加载机制详解本节对JVM类加载机制的相关内容进行介绍,包含类加载运行流程、类加载器、双亲委派机制等。代码案例:上面的java代码该如何执行?java命令执行字节码文件的流程如下图所示:整体流程:加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载类被加载到方法区中后主要包含:运行时常量池、类型信息、字段信息、方法信息、类加载器的引用(这个类到类加载器实例的引用)、对应class实例的引用(类加载器在加载类信息放到方法区中后,会创建一个对应的Class 类型的对象

2022-06-28 15:23:17 280

原创 AQS抽象队列同步器原理详解

第一节 synchronized关键字详解-偏向锁、轻量级锁、偏向锁、重量级锁、自旋、锁粗化、锁消除Java并发编程——核心在于java.util.concurrent包,而JUC当中的大多数同步器实现都是围绕着共同的基础行为(比如等待队列、条件队列、独占获取、共享获取等),这个行为的抽象就是基于AbstractQueuedSynchronizer简称AQS,AQS定义了一套多线程访问共享资源的同步器框架,是一个依赖状态(state)的同步器。AQS大致有以下五大特性:除了Lock外,JUC当中同步器的实现

2022-06-27 20:45:08 240

原创 synchronized关键字详解-偏向锁、轻量级锁、偏向锁、重量级锁、自旋、锁粗化、锁消除

第一节 synchronized关键字详解本节介绍synchronized关键字相关内容,包含其的作用与使用及其底层原理等。在多线程编程中,有可能会出现多个线程同时访问同一个共享、可变资源的情况,这个资源我们称之其为临界资源;这种资源可能是:对象、变量、文件等。导致的问题:由于线程执行的过程是不可控的,所以需要采用同步机制来协同对对象可变状态的访问,synchronized则是其中一个同步器,本身也具备与Volatile相同的特性,即可见性,因此这种情况下就可省去volatile修饰变量。synchron

2022-06-25 20:56:01 250

原创 Redis哨兵高可用架构

第一节 Redis的安装第二节 Redis的五种数据结构(String、Hash、List、Set、ZSet)第三节 Redis的持久化方式第四节 Redis主从架构本节整理一下Redis的哨兵高可用相关内容在主从架构中,当master节点挂掉之后,需要通过手动的方式将其中的一个从节点配置为master并修改一些相关配置,而哨兵架构可实现自动切换。1、sentinel哨兵主要职责用来监控redis实例节点,是特殊的redis服务,不提供读写服务。2、在哨兵架构下,redis客户端直接连接哨兵,而不

2022-06-20 10:20:39 573

原创 Redis主从架构

第一节 Redis的安装第二节 Redis的五种数据结构(String、Hash、List、Set、ZSet)第三节 Redis的持久化方式本节整理一下Redis的主从架构相关内容可用来做主从复制,slave节点从master节点同步数据;也可用来做读写分离,master节点处理写,slave节点处理读master节点安装可参考第一节 Redis安装的内容这里主要介绍slave节点的配置方法6379写数据6380读数据三、主从工作原理数据全量复制1、为master配置了一个sl

2022-06-11 20:14:59 419

原创 Redis的持久化方式

第一节 Redis的安装第二节 Redis的五种数据结构(String、Hash、List、Set、ZSet)本节整理一下Redis的几种持久化方式如果使用rdb快照方式,在默认情况下,redis会把内存数据保存在名字为dump.rdb的二进制文件中。关于此种方式,可在redis.conf文件中进行设置,例如以下的配置项:上面的配置项含义为:让redis在N秒内数据集至少有M个改动,例如save 60 1000,也就是说当在60秒内至少有1000个键被改动除了配置save保存策略外,还可以手动执行s

2022-06-11 15:21:04 215

原创 Redis的五种数据结构(String、Hash、List、Set、ZSet)

第一节 Redis的安装在这一小节中,小编整理的是redis的五种数据结构,包含String、Hash、List、Set、ZSet,分别记录他们的一些常见命令和用法。首先redis不是严格意义上的单线程,它的单线程主要指的是redis的网络IO和键值对读写是由一个线程来完成的,也就是通俗来讲指的是执行客户端命令的那部分是由单线程来操作的,例如持久化操作(bgsave),集群数据同步等操作是由其它线程进行执行。主要是由于它所有的数据都是在内存中,所有的运算也就是在内存中进行运算,并且单线程的操作避免了多线程的

2022-06-05 19:45:13 281

原创 redis-5.0.4单机安装

小编最近在整理redis的一些知识,首先记录一下redis单机的安装步骤下面展示5.0.4版本的下载方法,也可以根据自己的需要进行下载相应的版本下载地址:http://redis.io/download下载列表:https://download.redis.io/releases/解压与编译修改配置文件目录结果如下,修改redis.conf配置1、daemonize yes #后台启动2、protected-mode no #关闭保护模式,开启的话,只有本机才可以访问redis

2022-06-04 20:17:25 670

原创 k8s(Kubernetes)集群搭建

K8S集群搭建操作步骤部署节点修改hostname新建yum源基础设置设置hosts主机配置初识化Master节点启动服务配置环境变量安装集群网络安装node节点安装中遇到的问题问题1:The connection to the server localhost:8080 was refused - did you specify the right host or port?问题2:kubeadm join 超时报错 error execution phase kubelet-start: error u

2021-12-08 13:29:16 718

原创 使用yum命令提示“except KeyboardInterrupt, e: SyntaxError: invalid syntax“

使用yum命令提示"except KeyboardInterrupt, e: SyntaxError: invalid syntax"使用yum命令报错解决办法使用yum命令报错File "/usr/bin/yum", line 30except KeyboardInterrupt, e:^SyntaxError: invalid syntax问题出现原因:yum包管理是使用python2.x写的,将python2.x升级到python3.x以后,由于python版本语法兼容性导致问题出现

2021-12-07 09:55:05 1618

原创 Netty之获取FullHttpRequest中的请求参数信息(x-www-form-urlencoded协议)

获取FullHttpRequest中的请求参数信息FullHttpRequestHTTP请求行HTTP请求头HTTP请求参数FullHttpRequest使用Netty开发一个HTTP服务器,Content-Type为 x-www-form-urlencoded的类型,需要从中获取请求参数信息HTTP请求行fullRequest.getMethod().name(); //获取请求方法fullRequest.getMethod().getUri(); //获取请求URIfullRequest.g

2021-12-01 14:20:56 8313

原创 Maven SCM Release版本控制与发布

Release版本控制与发布前言POM中SCM配置POM中build配置POM中distributionManagement配置mvn deploymvn release:preparemvn release:perform前言Maven代码版本控制与发布提示:以下是本篇文章正文内容,下面案例可供参考POM中SCM配置代码工程中添加SCM配置 <scm> <!--git仓库地址--> <connection>scm:git:http://具体ip地址

2021-10-20 17:13:42 1190

原创 GitLab14.0.5安装教程

GitLab14.0.5安装教程我的安装教程rpm安装包安装修改gitlab.rb配置重载配置文件常用命令管理员账号初始化切换语言环境参考地址我的安装教程下载rpm包进行安装rpm安装包安装yum install -y gitlab-ce-14.0.5-ce.0.el7.x86_64.rpm修改gitlab.rb配置vim /etc/gitlab/gitlab.rbexternal_url 'http://10.0.0.51' # 这里一定要加上http://并填写具体的服务器IP#

2021-10-20 16:28:12 526

原创 Skywalking8.7+log4j日志上报功能对接,8.4有漏洞

Skywalking日志上报日志上报选择Skywalking版本添加Maven依赖客户端log4j.properties修改代理插件agent.config配置添加参考文档地址日志上报使用skywalking的日志收集功能,打通链路追踪和日志收集,实现链路问题的快速跟踪选择Skywalking版本skywalking选择8.4以上版本(8.4存在漏洞,已踩过坑),小编使用的是8.7版本添加Maven依赖 <dependency> <groupId>org

2021-10-19 13:29:43 2345 2

原创 TypeError: this.engines is not iterable

错误信息:解决方案:禁用此功能,则可以解决改问题

2021-07-14 14:50:12 734

原创 Message: ‘chromedriver‘ executable needs to be in PATH.

selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. 下载ChromeDriver解压至Python安装目录测试下载ChromeDriverhttp://chromedriver.storage.googleapis.com/index.html要和机器安装的谷歌浏览器版本一致解压至Python安装目录测试...

2020-11-22 17:20:55 267

原创 Linux之修改主机名总结

Linux修改主机名centos6临时修改永久修改(需重启)既临时又永久修改centos7临时修改永久修改centos6临时修改hostname node1永久修改(需重启)vi /etc/hostname既临时又永久修改hostnamectl set-hostname node1centos7临时修改hostname node1永久修改vi /etc/sysconfig/network...

2020-11-21 18:48:51 106

原创 工作问题8:No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory)

添加log4j.propertieslog4j.rootLogger=INFO,stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n可查看日志

2020-11-19 22:01:29 185

原创 Jdbc连接Phoenix+Kerbores总结之PQS Thin Client方式(此篇亲测有效)

Jdbc连接Phoenix+Kerbores总结之Thin Client方式pom依赖JDBC连接代码问题总结pom依赖 <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-queryserver</artifactId> <version>5.0.0-HBase-2.0</version>

2020-11-19 21:51:50 554

原创 工作问题7:Phoenix Ticket Client方式使用UDF函数出现的问题

Phoenix Ticket Client方式使用UDF函数出现的问题问题描述解决方案问题描述java.sql.SQLException: java.lang.reflect.InvocationTargetException at org.apache.phoenix.parse.FunctionParseNode.create(FunctionParseNode.java:280) at org.apache.phoenix.compile.ExpressionCom

2020-11-19 21:21:55 199

原创 工作问题6:Hbase宕机后Phoenix连接不上

Phoenix连接失败,问题描述解决方案问题描述hbase宕机之后的错误信息11-15 14:41:21 INFO <init>(org.apache.zookeeper.ZooKeeper:438) - Initiating client connection, connectString=node1:2181,node2:2181,node3:2181 sessionTimeout=90000 watcher=org.apache.hadoop.hbase.zookeeper.Rea

2020-11-15 14:48:53 841 1

原创 工作问题5:Phoenix创建索引失败:Mutable secondary indexes must have the hbase.regionserver.wal.codec property

Phoenix创建索引失败问题描述解决方案问题描述Phoenix创建索引失败:java.sql.SQLException: ERROR 1029 (42Y88): Mutable secondary indexes must have the hbase.regionserver.wal.codec property set to org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec in the hbase-sites.xml of

2020-11-15 11:59:11 285

原创 工作问题4:[Cloudera][ImpalaJDBCDriver](500164)Error initialized or created transport for authentication

Impala连接出现异常问题描述解决方案问题描述impala获取连接异常:[Cloudera]ImpalaJDBCDriverError initialized or created transport for authentication解决方案检查连接字符串是否有错误

2020-11-14 14:29:21 6705 1

原创 工作问题3:org.apache.hadoop.hbase.ipc.FailedServerException:This server is in the failed list:xxx.xxx

Hbase连接异常问题描述解决方案问题描述平台中hbase连接在使用一段时间后,出现了异常:Could not setup connection for xxx@xxx to xxxorg.apache.hadoop.hbase.ipc.FailedServerException:This server is in the failed list:xxx.xxx解决方案检查发现,该机器的时钟同步出现异常,与KDC主机时钟不同步,超过了5分钟...

2020-11-14 14:23:51 2858

原创 工作问题2:NoSuchMethodError:org.apache.hadoop.security.authentication.util.KerboresUtil.hasKerboresKeyTa

Phoenix-5.0.0-HBase-2.0依赖存在问题问题描述解决方案问题描述平台需要对接Phoenix,所以引入了依赖,启动后就报错了NoSuchMethodError:org.apache.hadoop.security.authentication.util.KerboresUtil.hasKerboresKeyTab(L javax/security/auth/Subject) <dependency> <groupId>org.apache.phoen

2020-11-14 14:18:14 298

原创 工作问题1:jedis.exceptions.JedisConnectionException:Could not get a resource from the pool

jedis操作redis出现错误问题描述解决方案问题描述对平台进行压测的时候,提示了这个错误,平台有使用redis连接池解决方案调大redis连接数可参考此贴:https://www.cnblogs.com/lin557/p/11545636.html

2020-11-14 14:10:27 133

phoenix-udf自定义函数测试jar包

phoenix-udf自定义函数,上传到hdfs的lib目录,测试udf自定义函数功能,有需要可以下载;select QUARTER(birth) from person

2020-11-19

JavaScript语言中文参考手册.chm

2017-02-12

空空如也

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

TA关注的人

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