Skip to main content

如何调整Spring-Data读请求不开启事务

Submitted by taotao on Tue, 12/11/2018 - 20:05

概述

接着上一篇的文章MyCAT-Spring-Boot-JPA中间件使用过程的问题提到的问题, Spring Data 默认会对所有的读数据请求加上事务, 但是在使用类似MyCAT、KingShard的读写分离中间件的时后, 会将带有事务的请求都发送到主库上去,而达不到读写分离需求。 因此我们需要对Spring Data进行一定的改造,能够让读数据的请求不被事务包裹, 而达到利用中间件读写分离的目的。

基于之前的文章MyCAT-Spring-Boot-JPA中间件使用过程的问题中的分析, 我们发现SimpleJapRepository是在类级别加上了@Transaction(readOnly=true)的标注, 这会导致所有的 读请求都被事务包裹,所以我们需要将这个默认的设置删除掉。

TCP/IP学习日志二-协议

Submitted by taotao on Tue, 12/11/2018 - 19:02
协议

概述

TCP/IP首先是一个网络通信协议, 那么我们就需要了解和协议相关的一些知识,本文主要以类比的方法来介绍协议。

什么是协议?

比如说小王和小李为了一起完成某项工作,因此二人就约定做这个事情的时候他们如何相互配合, 他们二人的约定就是一个协议。

什么是协议簇

如果小王和小李需要配合完成另一项工作,他们二人又进行一次如何分工协作的约定,那么他们彼此 又创造了一个协议。当小王和小李配合完成的工作越来越多,他们之间达成的协议也就越来越多, 协议多了,我们可以把小王和小李之间的这些协议统称为协议簇。

Tags

TCP/IP学习日志一

Submitted by taotao on Mon, 12/10/2018 - 20:16

 

认知
认知

 

TCP/IP详解 卷1:协议 这本书是2016年底,公司年底抽奖用奖金买的, 买回来大概有2年多了,一直都没看它,虽然不看它,但是每次看它静静的躺在书架上面,心里还是有一些充实感,这种 感觉可能是虽然我不看你,但是我拥有你,我想看你可以随时看你。其实还是内心的一种贪婪的表现。这个周末这本书 终于被我从书架上取下,取下的原因是我要之前写了一篇 学习方法的文章, 想通过这本书的学习来检验我总结的这一套的方法论。

Tags

openjdk编译后出现的中文乱码问题及解决过程

Submitted by taotao on Mon, 12/10/2018 - 18:45

概述

项目的打包是通过Jenkins进行的, 由于对Jenkins进行了一次升级和数据迁移之后, 凡是在Java类中有中文字符输出的地方,都变为乱码。 乱码问题是发生在升级迁移之后, 后来通过在jvm的启动参数追加-Dfile.encoding解决该问题,下面是问题的详细分析过程:

发生问题之前的打包环境

[root@server ~]# java -version
java -version
java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)

Jenkins版本为2.53,启动方式为

SpringBoot-Async-线程池爆满问题解决过程

Submitted by taotao on Fri, 12/07/2018 - 19:32

问题概述

前几天生产环境的购物车服务突然不能正常访问,分析日志中的报错信息,发现是购物车使用的异步工作线程池的队列达到了设置的上限, 致使新的http请求生成的task不能被继续放入到线程池的队列中。这是直接的报错原因,深入分析日志,发现有大量的超时错误,这些超时错误 都是发生在购物车服务调用另一个用户中心服务时发生的。所以问题是由于大量的超时请求将工作线程池中的线程消耗光导致。 故障发生持续了10-15分钟,最后是以重启购物车服务的方式恢复服务。

下面就基于该问题进行详细的分析过程。

超时错误分析

首先查看问题发生时的错误日志信息,在20:00 至 20:05 之间,从日志系统统计下来有大概1600 到 1700条超时的错误日志

学习方法

Submitted by taotao on Thu, 12/06/2018 - 20:48
学习

一直说要总结下自己的学习方法,因为今年这一年学习方法的认识提升最快的一年,改变很多自己之前的错误的认知。 首先说学习的过程是一个将新知识内化的一个过程,所谓的内化就是利用老的知识去理解新的知识的一个过程,然后将新的知识纳入已有的知识体系中。 然后到使用的时候,我们可以快速的根据某一个场景检索到我们需要的知识。学习的过程就是不断丰富我们这个知识体系的一个过程。

Tags

纪念AARON SWARTZ

Submitted by taotao on Wed, 12/05/2018 - 19:37

今天早上打车到公司,在路上折腾个人博客,从2018年12月2日开始,我的博客就一直处于停止更新状态, 因为我打算将博客从emacs org的模式迁移到 Drupal 8,主要是为了可以更好的组织博客的内容,目前已经 写了27篇博客,虽然数量不算多,质量也不算太高,但也算是给自己的一个交代,在博客里可以看到自己成长过程。

Tags