自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(666)
  • 资源 (4)
  • 收藏
  • 关注

原创 Deepin启动错误emergency mode解决

在使用Deepin系统的过程中由于个人误操作,导致系统启动之后就进入了emergency mode 启动节目,无法进入图形界面,试了很多种方法,最终用下面的方法得到解决,系统恢复正常启动。网上查了下这个问题,很有可能是强制重启导致的磁盘损坏(具体是怎么损坏了也不是很清楚),所以解决的办法就是修复磁盘。通过Deepin安装优盘,电脑重启之后选中从优盘启动,进入安装deepin系统界面,当出现选中安装系统语言的时候,按ctrl+alt+f1(或者f2),进入终端,然后执行如下命令:lsblk 查看自己系

2020-09-12 11:38:39 1947

转载 RESTful API 设计最佳实践

项目资源的URL应该如何设计?用名词复数还是用名词单数?一个资源需要多少个URL?用哪种HTTP方法来创建一个新的资源?可选参数应该放在哪里?那些不涉及资源操作的URL呢?实现分页和版本控制的最好方法是什么?因为有太多的疑问,设计RESTful API变得很棘手。在这篇文章中,我们来看一下RESTful API设计,并给出一个最佳实践方案。每个资源使用两个URL资源集合用一个URL,具体某个资源用一个URL:/employees #资源集合的URL/employees/56

2020-09-06 13:18:14 257

转载 sendredirect()和forward()方法的区别

页面之间的跳转可以通过两种方式实现:forward和sendRedirect。服务器端的重定向可以有两种方式,一是使用HttpServletResponse的sendRedirect()方法,一是使用RequestDispatcher的forward()方法.HttpServletResponse.sendRedirect()方法将响应定向到参数location指定的、新的URL。location可以是一个绝对的URL,如 response.sendRedirect(“http://java.sun.c

2020-09-05 18:29:14 725

转载 springboot+mock+junit5搭建测试环境

https://www.cnblogs.com/modestlin/p/12458525.html一、springboot 2.1.6 + junit5.6.0,mock 是 springboot自带二、pom.xml<properties> <junit.jupiter.version>5.6.0</junit.jupiter.version> </properties> <dependency

2020-09-03 11:35:22 1131

转载 Maven3种打包方式之一maven-assembly-plugin的使用

在Maven中,主要有3个插件可以用来打包:maven-jar-plugin,默认的打包插件,用来打普通的project JAR包;maven-shade-plugin,用来打可执行JAR包,也就是所谓的fat JAR包;maven-assembly-plugin,支持自定义的打包结构,也可以定制依赖项等。我们日常使用的以maven-assembly-plugin为最多,因为大数据项目中往往有很多shell脚本、SQL脚本、.properties及.xml配置项等,采用assembly插件可以让

2020-08-27 11:31:10 3429

转载 Elasticsearch 常见的 8 种错误及最佳实践

题记Elasticsearch 社区有大量关于 Elasticsearch 错误和异常的问题。深挖这些错误背后的原因,把常见的错误积累为自己的实战经验甚至是工具,不仅可以节省我们的开发和运维时间,而且可以帮助确保 Elasticsearch 集群的长期健康运行。常见的异常、原因和常规最佳实践拆解如下,这些最佳实践可以帮助我们更有效地识别、最小化定位和处理异常问题。1、 Mapper_parsing_exceptionElasticsearch 依靠映射(Mapping)定义的数据类型处理数据。映

2020-08-20 23:11:36 3571

转载 MongoDB、Redis、elasticSearch、hbase的对比

MongoDB优点:(1) 最大的特点是表结构灵活可变,字段类型可以随时修改。(2) 插入数据时,不必考虑表结构的限制。(3) 不需要定义表结构这个特点给表结构的修改带来了极大的方便。缺点  给多表查询、复杂事务等高级操作带来了阻碍适用场景  (1) MongoDB很适合那些表结构经常改变,数据的逻辑结构没又没那么复杂不需要多表查询操作,数据量又比较大的应用场景。(2) 例如,有一个游戏应用,需要存储每个用户的信息,用户分为法师、战士等具有不同属性的角色,技能装备,MongoDB只需要一张

2020-08-09 18:34:18 388

转载 Flink 如何管理 Kafka 消费位点

原文:https://data-artisans.com/blog/how-apache-flink-manages-kafka-consumer-offsets作者:Fabian Hueske, Markos Sfikas译者:云邪(Jark)在本周的《Flink Friday Tip》中,我们将结合例子逐步讲解 Apache Flink 是如何与 Apache Kafka 协同工作并确保来自 Kafka topic 的消息以 exactly-once 的语义被处理。检查点(Checkpoint

2020-08-06 16:58:28 595

转载 Maven插件之versions-maven-plugin

versions-maven-pluginhttp://mojo.codehaus.org/versions-maven-plugin/很多 Maven 用户遇到过这样一个问题,当项目包含大量模块的时候,为他们集体更新版本就变成一件烦人的事情,到底有没有自动化工具能帮助完成这件事情呢?(当然你可以使用 sed 之类的文本操作工具,不过不在本文讨论范围)答案是肯定的,versions-maven- plugin 提供了很多目标帮助你管理 Maven 项目的各种版本信息。例如最常用的,命令 mvn vers

2020-08-06 15:37:54 12274

转载 Flink开发中遇到的问题及解法

当Source是Kafka的时候,如何设置Source Operator的并发度?如果没有指定,Source Operator的个数与集群中的TaskManager的个数相等。如果手动设置,建议使用的slot个数=Kafka Partition的个数/TaskManager的个数。此时,Slot的个数需大于等于2.因为其中有一个Source Operator。也不建议在一个Slot中启用多线程。Barrier如果丢失了怎么办?因为Barrier是从Source开始周期性的发送的,所以过一段时间.

2020-08-05 09:21:08 655

转载 flink任务性能优化

如何提高 Flink 任务性能一、Operator Chain为了更高效地分布式执行,Flink 会尽可能地将 operator 的 subtask 链接(chain)在一起形成 task,每个 task 在一个线程中执行。将 operators 链接成 task 是非常有效的优化:它能减少线程之间的切换,减少消息的序列化/反序列化,减少数据在缓冲区的交换,减少了延迟的同时提高整体的吞吐量。Flink 会在生成 JobGraph 阶段,将代码中可以优化的算子优化成一个算子链(Operator Chai

2020-08-04 20:09:57 1289 1

转载 系统吞吐量(TPS)、用户并发量、性能测试概念和公式

PS:下面是性能测试的主要概念和计算公式,记录下:一.系统吞度量要素:

2020-07-30 17:04:53 404

转载 Java中解析日志

Java中解析日志常用的是Grok,Grok是一个用于解析logs和其它文件的简单易用的API,并且它可以将这些无结构的logs转换成结构化的数据(JSON),使用正则表达式对logs进行解析,常用的是grok和java-grok,下面来具体说说各自的使用grokgrok是io.thekraken组织提供的实现,在mven仓库中输入io.thekraken就可以找到对应的jar包简单Java项目如果是简单Java项目,直接引入依赖的jar包即可,对于0.1.5的版本,必须引入5个jar包:comm

2020-07-22 10:09:27 2791

转载 linux下如何查看cpu信息

linux的cpu信息可以从文件中cpuinfo读取。执行命令:# cat /proc/cpuinfo我们一般看到的processor是逻辑核。它的计数是从0开始的,例如这里看到的是31那我们一般就说这个机器是32核的,说的实际是逻辑核。实际上对于cpu的描述应该更详细一些。这个机器是虚拟机,我们看一下物理机的更详细的信息。其中model name就是cpu的名称,型号,主频cpu Mhz 是实际主频physical id 单个cpu的标号。cpu cores

2020-07-22 09:59:09 4770

转载 JUnit 5预期异常

在JUnit 5中,我们可以使用assertThrows声明抛出了异常。PS已通过JUnit 5.5.2测试1.未检查的异常1.1捕获运行时异常的JUnit示例。ExceptionExample1.javapackage com.mkyong.assertions; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; public class ExceptionExam

2020-07-21 15:17:42 2431

转载 springboot事件监听的4种方式

第1种:1.自定义事件MyApplicationEvent继承ApplicationEventimport org.springframework.context.ApplicationEvent;/** * Created by Administrator on 2018\11\13 0013. * 自定义事件继承ApplicationEvent */public class MyApplicationEvent extends ApplicationEvent { public

2020-07-18 20:22:00 1377

转载 java项目中的classpath到底是什么

java项目中的classpath到底是什么在java项目中,你一定碰到过classpath,通常情况下,我们是用它来指定配置/资源文件的路径。在刚开始学习的时候,自己也糊里糊涂,但是现在,是时候弄清楚它到底是指什么了。顾名思义,classpath就是class的path,也就是类文件(*.class的路径)。一谈到文件的路径,我们就很有必要了解一个java项目(通常也是web项目)它在真正运行时候,这个项目内部的目录、文件的结构;这样,我们才好分析、理解classpath。开发时期的web项目结构

2020-07-16 19:47:36 488

转载 全文搜索引擎 Elasticsearch 入门教程

全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。本文从零开始,讲解如何使用 Elastic 搭建自己的全文搜索引擎。每一步都有详细的说明

2020-07-16 11:11:24 149

转载 java读取jar包中的文件

java读取jar包中的文件随手写了一个java小工具,maven打包成功后,发现工具总是读不到打在jar包中的文件信息,要读取的文件位于 /src/main/resources 目录下,打包成功后,文件就在jar包中根目录下,一直以为是路径错误,之后用this.getClass().getClassLoader().getResource("").getPath();发现路径是xxx.jar!/com/demo/…形式,路径总是获取不对。之后试了一下BufferedReader in = new Bu

2020-07-15 19:11:58 537

转载 curl设置http头Authentication实现http基本认证

curl --user name:password http://www.example.com或者curl -u name:password http://www.example.com例:curl --user admin:111111 “http://192.168.1.254/cgi-bin/index.cgi?mod=sys_shutdown&act=reboot”抓包,wireshark显示如下:参考文章:http://curl.haxx.se/docs/httpscri

2020-07-15 16:41:32 1523

转载 Java8获取当前时间、新的时间日期时区类使用

这里写自定义目录标题主要内容包括一 、先主要是Java8中LocalDate日期的操作1. Date转LocalDate、LocalDateTime2. 13位long类型转LocalDate3. 获取现在的日期4. 获取年月日5. 判断两个日期之间相差多少天6. 获得某个日期所在月的第一天、最后一天7. 某个月有多少天8. 比较两个LocalDate的大小9. 获取下一周的该星期、下个月的这天、下个月的1号10. 比较两个LocalDate相差多少年、月、天11. 通过10位或13位时间戳构建Instan

2020-07-09 17:00:51 3663

转载 nginx中,$request_uri和$uri的区别

$request_uriThis variable is equal to the original request URI as received from the client including the args. It cannot be modified. Look at uriforthepost−rewrite/alteredURI.Doesnotincludehostname.Example:"/foo/bar.php?arg=baz"这个变量等于从客户端发送来的原生请求URI,包括参..

2020-07-09 08:46:25 2224

转载 Jave中使用ZoneDateTime转换时间

最近写代码时遇到需要转换将一个时间进行时区转换的问题,记录一下。问题:由于使用的account不同,从facebook取到的时间是诸如这样的形式"2019-05-05T22:48:52+0800"、“2019-05-05T22:48:52+0700”,但是由于业务需要,时间需要统一使用洛杉矶时区:ZoneId.of(“Asia/Shanghai”)。解决:首先使用ZonedDateTime+DateTimeFormatter将获取到的时间转换为带时区的时间对象;需要注意的是字符T属于时间格式化中的

2020-07-08 15:50:48 1225

转载 nginx日志request_time 和upstream_response_time区别

在根据nginx的accesslog中requesttime进行程序优化时,发现有个接口,直接返回数据,平均的request_time进行程序优化时,发现有个接口,直接返回数据,平均的requestt​ime进行程序优化时,发现有个接口,直接返回数据,平均的request_time也比较大。原来requesttime包含了用户数据接收时间,而真正程序的响应时间应该用request_time包含了用户数据接收时间,而真正程序的响应时间应该用requestt​ime包含了用户数据接收时间,而真正程序的响应时间应

2020-07-03 11:08:11 967

转载 Java hashCode() 和 equals()的若干问题解答

本章的内容主要解决下面几个问题:1 equals() 的作用是什么?2 equals() 与 == 的区别是什么?3 hashCode() 的作用是什么?4 hashCode() 和 equals() 之间有什么联系?第1部分 equals() 的作用equals() 的作用是 用来判断两个对象是否相等。equals() 定义在JDK的Object.java中。通过判断两个对象的地址是否相等(即,是否是同一个对象)来区分它们是否相等。源码如下:public boolean equals(Ob

2020-06-13 21:10:54 610

原创 ThredPoolTaskExcutor的处理流程

ThredPoolTaskExcutor的处理流程:当池子大小小于corePoolSize,就新建线程,并处理请求当池子大小等于corePoolSize,把请求放入workQueue中,池子里的空闲线程就去workQueue中取任务并处理当workQueue放不下任务时,就新建线程入池,并处理请求,如果池子大小撑到了maximumPoolSize,就用RejectedExecutionHandler来做拒绝处理当池子的线程数大于corePoolSize时,多余的线程会等待keepAliveTime

2020-06-12 15:57:38 152

转载 一条SQL语句在MySQL中如何执行的

本篇文章会分析一个 sql 语句在 MySQL 中的执行流程,包括 sql 的查询在 MySQL 内部会怎么流转,sql 语句的更新是怎么完成的。在分析之前我会先带着你看看 MySQL 的基础架构,知道了 MySQL 由那些组件组成以及这些组件的作用是什么,可以帮助我们理解和解决这些问题。一 MySQL 基础架构分析1.1 MySQL 基本架构概览下图是 MySQL 的一个简要架构图,从下图你可以很清晰的看到用户的 SQL 语句在 MySQL 内部是如何执行的。先简单介绍一下下图涉及的一些组件的基

2020-05-31 22:40:40 192

转载 Java:CAS(乐观锁)

什么是悲观锁、乐观锁?在java语言里,总有一些名词看语义跟本不明白是啥玩意儿,也就总有部分面试官拿着这样的词来忽悠面试者,以此来找优越感,其实理解清楚了,这些词也就唬不住人了。synchronized是悲观锁,这种线程一旦得到锁,其他需要锁的线程就挂起的情况就是悲观锁CAS操作的就是乐观锁,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,知道成功为止。保证原子操作任何技术的出现都是为了解决某些特定的问题, CAS 要解决的问题就是保证原子操作。原子操作是什么,原子就是最小不

2020-05-30 09:47:16 231

原创 索引,主键,唯一索引,联合索引 的区别

简单描述MySQL中,索引,主键,唯一索引,联合索引 的区别,对数据库的性能有什么影响索引是一种特殊的文件(InnoDB 数据表上的索引是表空间的一个组成部分),它们 包含着对数据表里所有记录的引用指针。普通索引(由关键字 KEY 或 INDEX 定义的索引)的唯一任务是加快对数据的访问速度。普通索引允许被索引的数据列包含重复的值。如果能确定某个数据列将只包含彼 此各不相同的值,在为这个数据列创建索引的时候就应该用关键字 UNIQUE 把它 定义为一个唯一索引。也就是说,唯一索引可以保证数据记录的唯

2020-05-25 10:35:40 3365

转载 HTTP 协议入门

HTTP 协议是互联网的基础协议,也是网页开发的必备知识,最新版本 HTTP/2 更是让它成为技术热点。本文介绍 HTTP 协议的历史演变和设计思路。一、HTTP/0.9HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。最早版本是1991年发布的0.9版。该版本极其简单,只有一个命令GET。GET /index.html上面命令表示,TCP 连接(connection)建立后,客户端向服务器请求(r

2020-05-24 23:37:09 164

转载 timestamp的两个属性:CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP

timestamp有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下:CURRENT_TIMESTAMP当要向数据库执行insert操作时,如果有个timestamp字段属性设为CURRENT_TIMESTAMP,则无论这个字段有木有set值都插入当前系统时间ON UPDATE CURRENT_TIMESTAMP当执行update操作是,并且字段有ON UPDATE CURRENT_TIMESTAMP属性。则

2020-05-22 20:52:29 700

转载 ReentrantLock 实现原理

之前对于重入锁ReentrantLock有一定的了解,但对于其底层的原理确是一知半解,这里把ReentrantLock底层实现原理整理了一下。使用synchronized来做同步处理,锁的获取和释放都是隐式的,实现的原理是通过编译后加上不同的机器指令来实现。而ReentrantLock就是一个普通的类,它是基于AQS(AbstractQueuedSynchronizer)来实现的。是一个重入锁:一个线程获得了锁之后仍然可以反复的加锁,不会出现自己组死啊自己的情况。AQS是Java并发包里实现锁.

2020-05-21 23:41:44 359

转载 Java锁的一些认知

同一个进程重入锁(ReentrantLock)使用ReentrantLock获取锁的时候会判断当前线程是否为获取锁的线程,如果是则将同步的状态+1,释放锁的时候将同步的状态-1,只有将同步状态的次数为0时才会最终释放锁。...

2020-05-21 21:37:01 123

转载 Java中Lock,tryLock,lockInterruptibly有什么区别?

lockpublic void lock()获取锁。如果该锁没有被另一个线程保持,则获取该锁并立即返回,将锁的保持计数设置为 1。如果当前线程已经保持该锁,则将保持计数加 1,并且该方法立即返回。如果该锁被另一个线程保持,则出于线程调度的目的,禁用当前线程,并且在获得锁之前,该线程将一直处于休眠状态,此时锁保持计数被设置为 1。指定者:接口 Lock 中的 lock作者:wuxinliulei链接:https://www.zhihu.com/question/36771163/ans

2020-05-18 19:09:26 504

转载 lock()与lockInterruptibly()的区别

lock 与 lockInterruptibly比较区别在于:lock 优先考虑获取锁,待获取锁成功后,才响应中断。lockInterruptibly 优先考虑响应中断,而不是响应锁的普通获取或重入获取。详细区别:ReentrantLock.lockInterruptibly允许在等待时由其它线程调用等待线程的Thread.interrupt方法来中断等待线程的等待而直接返回,这时不用获取锁,而会抛出一个InterruptedException。 ReentrantLock.lock方法不允许Thr

2020-05-15 15:50:07 344

转载 LinkedBlockingQueue和ArrayBlockingQueue 对比

相同:1、LinkedBlockingQueue和ArrayBlockingQueue都实现了BlockingQueue接口;2、LinkedBlockingQueue和ArrayBlockingQueue都是可阻塞的队列(内部都是使用ReentrantLock和Condition来保证生产和消费的同步;当队列为空,消费者线程被阻塞;当队列装满,生产者线程被阻塞.)不同:1、队列中的同步锁机制不同ArrayBlockingQueue中的锁是没有分离的,即生产和消费用的是同一个锁; 使用一个Reen

2020-05-15 14:26:28 699

转载 数据库高并发解决方法总结

前言一个项目刚开始的时候是为了实现基本功能,随着版本和功能的迭代,大数据和高并发成了软件设计必须考虑的问题!本质很简单,一个是慢,一个是等。两者是相互关联的,因为慢,所以要等,因为等,所以慢,解决了慢,也就解决了等,解决了等,也就解决了慢。关键是如何解决慢和等,核心 一个是短,一个是少,一个是分流,最后一个是集群/横向扩张/读写分离/建立主从短是指路径要短页面静态化- 用户可以直接获取页面,不用走那么多流程,比较适用于页面不频繁更新。使用缓存- 第一次获取数据从数据库准提取,然后保存在缓

2020-05-14 22:55:59 1304

转载 JVM性能调优详解

性能调优性能调优包含多个层次,比如:架构调优、代码调优、JVM调优、数据库调优、操作系统调优等。架构调优和代码调优是JVM调优的基础,其中架构调优是对系统影响最大的。性能调优基本上按照以下步骤进行:明确优化目标、发现性能瓶颈、性能调优、通过监控及数据统计工具获得数据、确认是否达到目标。何时进行JVM调优遇到以下情况,就需要考虑进行JVM调优了:Heap内存(老年代)持续上涨达到设置的最大内存值;Full GC 次数频繁;GC 停顿时间过长(超过1秒);应用出现OutOfMemory 等内

2020-05-14 15:11:39 173

原创 final,static,this,super 关键字总结

final,static,this,super 关键字总结final 关键字static 关键字this 关键字super 关键字参考static 关键字详解static 关键字主要有以下四种使用场景修饰成员变量和成员方法(常用)静态代码块静态内部类静态导包补充内容静态方法与非静态方法static{}静态代码块与{}非静态代码块(构造代码块)参考...

2020-05-08 22:55:23 254

转载 Elasticsearch 和 MySQL 对比简要分析

Elasticsearch 和 MySQL 对比简要分析。背景我们开发一般的企业级Web应用,其实从本质上来说,都是对数据的增删查改进行各个维度的包装。所以说,不管你的程序如何开发,基本上,都离不开数据本身。那么,在开发企业级应用的过程中,很多同学一定遇到过这样的困惑,当完成了应用程序的基本增删查改功能之后,用户会经常吐槽当下的查询功能并不能满足自己的查询需求。这是因为,通常情况下,我们基于传...

2020-05-07 21:42:16 4864

数学之美(第一版)

《数学之美》是一本非常值得读的书。这本书展现了吴军博士咋他度年的科研经历中对科学问题的深入思考

2015-12-06

程序员健康指南

本书是为程序员量身制作的健康指南,针对头痛、眼部疲劳、背部疼痛和手腕疼痛等常见的问题,简要介绍了其成因、测试方法,并列出了每天的行动计划,从运动、饮食等方面给出详细指导,帮助程序员在不改变工作方式的情况下轻松拥有健康。 本书适合程序员、长期伏案工作的其他人群以及所有关心健康的人士阅读。

2015-12-06

clock()函数的使用

通过clock来计算程序运行时间的方法,计算自己所写的程序的执行时间

2014-07-18

空空如也

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

TA关注的人

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