- 博客(41)
- 收藏
- 关注
转载 批量复合条件查询样例
<select id="findListByParam" parameterType="java.util.List" resultType="PredictPackageDO"> select <include refid="columns"/> from tmsx_predict_package_quantity <where&g...
2019-07-24 18:12:00
181
转载 eclipse运行java工程的两个常用jvm参数
这一篇文章更详细http://blog.youkuaiyun.com/mr__fang/article/details/47723767我们常用的两个参数-XX:+PrintGCDetails 可以在控制台打印出gc日志-XX:+TraceClassLoading 监控类的加载,常用于排查maven 的jar包冲突问题转载于:https://www.cnblogs.com/qiy...
2017-08-22 15:50:00
129
转载 多个系统域名使用同一认证中心做单点登录的做法
举个简单又不失一般性的场景,两个应用 A 和 B,域名分别是www.a.com、www.b.com,统一认证中心的域名是www.sso.com1.用户通过浏览器先访问 A系统www.a.com/pageA, 这个pageA是个需要登录才能访问的页面,2.A系统发现用户没有登录, 就重定向到认证中心,www.sso.com/login?redirect=www.a.com/pag...
2017-07-27 18:06:00
477
转载 spring的bean的某属性为List的配置方式
假如有这么一个bean1 public class BeanObj {2 3 @Resource4 private List<InnerBeanInterface> beanList;5 6 }有两种配置方式,方式1:用xml的方式配置外层bean, 内层bean可以用注解方式配置<b...
2017-07-14 18:16:00
824
转载 Spring的FactoryBean
首先是BeanFactory和FactoryBean的区别:FactoryBean:是一个Java Bean,但是它是一个能生产对象的工厂Bean,它的实现和工厂模式及修饰器模式很像。比如下:我们把bean比作猪,那么FactoryBean可以算是一个母猪,首先它本身也是一只猪,但它能够下小猪。BeanFactory:这就是一个Factory,是一个IOC容器或者叫对象工厂...
2017-07-06 21:03:00
113
转载 并发情况下修改数据对缓存的影响及解决办法
前几天遇到一个缓存问题,这样描述下:最初,redis里面key1=value1,之后,两个线程 一和二 分别执行下图的操作,从上到下按照时间进行,1 2 3 4 5 6是执行的顺序号,从小到大依次执行执行完成以后,缓存key1的值与数据库key1的值不一致解决方法,第1个小步骤中不要立即失效缓存,而是设置一个缓存的失效时间t(比如t=5秒)t>第4步+第6步的执...
2017-06-30 16:56:00
153
转载 guava eventbus代码分析(二)
---恢复内容开始---我们分析下EventBus的核心方法 post方法,直接贴代码1 public void post(Object event) {2 Iterator<Subscriber> eventSubscribers = subscribers.getSubscribers(event);3 if (eventSubscri...
2017-06-20 21:22:00
106
转载 guava eventbus代码分析(一)
分析guava eventbus之前,先看一下传统观察者模式的写法:Subject接口是抽象主题,相当于被观察者,它持有一个监听者observer的列表,attach方法往这个列表里面注册监听者,detach方法注销监听者,notify方法用于事件发生时通知到列表中的监听者通常在notify的实现方法中会调用监听者的update方法。Observer是抽象观察者,带一个u...
2017-06-20 13:59:00
121
转载 drools workbench drl动态规则jar包引用的路径
对上面两个图说明一下tomcat bin目录下有repositories文件夹,下面是kie文件夹,对应目录下,即bin/repositories/kie/路径A换算成可访问的地址是:http://ip:8080/war包名称/maven2/路径A转载于:https://www.cnblogs.com/qiyu/p/6962435.html...
2017-06-08 13:57:00
581
转载 两个应用之间交互怎样才算做健壮
今天重新review了一下之前写的代码,脱离开具体的业务逻辑:A应用与B应用消息交互,A先发消息给B,B处理后发另一个消息给A,站在A应用的立场来考虑,怎么设计这个系统算做健壮,我们分情况来说,第一种情况,A应用发送给B应用的消息有问题(例如因为A应用自身的bug导致必填字段为空),或B应用处理消息的逻辑出bug了。 最终的结果是B应用没有成功消费到消息。...
2017-06-01 11:53:00
77
转载 nginx页面访问超时和重试 参数 配置
proxy_next_upstream_tries 0keepalive_timeout 600proxy_read_timeout 600proxy_send_timeout 600proxy_connect_timeout 600第1个参数0 表示重试次数,表示不重试其余的参数 600 表示 600秒可以按照实际需求改写这几个参数的值转载于:https://www.c...
2016-09-06 14:12:00
299
转载 上次jar包到私有maven仓库
mvndeploy:deploy-file-DgroupId=org.jbarcode-DartifactId=jbarcode-Dversion=0.2.8-Dpackaging=jar-Dfile=jbarcode-0.2.8.jar-Durl=http://192.168.2.126:8081/nexus/content/repositories/thirdpart...
2016-01-05 17:59:00
117
转载 公司初创时期的技术路线系列--7.diamond使用
参照这个博客的地址http://blog.youkuaiyun.com/chenzhongwei99/article/details/49491659 他讲了一系列,可以点下一篇继续这个博客将的较为简略,仅供参考http://www.zhouyoudao.com/tddl-diamond-1/转载于:https://www.cnblogs.com/qiyu/p/5052069.htm...
2015-12-16 18:58:00
140
转载 公司初创时期的技术路线系列--6.mysql安装与配置
待完成转载于:https://www.cnblogs.com/qiyu/p/5033858.html
2015-12-09 19:07:00
130
转载 公司初创时期的技术路线系列--5.webx3框架的使用
待续转载于:https://www.cnblogs.com/qiyu/p/5033860.html
2015-12-09 19:07:00
100
转载 公司初创时期的技术路线系列--4.dubbo安装与配置
参照github地址https://github.com/alibaba/dubbo上面说的配置方式进行设置,注意有的文件的目录和配置说明中的稍微不一致,但仔细找下都能找到。maven install命令可能会不成功,多试几次即可。配置说明中的最后一句http://root:root@127.0.0.1:8080的意思是说访问http://127.0.0.1:80...
2015-12-09 19:01:00
100
转载 公司初创时期的技术路线系列--3.zookeeper安装
1.下载zookeeper-3.4.7.tar.gz2.解压tar-zxvf -3.4.7.tar.gz3.conf目录下修改文件名zoo_sample.cfg改为zoo.cfg#mvzoo_sample.cfgzoo.cfg4.修改成如下内容clientPort=2181initLimit=5syncLimit=2server.1=192.168.7...
2015-12-09 18:54:00
87
转载 公司初创时期的技术路线系列--2.MAVEN安装
1.wget方式下载maven或先下载到本地然后上传至服务器2.解压tar zxvf apache-maven-3.0.5-bin.tar.gz3.vi /etc/profile 设置环境变量,你懂得 M2_HOME=/opt/maven/apache-maven-3.0.5 export M2_HOME PATH=$PATH:$M2_HOME/bin ...
2015-12-09 18:28:00
102
转载 公司初创时期的技术路线系列--1.JDK安装
1.下载JDK,可以用wget下载,也可以先把JDK下载到本地再上传至linux服务器例如下载 jdk-7u25-linux-x64.rmp2.执行安装命令rpm -ivh jdk-7u25-linux-x64.rmp3. 设置JAVA_HOME vi /etc/profil JAVA_HOME=/usr/java/jdk1.7.0_25 CLASSPATH=$JAVA...
2015-12-09 18:13:00
85
转载 linux定期执行shell脚本的方式
sudo-uadmin crontab-e*/5**** /bin/sh/home/admin/wmpinventory/bin/jbossctlrestart转载于:https://www.cnblogs.com/qiyu/p/4542380.html
2015-05-31 18:03:00
87
转载 如何查看一个对象占用堆内存的大小
近期,发现库存应用部署启动越来越来越慢,想看下缓存的多个Map对象实例到底占用了多少堆内存使用的方法是 SizeOf.java 网站链接http://sizeof.sourceforge.net/使用很简单,贴一行代码SizeOf.humanReadable(SizeOf.deepSizeOf(Object)) 如果对象私有的并且没有get方法,可以使用...
2015-05-18 19:45:00
472
转载 Disruptor十三问之六伪共享
这张图说明了伪共享的问题:在核心1上运行的线程想更新变量X,同时核心2上的线程想要更新变量Y。不幸的是,这两个变量在同一个缓存行中。每个线程都要去竞争缓存行的所有权来更新变量。如果核心1获得了所有权,缓存子系统将会使核心2中对应的缓存行失效。当核心2获得了所有权然后执行更新操作,核心1就要使自己对应的缓存行失效。这会来来回回的经过L3缓存,大大影响了性能。如果互相竞争...
2015-03-25 19:56:00
105
转载 Disruptor十三问之五内存屏障
什么是内存屏障?它是一个CPU指令。它是这样一条指令: a)确保一些特定操作执行的顺序; b)影响一些数据的可见性(可能是某些指令执行后的结果)。插入一个内存屏障,相当于告诉CPU和编译器先于这个命令的必须先执行,后于这个命令的必须后执行。强制更新一次不同CPU的缓存。例如,一个写屏障会把这个屏障前写入的数据刷新到缓存,这样任何试图读取该数据的线程将得到最新值Java 的...
2015-03-25 19:46:00
117
转载 Disruptor十三问之四为什么这么快
Disruptor相对于传统方式的优点:没有竞争=没有锁=非常快。所有访问者都记录自己的序号的实现方式,允许多个生产者与多个消费者共享相同的数据结构。在每个对象中都能跟踪序列号(ring buffer,claim Strategy,生产者和消费者),加上神奇的缓存行填充,就意味着没有为伪共享和非预期的竞争。转载于:https://www.cnblogs.com/q...
2015-03-25 16:07:00
66
转载 Disruptor十三问之三CPU缓存行填充
64位处理器缓存行的长度是64字节,java 64位long类型数据是8字节,也就是说一个缓存行需要8个long类型数据填充如上图,假设volatile类型 head和tail在内存中地址连续,被两个CPU core1和core2都加载到各自的缓存行中,如果core1修改了head的值(缓存和内存中的值都被更新),将整个缓存行为单位,标记为无效状态。此时Core2再读...
2015-03-24 17:39:00
162
转载 Disruptor十三问之二Volatile
Volatile变量修饰符如果使用恰当的话,它比synchronized的使用和执行成本会更低,因为它不会引起线程上下文的切换和调度。处理器为了提高处理速度,不直接和内存进行通讯,而是先将系统内存的数据读到内部缓存(L1,L2或其他)后再进行操作,但操作完之后不知道何时会写到内存,如果对声明了Volatile变量进行写操作,JVM就会向处理器发送一条Lock前缀的指令,将这个变量所在...
2015-03-24 17:17:00
106
转载 Disruptor十三问之一RingBuffer
并发框架Disruptor使用了一个叫做 RingBuffer(环)的数组结构它只有指向下一个可用位置的序号,没有只向尾部的序号,是因为RingBuffer不删除Buffer中的数据,当重叠时直接用新数据覆盖。为什么使用数组而不是链表,1.数组在内存的存储位置是连续的,链表是不连续的。对数组的访问比对链表的访问快。从硬件的角度,对CPU缓存来说,能够一次性加载几个相邻...
2015-03-24 16:36:00
147
转载 HashMap 死循环 CPU100%的问题分析
之前看过左耳朵耗子的博客,我自己再把这个问题重新整理一遍1.HashMap表的数据结构HashMap用一个指针数组来存储Entry, 按照Entry的key通过一定的规则(得到哈希值)来分散存储这些元素,假设摸一个Entry(B)当按照这个规则计算出来的下标位置已有一个Entry(A),会将最新的Entry放在数组这个下标所在位置,同时将B的next设置为A.2.Pu...
2015-03-23 16:38:00
157
转载 MyISAM InnoDB 区别
基本的差别为: MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而 InnoDB提供事务支持已经外部键等高级数据库功能。 项目是读多写少的项目适合用MyISAM,MyISAM的读性能是比Innodb强不少的。转载于:https://www.cnblogs.co...
2013-11-21 15:38:00
64
转载 Java虚拟机的执行模型
java代码是在线程中被执行的。每个线程都有它自己的执行栈,这个栈由很多帧组成。每个帧代表了一个方法调用:每当一个方法被调用时,就会创建一个新的帧,然后将这个帧放到当前线程的执行栈的栈顶。当这个方法正常返回时,或者发生了异常,这个帧就会从执行栈顶弹出,然后虚拟机会接着执行下一个位于执行栈栈顶的帧。每个帧都包含两部分:一个局部变量区和一个操作数栈区。局部变量区包含了方法中定义的局部变量...
2013-11-20 19:28:00
86
转载 javap命令查看class文件
在D盘根目录下放一个class文件TestBytecode.class运行javap -classpath D:/ -c TestBytecode命令即可输出。javap -classpath D:/ -verboseTestBytecode输出的更为详细转载于:https://www.cnblogs.com/qiyu/p/3350578.html...
2013-10-03 20:23:00
100
转载 Java垃圾收集--对象的finalize()方法
根搜索算法:这个算法的基本思路是通过一系列名为“GC roots”的对象作为起点,从这些节点开始向下搜索,搜索走过的路径称为引用连,当一个对象到GC roots没有任何引用链,则证明对象是不可用的。将被判定为可回收对象。不可达对象要被垃圾回收,至少要经历两次标记过程。第一次标记时执行finalize()方法,并做记号,第二次标记则不会再执行finalize()方法了。执行finalize...
2013-10-02 21:13:00
221
转载 Java虚拟机规范-Class文件格式阅读摘要
ClassFile结构:每一个Class文件对应于一个如下所示的ClassFile结构体 1 ClassFile { 2 u4 magic;//魔数,值固定为0xCAFEBABE 3 u2 minor_version;//副版本号 4 u2 major_version;//主版本号 5 u2 constant_pool_count;...
2013-10-01 19:43:00
75
转载 Java虚拟机结构阅读摘要
1.数据类型: Java虚拟机可操作的数据类型分为原始类型和引用类型 原始类型包括数值类型(Numeric)、布尔类型(Boolean)和returnAddress类型: 表示一条字节码指令的操作码(Opcode)。在所有的虚拟机支持的原始类型之中,只有returnAddress类型是不能直接Java语言的数据类型对应起来的。 引用类型包括类类型、数组类型和接口类...
2013-10-01 19:30:00
68
转载 Java Assert
示例:public class TestAssert { public static void main(String[] args) { assert false: "Exception Assert"; }}格式:assertexpression1: expression2expression1为布尔类型表达式exp...
2013-09-30 21:03:00
75
转载 JAVA中的TRANSIENT
Java中的transient,是用于声明序列化的时候不被存储的示例:博客原文:http://www.blogjava.net/liuganquan/archive/2007/04/22/112591.htmlpublic class Logon implements Serializable { private Date date = new Date(); ...
2013-09-30 11:22:00
80
转载 disruptor并发编程框架官方论文-中文版
引用自 百度空间-林总的榕树洞http://hi.baidu.com/lyhero11/item/e620d2f670e22d48922af2e1(1)http://hi.baidu.com/lyhero11/item/2afd8938b47655ff97f88de4(2)http://hi.baidu.com/lyhero11/item/2241782a4768efc2...
2013-07-24 17:38:00
200
转载 btrace使用step by step
第一步: 下载 地址 下载后解压缩,到D盘 D:\btrace目录下第二步: path里面配置btrace 将D:\btrace\bin加到环境变量的path中 如果没有java_home还要配置JAVA_HOME第三步: 测试代码示例 a) 需要trace的java程序代码...
2013-03-20 16:15:00
101
转载 最大类间方差
转载http://blog.sina.com.cn/s/blog_6354bd9f0100x4gz.html最大类间方差法是由日本学者大津于1979年提出的,是一种自适应的阈值确定的方法,又叫大津法,简称OTSU。它是按图像的灰度特性,将图像分成背景和目标2部分。背景和目标之间的类间方差越大,说明构成图像的2部分的差别越大,当部分目标错分为背景或部分背景错分为目标都会导致2部分差别...
2013-01-21 13:56:00
252
转载 大数据量实时统计排序分页查询(并发数较小时)的几点建议
下面有几条根据卖家监控页面的优化得出的最佳实践,欢迎拍砖大数据量实时统计排序分页查询的瓶颈不是函数(count,sum等)执行,不是having, 也不是order by,甚至不是表join, 导致慢的原因就在于“数据量太大本身”化整为零就是将表划分为M份相互独立的部分,可以是分表,也可以是不分表但冗余一个取模结果字段实际结果是不分表比分表更加灵活...
2013-01-15 10:20:00
878
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人