- 博客(124)
- 资源 (17)
- 收藏
- 关注
原创 IDEA Downloads Sources java.lang.RuntimeException: Cannot reconnect.
问题:IDEADownloads Sourcesjava.lang.RuntimeException: Cannot reconnect.解决方案:Build Tools --> Maven --> Local repository勾选Override即可
2021-05-18 16:01:57 1997 2
原创 Git log 中发现 “xxx@xxx.com“ 邮箱不符合要求,请务必使用公司邮箱。解决方案
配置了新的mac笔记本。完成了一系列开发环境配置,安装了git,IDE,配置了git ssh秘钥,clone下项目代码,顺利看到了所负责项目的代码。并且完成新的branch的创建和分支提交到远程仓库,和几次代码的commit到本地仓库等工作,一切很顺利。问题描述:当开发完成一个小的模块,进行了codeReview之后,准备将代码push到远程仓库。使用IDE中Git Repository Push进行代码push,IDE报错:Push rejected(如下图):因为没有具体rejec.
2021-03-30 10:58:41 6982 1
原创 生产机器CPU100%报警排查
背景生产机器有完备的监控报警系统,例如我们公司的报警系统,可以配置多维度的报警指标:收集线上服务机器的实时数据,一旦超过指标阈值即会出发报警。每个集团都有类似其他的运维报警平台,机制大同小异。可配置的指标有cpu,内存,磁盘,oom,coredump等等。问题接到监控中台高频次的cpu-alarm报警通知,且线上多台机器连续报警。线上服务出现问题,登陆线上机器进行排查。排查方案排查方案大体有以下几个步骤:1、执行top命令登陆发生cpu报警的机器,..
2020-12-09 12:05:25 1568
原创 零拷贝技术原理详解
首先声明一个概念,通常说的零拷贝技术准确来说应该表达为:用户态零拷贝技术。一、什么是零拷贝技术?1.首先明确计算机数据传输过程写一个小程序,完成一个从文件中读取数据,并传输到网络上的操作。首先我们在操作系统中找到这个文件,然后把数据先读到缓冲区,最后把缓冲区的数据发送到网络上。现在我们考虑一下,这个数据从电脑到网络整个传输的过程,如下图描述:DMA copy:DMA D...
2020-04-23 19:20:50 1707
原创 JVM类加载机制与双亲委派模型及其破坏的问题
1、JVM类加载机制2、双亲委派模型3、双亲委派模型破坏,JDBC,Tomcat,原因解释。以下是整理的笔记。(请略过64,65)
2020-03-26 11:37:13 360
原创 JVM虚拟机内存模型与垃圾回收与JVM调优实践
花了几天的时间整理学习的笔记,分享给大家。HotSpot 虚拟机内存模型10种垃圾回收算法的讲解JVM调优实践
2020-03-26 10:38:39 155
原创 Feign发送get请求使用对象传参问题,@SpringQueryMap解析传参对象父类属性解决方案
使用Feign来调用Get请求时,如果方法的参数是一个对象,则会被强行转变成Post请求,然后抛出服务被拒绝的错误。具体原因就不说了,其他博客解释的很清楚。也给出方案,使用apache httpclient替换jdk UrlConnection的解决方案尝试过后并没有成功。随后就发现了这个注解@SpringQueryMap这是spring cloud新增的一个注解, @Sprin...
2019-12-19 16:50:27 10277 5
原创 错误: 程序包xx不存在 解决多个module依赖,gradle build失败问题
SpringBoot项目,同一个project下有多个moudle,module之间有依赖关系,build时报错:错误: 程序包xx不存在项目结构project --common --apicommon和api在一个project下api项目依赖common项目。api项目中的bulid.gradle中添加依赖implementation pr...
2019-04-01 10:41:43 9039 2
原创 spring源码中的基本原理
spring源码中的基本原理其实就是通过反射解析类及其类的各种信息,包括构造器、方法及其参数,属性。然后将其封装成bean定义信息类、constructor信息类、method信息类、property信息类,最终放在一个map里,也就是所谓的container,池等等,其实就是个map。当你写好配置文件,启动项目后,框架会先按照你的配置文件找到那个要scan的包,然后解析包里面的所有类,找到所有含
2017-10-17 13:59:54 419
原创 git还原到之前版本
git还原到之前某个版本,本地和远程都还原命令行操作:第一步: git log 查看之前的commit的id,找到想要还原的版本第二步: git reset --hard 44bd896bb726be3d3815f1f25d738a9cd402a477 还原到之前的某个版本第三步: git push -f origin master 强制push到远程前两
2017-05-05 11:54:11 37580
原创 spring boot集成mongodb、solr、redis等数据源
最近项目使用到spring boot,需要集成mongodb、solr、redis等数据源,使用强大的spring data,还是很简单的,分享一下经验。spring boot推崇领配置,所以所有配置在application.properties中完成。mongodb、solr、redis等都是以集群的方式连接。application.properties中的配置信息#mong
2017-03-31 18:17:29 2652
转载 MongoDB数据库设计(三)
这篇文章是系列的最后一篇。在第一篇文章里,我介绍了三种针对“一对多 ”关系建模的基础方案。在第二篇文章中,我介绍了对基础方案的扩展:双向关联和反范式化。反范式可以让你避免一些应用层级别的join,但是这也会让更新变的更复杂,开销更大。不过冗余那些读取频率远远大于更新频率的字段还是值得的。如果你还没有读过前两篇文章,欢迎一览。让我们回顾下这些方案你可以采取内嵌,或者建立one端或者N
2017-02-28 11:32:43 683
转载 MongoDB数据库设计(二)
在上一篇文章中我介绍了三种基本的设计方案:内嵌,子引用,父引用,同时说明了在选择方案时需要考虑的两个关键因素。一对多中的多是否需要一个单独的实体。这个关系中集合的规模是一对很少,很多,还是非常多。在掌握了以上基础技术后,我将会介绍更为高级的主题:双向关联和反范式化。双向关联如果你想让你的设计更酷,你可以让引用的“one”端和“many”端同时保存对方的引用。以上一篇文章
2017-02-28 11:31:11 762
转载 MongoDB数据库设计(一)
“我有丰富的sql使用经验,但是我是个MongoDB的初学者。我应该如何在MongoDB中针对一对多关系进行建模?”这是我被问及最多的问题之一。我没法简单的给出答案,因为这有很多方案去实现。接下来我会教导你如何针对一对多进行建模。这个话题有很多内容需要讨论,我会用三个部分进行说明。在第一部分,我会讨论针对一对多关系建模的三种基础方案。在第二部分我将会覆盖更多高级内容,包括反范式化和双向引用
2017-02-28 11:26:59 4218
转载 UML中活动图和流程图的区别
活动图定义: 活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流。活动图在本质上是一种流程图。 它是UML中用于对系统动态活动建模的图形,反映系统中一个活动到另一个活动的流程,常常用于描述业务过程和并行处理过程。活动图中包括泳道、活动开始、活动结束、活动、对象、分支、消息等图形符号。 泳道将一个活动图中的活动
2017-02-23 11:22:24 22234 1
原创 solrCloud更新schema.xml不用重启加载
在对schema.xml进行修改后,要想使schema.xml生效,有2种方式: 1)重新启动SolrCould集群; 2)重新加载配置文件; 如果使用第1种方法,就会使整个集群处于一段时间内不可用;我比较建议使用第2种方法,下面介绍第2种方法的操作步骤。 重新加载配置文件: 1)更新集群的schema.xml文件
2017-02-22 13:38:51 3390
原创 mysql中exists和in的对比分析
exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当exists里的条件语句能够返回记录行时(无论记录行是的多少,只要能返回),条件就为真,返回当前loop到的这条记录,反之如果exists里的条件语句不能返回记录行,则当前loop到的这条记录被丢弃,exists的条件就像一个bool条件,当能返回结果集则为true,不能返回结果集则为false如下:selec
2016-10-09 13:14:57 452
原创 maven-war-plugin的乱码问题 (3 字节的 UTF-8 序列的字节 3 无效)报错
最近用到maven-war-plugin这个插件来进行打包,但是打完包启动tomcat会遇到这个报错:org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from file [D:\apache-tomcat-7.0.63_eclipse\webapps
2016-08-08 17:40:57 3279 3
转载 linux命令nohup详解
nohup进程后台执行用途:LINUX命令用法,不挂断地运行命令。 语法:nohup Command [ Arg ... ] [ & ] 描述:nohup 命令运行由Command 参数和任何相关的Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“a
2016-08-01 17:14:00 1328
原创 Cron 表达式详解
@Scheduled(cron = "* * * * * *") cron表达式详解1.cron表达式格式:{秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)}2.cron表达式各占位符解释:{秒数} ==> 允许值范围: 0~59 ,不允许为空值,若值不合法,调度器将抛出SchedulerException异常"*" 代表每隔1秒钟触
2016-07-29 15:48:55 45572 3
原创 Maven根据不同环境打包不同配置文件
开发项目时会遇到这个问题:开发环境,测试环境,生产环境的配置文件不同,打包时经常要手动更改配置文件,更改的少还可以接受,但是如果需要更多个配置文件,手动的方法就显得非常笨重了。 下面介绍一种方法,利用Maven插件来打包不同环境的配置文件。我们用到的是maven-war-plugin这个插件。 首先贴出整个pom文件:<project xmlns="...
2016-07-27 14:42:41 17923 7
转载 slf4j-api、slf4j-log4j12、log4j的关系
几乎在每个jar包里都可以看到log4j的身影,在多个子工程构成项目中,slf4j相关的冲突时不时就跳出来让你不爽,那么slf4j-api、slf4j-log4j12还有log4j他们是什么关系?我把自己了解的和大家简单分享一下: slf4j:Simple Logging Facade for Java,为java提供的简单日志Facade。Facade:门面,更底层一点说就是接口。他允
2016-07-19 18:10:01 1456
原创 mysql执行存储过程权限的问题
最近在做项目升级,之前所有项目链接数据库都是使用的root账户,为了安全考虑给项目单独开了个用户,添加了增删改查 以及execute权限,但是项目在调用存储过程是仍然报错,说没有权限,查询之后发现除了execute外,还需要得有mysql库上user表的权限另外 备注:【definer和invoker的解释】 创建存储过程的时候可以指定 S
2016-07-12 18:37:03 5026
原创 truncate与delete的区别
truncate table命令将快速删除数据表中的所有记录,但保留数据表结构。这种快速删除与delete from 数据表的删除全部数据表记录不一样,delete命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而truncate命令删除的数据是不可以恢复的可以做一个测试 建一个带有自增字段的表,加入100万数据 然后分别用TRUNCATE和DELETE删
2016-07-11 16:33:40 1138
转载 全栈工程师指南
Growth: 全栈增长工程师指南全栈工程师是未来技术的革新史软件开发的核心难题:沟通大公司的专家与小公司的全栈全栈工程师的未来:无栈基础知识篇工具只是辅助WebStorm 还是 Sublime?语言也是一种工具提高效率的工具快速启动软件IDEDEBUG 工具终端或命令提示符包管理环境搭建OS XWindowsGNU/Linux学
2016-05-23 18:30:02 16362 2
原创 Markdown语法规则
一、认识 MarkdownMarkdown 是一种用来写作的轻量级「标记语言」,它用简洁的语法代替排版,而不像一般我们用的字处理软件 Word 或 Pages 有大量的排版、字体设置。它使我们专心于码字,用「标记」语法,来代替常见的排版格式。例如此文从内容到格式,甚至插图,键盘就可以通通搞定了。目前来看,支持 Markdown 语法的编辑器有很多,包括很多网站(例如简书)也支持了 Mark
2016-05-13 16:35:22 1270
原创 Git常用命令
查看、添加、提交、删除、找回,重置修改文件git help # 显示command的helpgit show # 显示某次提交的内容 git show $idgit co -- # 抛弃工作区修改git co . # 抛弃工作区修改git add # 将工作文件修改提交到本地暂存区git add . # 将所有修改过的工作文件提交暂存区git rm # 从版本库
2016-05-13 16:25:01 1246
原创 mysql中tinyint(1)与tinyint(2)的区别
mysql中tinyint(1)与tinyint(2)的区别tinyint 型的字段如果设置为UNSIGNED类型,只能存储从0到255的整数,不能用来储存负数。tinyint 型的字段如果不设置UNSIGNED类型,存储-128到127的整数。 1个tinyint型数据只占用一个字节;一个INT型数据占用四个字节。这看起来似乎差别不大,但是在比较大的表中,字节数的增长是很
2016-05-05 13:08:27 43806
转载 Spring Boot入门教程
深入学习微框架:Spring BootSpring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。多年以来,Spr
2016-04-20 11:22:44 5822
原创 java7新特性监听文件夹改变
Java 7 uses the underlying file system functionalities to watch the file system for changes. Now, we can watch for events like creation, deletion, modification, and get involved with our own actions.
2016-02-29 17:02:58 1395
原创 Kafka教程之入门介绍
介绍Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。这个独特的设计是什么样的呢?首先让我们看几个基本的消息系统术语:Kafka将消息以topic为单位进行归纳。将向Kafka topic发布消息的程序成为producers.将预订topics并消费消息的程序成为consumer.Kafka以集群的方式运行,可以
2016-01-14 13:00:47 1363
原创 Flume入门教程
Flume简介Flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用。Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera。但随着 FLume 功能的扩展,Flume OG 代码工程臃肿、核心组件设计不合理、核心配置不标准等缺点暴露出来,尤其是在 Flume OG 的最后一个发行版本
2016-01-06 11:42:47 3501
原创 修改Spring默认的单例模式
背景在我们的项目中,通过Spring来管理业务逻辑Bean,但是Spring Bean的作用域默认是单例,而我们的业务逻辑Bean不是线程安全的,所以需要将Spring Bean改为多例模式。分析为单个Bean设置单例或者多例,可以通过设置singleton属性,见以下代码:bean id="page" class="com.daks.action.LoginAction" sin
2015-12-21 10:31:47 2500
原创 Spring整合ActiveMQ 实现消息服务
Spring整合JMS——基于ActiveMQ实现(一) 1.1 JMS简介 JMS的全称是Java Message Service,即Java消息服务。它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息。把它应用到实际的业务需求中的话我们可以在特定的时候利用生产者生成一消息,并进行发送,对应的消费者在接收到对应的消息后去完成对应的
2015-12-09 19:12:02 1639 2
原创 java.lang.OutOfMemoryError: PermGen space JVM内存参数配置
一、常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap的大小
2015-12-04 12:00:20 2409
原创 MQ入门简介
MQ简介:MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要
2015-12-02 14:52:52 1345
转载 ZooKeeper入门简介
ZooKeeper 是什么? ZooKeeper 顾名思义 动物园管理员,他是拿来管大象(Hadoop) 、 蜜蜂(Hive) 、 小猪(Pig) 的管理员, Apache Hbase和 Apache Solr 以及LinkedIn sensei 等项目中都采用到了 Zookeeper。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,ZooKee
2015-11-26 19:21:42 1076
原创 protocol buffers简介
protocol buffers1.protocol buffers是什么?Protocol buffers是一个灵活、高效、可以序列化结构数据的自动化机制,这一点和XML很像,但是Protocol buffers体积更小,速度更快、使用更简单。一旦定义了你想要的数据结构,你就可以从不同的数据流、使用不同的语言来生成源代码并且很可以很容易地写和读你所定义的结构化数据。你甚至可以在不
2015-11-03 18:18:41 1208
转载 虚拟IP原理
高可用性HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。HA系统是目前企业防止核心计算机系统因故障停机的最有效手段。实现HA的方式,一般采用两台机器同时完成一项功能,比如数据库服务器,平常只有一台机器对外提供服务,另一台机器作为热备,当这台机器出现故障时,自动动态切换到另一台热备的机器。
2015-11-03 10:38:27 1129
城市码表下载 中国二级城市码表下载
2019-12-19
redis desktop manager(redis桌面管理器)下载(0.8.3)
2016-01-11
实验6 容器
2013-12-17
java实验1 代码
2013-12-17
java画图板
2013-12-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人