08 2018 档案
摘要:文件上传使用<form method="POST" enctype="multipart/form-data"> , 而不是默认的application/x-www-form-urlencoded (JQuery默认也是这个) Servlet首先从Request.inputStream直接读取到原始
阅读全文
摘要:不开事务几种情形 ① @Transactional写在了private方法上 org.springframework.transaction.interceptor.AbstractFallbackTransactionAttributeSource#computeTransactionAttrib
阅读全文
摘要:在调用service对象之前,CglibAopProxy.DynamicAdvisedInterceptor#intercept会拦截所有动态代理bean,并查找将要调用的方法前是否有其他AOP拦截 有@Transaction注解的时候, chain不是空的,走if else方法 没有@Transa
阅读全文
摘要:增强for循环 :forEach 反编译后可以看到实际使用的仍然是Iterator+while遍历的 forEach的优点是写法简单,缺点是不能使用xxx.remove(e)或者iter.remove(), 如果有删除的需要,还是老老实实用Iterator 对于数组的遍历,使用的是length遍历
阅读全文
摘要:总要有一个容器,一个生产方,一个消费方
阅读全文
摘要:A atomicity 原子性 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成, C consistency 一致性 在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则 I isolation 隔离性 数据库允许多个并发事
阅读全文
摘要:参考Dong Lee的系列博客:http://ifeve.com/jmm-faq-dcl/ volatile在初始化代码块的用途:jdk一个示例
阅读全文
摘要:先看一个简单的示例:
阅读全文
摘要:https://files.cnblogs.com/files/yszzu/netty-rpc-parent.zip https://github.com/apache/rocketmq/blob/master/remoting/pom.xml 参考:
阅读全文
摘要:线程池构造方法不能控制任务的超时时间, java.util.concurrent.ThreadPoolExecutor#ThreadPoolExecutor(int, int, long, java.util.concurrent.TimeUnit, java.util.concurrent.Blo
阅读全文
摘要:问题: 在异步线程中有注解@Transactional是否会开启新事务? 不会,事务传播失效 private @Transactional也是失效
阅读全文
摘要:String List Set Hash sort 正则匹配 批量删除key https://stackoverflow.com/questions/31029982/redis-how-to-delete-multiple-keys-matching-pattern EVAL "return re
阅读全文
摘要:注入和查找问题 HSF Consumer bean, 注入的是beanName='实际接口名', type='HSFSpringConsumerBean', 造成Autowire时查询出来的类型不匹配 MybatisMapper的autowire为什么没有类型不匹配的问题, 注入时是Mapper的代
阅读全文
摘要:redis集群方案 3主3从高可用方案: 机器数要求有点高。。 主备哨兵模式 sentinel 集群管理端口 不能用来维护数据 , 比如26379, 此端口连接后没有get set keys等命令 查询数据仍然使用6379端口 https://blog.csdn.net/u011204847/art
阅读全文
摘要:一. 基于session的鉴权 多集群部署时一个网页的请求经过负载均衡后会发到多台后端机器上,此时就要求后端机器上有相同的sessionId, 可以使用Spring-session来做集群的共享session, >如果使用redis 业务量上来后还需要考虑redis扩容问题 [ redis集群自动对
阅读全文
摘要:处理静态资源的handler和处理Controller请求中的handler不同,对应的Interceptor也不同 查找对应handler是在DispatcherServlet中 因此一些自定义的Interceptor,默认不会对静态资源进行拦截
阅读全文
摘要:亿级流量架构 http://www.iteye.com/blogs/subjects/as-core servlet3.1对比 http://jinnianshilongnian.iteye.com/blog/2245925 通过异步化我们不会获得更快的响应时间,但是我们获得了整体吞吐量和我们需要的
阅读全文
摘要:#apach ab|abs ab -n -c xxx.html/js/css #jmeter windows/linux 配置bin目录到PATH环境变量 ```cmd jmeter -JTOKEN=Nzcwxxxx-ae0e10f -JUSER=cuham -JTHREADS=1 -JLOOP=1
阅读全文
摘要:索引使用不正确, 行级锁 dba手动误操作 lock后忘了unlock 正确的索引, 小事务 Error Code: 1786. Statement violates GTID consistency: CREATE TABLE ... SELECT. 方案1:设置全局参数,禁用GTID 方案2:分
阅读全文
摘要:线程内部缓存:a. 局部变量HashMap, 方法间传递 b. 使用ThreadLocal 本地缓存:单jvm内共享 可以使用(Concurrent)HashMap自己实现,也可以使用GuavaCache。 guavaCache支持过期自动删除(全局的过期时间),垃圾回收, 回收通知。。。 远程缓存
阅读全文
摘要:spring boot admin管理端, 需要部署成独立的应用 pom中添加依赖 appllication.properties: 管理端的端口设置为8091, 查看其他应用的状态也是从这个端口访问 应用代码修改: 入口加上 @EnableAdminServer spring boot admin
阅读全文
摘要:下载groovy的sdk, 解压后设置GROOVY_HOME和PATH变量 http://groovy-lang.org/download.html 使用IDEA创建java项目勾选Groovy组件 HelloWorld 分号不用写,public不用写, 变量都用def定义 编译后的class文件,
阅读全文
摘要:一个案例 POJO没有set方法, 造成反序列化时出现NPE问题。实际场景:POJO是第三方提供的,final 运行结果:Gson的输出true, FastJson输出null, 后面的业务逻辑使用getIsSuccess时很容易出现NPE FastJson坑真多, 上次遇到一个byte[]数组自动
阅读全文
摘要:使用KeySet和EntrySet遍历的差别 运行多次后,两者差别有2秒左右 结论:使用EntrySet遍历时性能更高。《阿里开发手册》中也推荐使用EntrySet 原因分析:。。。 JDK8中Map interface有个default实现方法forEach, 遍历的也是EntrySet
阅读全文
摘要:FileChannel的作用: channel可以只操作一个文件的一部分,chunk操作, 比如替换大文件的文件头 文件截断truncate IO性能 ByteBuffer HeapByteBuffer = ByteBuffer.allocate(n)申请堆上的buffer DirectByteBu
阅读全文