- 博客(173)
- 资源 (6)
- 收藏
- 关注
原创 MYSQL事务隔离级别
本文会根据实际工作中碰到的例子,梳理清楚数据库事务的隔离级别。内容很简单,如果你能静下心来看完,一定会对你理解隔离级别有很大的帮助(本文基于mysql innodb存储引擎)。想象一个场景。抽奖,如果用户中奖了,一般有如下几个流程:扣减奖品数量;记录用户中奖信息;试想如果扣减奖品数量了,结果记录用户中奖数据的时候失败了,那么数据就会出现不一致的问题。这种场景,就可以使用事务。因为事...
2018-04-12 22:16:45 3486 1
原创 redis sentinel 2节点,停机自动切换
我们知道,redis sentinel可以自动切换master和slave。在实验的时候,只用了两个节点。模拟master机器down机。这样,只剩下了一个sentinel。 但我们知道,sentinel选择leader的时候,要大部分sentinel同意才认为他是leader。当前情形下,就要求2个节点都同意。但是,我们只剩下了一个sentinel,就永远不会选择出leader,也就无法进行fa
2015-12-13 15:57:51 5464 3
原创 redis-3.0.1 sentinel 主从高可用 详细配置
最近项目上线部署,要求redis作高可用,由于redis cluster还不是特别成熟,就选择了redis sentinel做高可用。生产环境中,一般要求有3个redis节点。但本文为了试验方便,只用了两个节点,一主一从。部署规划172.16.203.10 主节点 172.16.203.4 从节点 redis 3.0.1主节点red
2015-12-12 14:02:58 5089 1
原创 logstash结合rsyslog,收集系统日志
rsyslog是日志收集工具,现在很多Linux都自带rsyslog,用其替换掉syslog。如何安装rsyslog就不讲了,大概讲下原理,然后讲logstash的相关配置。rsyslog本身有一个配置文件 /etc/rsyslog.conf,里面定义了日志文件,以及相应保存的地址,以下述语句为例:local7.*
2014-11-06 09:54:41 19506 5
原创 错误: 找不到或无法加载主类 Main
在eclipse中导入一个Java工程,运行时报错:错误: 找不到或无法加载主类 Main!百思不得其解,网上很多解决办法,但都不对路,最后通过如下办法解决:打开debug configurations --> classpath选项选中user entries,点击add jars,把该项目的jar包引入进来,就OK了。如果上述办法解决了你的问题,不要谢我,叫我雷锋就行,哈哈哈!
2014-10-29 16:19:16 27832 2
原创 logstash+elasticsearch+redis+kibana3 日志收集系统搭建
一直拖拖拉拉,今晚终于把环境搭起来了,简单的说下原理、
2014-07-27 22:48:27 11682 1
原创 Centos6.3下Ganglia3.6.0安装配置
mkdir /var/lib/ganglia/rrds最近安装Ganglia,由于之前Linux基础基本为0,因此费了很大的周折。最后在失败了好多次之后终于看到了梦寐以求的web界面。下面总结下这几天来的工作。ganglia是一个监控软件,他包含三部分:Gmond,Gmetad和Gweb。在需要监控的主机上安装Gmond,他会采集当前主机上的一些信息;Gmetad部署在服务器端,它轮训
2014-05-22 11:03:50 3497 3
原创 64为win7不能运行debug的解决方法
话不多说,直接进入主题:首先下载DOSBox,官方网址:http://www.dosbox.com/download.php?main=1,选择windows下载。第二步:下载debug.exehttp://download.csdn.net/detail/sdlyjzh/5511445将其拷到C盘或者D盘根目录下。建议考到D盘下,注意是根目录。第三步:运行
2013-06-03 22:14:50 2523 1
原创 关于YUV视频的读取、播放,保存帧图片、以及处理的图像保存为YUV视频。
声明:原创博文,禁止转载。否则将追究法律责任!http://blog.csdn.net/sdlyjzh/article/details/8246752要对YUV视频进行处理,首先要将视频保存为一帧帧的图片,对图片进行处理,也就是要读取YUV视频的数据。下面结合代码,总结一下这两天掌握的内容。下面代码的功能,就是读取YUV视频指定帧的Y、U、V分量的值。通过这篇文章,会加深大家对YUV视频如
2012-12-01 16:35:53 25030 17
原创 spring容器bean加载过程解析
入口:AbstractBeanFactory的getBean方法: public Object getBean(String name) throws BeansException { return doGetBean(name, null, null, false); }doGetBean方法会返回指定bean的实例protected Object getSingleton...
2019-02-14 18:01:45 1946
原创 org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representatio
不知道你有没有碰到上面这个错误。本文会根据工作中碰到的该异常,梳理异常产生的原因。知道了原因,那么解决的办法也就很简单了。org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation at org.springframework.web.servle...
2018-09-01 18:05:21 8172 6
原创 mysql varchar(20),20表示什么意思?
mysql4.x,表示字节数;mysql5.x及以上,表示字符数,也就是,不论中文还是英文还是标点,加起来只能有20个。
2018-08-01 12:09:40 22084
原创 为什么foreach中不能用集合类的add 、remove方法?
之前没有关注过这个,直到有天类似这样的代码上线: public class ForEachTest { public static void main(String[] args){ List<String> test = new ArrayList<String>(); test.add("a"); te...
2018-07-30 21:33:12 1243 2
转载 Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS
转载自:http://www.cnblogs.com/qjjazry/p/6581568.html首先介绍一些乐观锁与悲观锁: 悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的同步原语s...
2018-04-12 10:49:24 179
原创 win 10 mvn deploy报错:Unable to locate the Javac Compiler in
先贴异常[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project MyProject: Compilation failure[ERROR] Unable to locate the Javac Compiler ...
2018-03-04 17:42:12 378
原创 springboot 中 log4j2的使用及配置讲解
从spring boot 1.4之后,就要使用log4j2了。记录一下使用log4j2的过程。本文会从简入繁,一步步揭示各个配置的意思。相信本文是个很好的入门示例。maven配置先说怎么配置maven吧。网上很多了:首先排除spring boot中的logback的依赖包 <dependency> <groupId>org.springframework.boot&...
2018-03-01 22:45:26 29384 3
转载 idea如何查询冲突的jar包是在哪里引入的
maven工程,一个artifact的jar包可能不只一处被依赖;有时候依赖会出现相同的artifact却不同版本,相互存在冲突,这时就需要exclude某个版本。试了在命令行工程目录下执行mvn dependency:tree可以出来文本的依赖关系,但是不会把一个artifact的每处依赖都显示出来,只会出现第一次被依赖的地方。使用eclipse的都知道,如果要查看一个jar包是如何被依赖进来的...
2018-02-28 22:47:48 13348 6
原创 记一次git stash引发的血案
由于代码很久没提交,昨天运行时,突然报错了。就像先把本地的记录缓存起来,看看远程仓库的代码是不是可以正常运行。git stash然后运行代码,发现可以正常跑。然后git stash pop,恢复缓存的记录。结果由于使用的maven module,有很多module下面的target目录被引入进来了,导致大部分都是无关文件的改动,而且淹没了自己代码的改动。由于git stash执行了好几次,因此也不...
2018-02-23 21:43:08 1016 1
原创 idea或eclipse中的工程,如何推送到新的远程仓库
场景一般是这样的。我们最开始在本地去开发,并没有在git上去建远程仓库,等到后面建了仓库,就涉及到把本地已有工程推送到远程仓库。下面说一种方法:clone远程仓库到本地:git clone ssh://git@*****/********/*******.git这样,在本地会出现一个和远程仓库同名的文件夹。之后,把idea或eclipse中的文件复制到该文件夹(不需要拷贝根目录)git addgi...
2018-02-12 09:55:32 741
原创 windows上用apache bench做并发post测试
下载apachehttp://httpd.apache.org/download.cgi选择Files for Microsoft Windows随便解压到一个路径。用cmd进入其bin目录,执行./ab.exe -n 10000 -c 100 -p post.txt -T 'application/json' http://127.0.0.1:8181/api/ordering/place-n...
2018-02-11 20:34:34 730
原创 spring Environment
今天看代码的时候,发现自动注入了@Resourceprivate Environment environment;然后通过environment.getProperty("key")就可以取到application.properties中的配置了:如下图,在application.properties中配置了debug属性:System.out.println(environment.getPr...
2018-02-10 22:04:53 7089
原创 springboot——自动配置
自动配置是什么?什么是自动配置?举例来讲,当你通过@Autowired或@Resource注解,自动注入一个类实例之前,被注入进来的这个类实例需要被spring容器纳管,不然肯定会注入失败。往往我们会在xml通过`bean id="dfdf"` 或者在类定义上使用@Component、@Configuration等注解,来实现其被spring容器管理。而对于jar包中的类,则稍微复杂一点,要根据j...
2018-02-10 14:47:49 10897
转载 FilterChain流程
在调用servlet的service()方法之前,容器会先创建一个filterchain,并把servlet传入这个filterchain对象,作为其内部参数。创建这个filterchain的时候,会根据请求的uri,把符合条件的filter加入到这个chain里。紧接着就调用这个filterchain的doFilter方法。这个filterchain的doFilter方法就会按顺序(在web.x
2018-02-06 16:14:27 967
原创 RPC中客户端动态代理如何实现的?
最近在熟悉工程中用到的RPC框架,碰到一个小问题。在引出该问题前,先简单介绍一下RPC:RPC介绍我们从一个例子开始。 服务方接口:package com.jzh.rpc.server;public interface IRpcServer { public void work();}服务方实现类:package com.jzh.rpc.ser
2018-02-04 22:46:06 1700
转载 怎样理解阻塞非阻塞与同步异步的区别?
作者:严肃链接:https://www.zhihu.com/question/19732473/answer/20851256来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。“阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异步同步和异步关注的是消息通信机制 (synchronous
2018-01-31 21:40:14 134
原创 spring 中初始化
接手一套代码,可能会被里面复杂的逻辑搞懵掉。有时候,一些属性的初始化,怎么也找不到。 这里提几种spring中可以做初始话的方法。实现BeanPostProcessor接口 该接口有两个方法: Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException;/
2018-01-19 10:46:56 240
原创 spring AOP切面编程
最开始以为切面就做做打印日志的工作,没怎么关注,也没怎么去用。最近发现,其作用还是很强大的。所以,先学习下spring 的AOP如何使用。 首先了解几个概念:Joinpoint(连接点) 所谓连接点就是那些被拦截的点(也就是需要被拦截的类的方法)。在Spring中,这些点指的只能是方法,因为Spring只支持方法类型的拦截,实际上Joinpoint还可以拦截field或类构造器。 Point
2018-01-18 18:38:26 211
原创 referer 和 request URL
request是你请求的url,而referer是指从哪里跳转过来的。一般是你在页面点击某些操作,由前端代码,请求requestURL
2018-01-16 11:43:16 4013
原创 eclipse中tomcat部署路径
想必有过Java web工程开发经验的同学,对tomcat都不陌生。 在windows开发环境中,我们一般会在eclipse中集成tomcat。 安装好后,如图所示: 可以看到,这里安装了两个版本的tomcat。把工程部署到tomcat,运行就可以了。 比较常出现的一个问题是,超过45s,都没有启动完成。可以通过调大超时时间解决: 扯远了,正常启动后,我们可以访问本地8080端口,查看
2018-01-10 21:38:24 5573
原创 插入排序java实现
插入排序的思想是,前面部分为有序数组,后面无序数组中的元素,依次插入到前面的有序数组中。因此,实现为,从数组中第二个元素开始,依次插入到前面的数组中。需要做的工作时,有序数组中插入点及其后面的数据,需要后移一位,然后把数据,插入到插入点。@Override public void sort(int[] data) { // TODO Auto-generated method
2017-11-24 22:49:04 203
原创 选择排序java实现
选择排序是根据冒泡排序改造的。每次在无序数据里面,选出最小的值,然后与头部元素互换。 public void selectSort(int[] data){ for(int i=0;i<data.length-1;i++){ int least = i; for(int j=i+1; j<data.length;j++){
2017-11-23 13:41:10 238
原创 冒泡排序java实现
冒泡排序,依次比较相邻两个元素,按照大小关系,交换两个元素。通过这种方式,每次,可以将最大或最小值移动到数组尾部。public void bubbleSort(int[] data){ for(int i=0; i<data.length-1;i++){ for(int j=0;j<data.length-1-i;j++){ i
2017-11-23 13:04:04 146
原创 快速排序java实现
首先在数组中选择一个基准点,然后分别从数组的两端扫描数组,设两个指示标志(lo指向起始位置,hi指向末尾),首先从后半部分开始,如果发现有元素比该基准点的值小,就交换lo和hi位置的值,然后从前半部分开始扫,发现有元素大于基准点的值,就交换lo和hi位置的值,如此往复循环,直到lo>=hi,然后把基准点的值放到hi这个位置。一次排序就完成了。以后采用递归的方式分别对前半部分和后半部分排序,当前半部分
2017-11-23 12:08:47 168
原创 堆排序java实现
堆排序(大顶堆),首先将原始数组,构建成大顶堆。(大顶堆的意思是,根节点最大。其子节点也是大顶堆) 然后依次把根节点取出,与数组末尾元素交换。交换后,数组最后一个元素,就是最大值。前面的树,不满足大顶堆,则需要重新排序。而此时排序,和最开始构建大顶堆有些不一样。因为,子树已经是大顶堆了,所以,调整的过程,只需要对交换了元素顺序的子树进行调整就可以了。 下面是java实现。package com.
2017-11-23 10:34:04 224
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人