自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (8)
  • 收藏
  • 关注

原创 Sharding-Jdbc源码学习(五):sharding-jdbc如何进行sql路由(sql路由之sql解析)

一,SQL解析之创建SQL解析引擎SQL路由的前题是需要先解析SQL,那么接上一篇博文继续看分片-JDBC是如何进行SQL解析的,也就是看ParsingSQLRouter中是如何实现Sql解析的(关注红色字体),且看源码。io.shardingjdbc.core.routing.router.ParsingSQLRouter中代码片段//ParsingSQLRouter构造器pub...

2019-03-07 17:59:10 1163

原创 TCC-Transaction 分布式事务源码解读(四、框架感知Tcc服务后具体做了哪些事)

位置3、在所拦截方法的前后执行3中的@compensable  TransactionInterceptor.interceptCompensableMethod(pjp)代码(后续重点解读该处代码)那么接下来继续分享位置3中的代码是如何执行的?位置1:根据注解中的事务传播特性、事务是否已激活、transactionContext 来计算当前方法是ROOT、还是PROVIDER或者是N...

2019-01-12 16:41:59 438

原创 TCC-Transaction 分布式事务源码解读(三、框架如何感知Tcc服务)

上文中提到发布TCC服务只需在service实现类的方法上加@Compensable ,那么该方法就变为TCC中的try方法:@Compensable(confirmMethod = "confirmRecord", cancelMethod = "cancelRecord", transactionContextEditor = MethodTransactionContextEditor...

2019-01-11 18:48:19 670

原创 TCC-Transaction 分布式事务源码解读(二、如何发布Tcc服务)

配置tcc-transaction1 引用tcc-transaction在服务调用方和提供方项目中需要引用tcc-transaction-spring jar包,如使用maven依赖: <dependency> <groupId>org.mengyun</groupId> <artifactId>t...

2019-01-10 18:00:05 473

原创 TCC-Transaction 分布式事务源码解读(一、概要及实现原理)

1. 概念TCC事务 为了解决在事务运行过程中大颗粒度资源锁定的问题,业界提出一种新的事务模型,它是基于业务层面的事务定义。锁粒度完全由业务自己控制。它本质是一种补偿的思路。它把事务运行过程分成 Try、Confirm / Cancel 两个阶段。在每个阶段的逻辑由业务代码控制。这样就事务的锁粒度可以完全自由控制。业务可以在牺牲隔离性的情况下,获取更高的性能。Try: 尝试执行业务...

2019-01-10 17:38:44 1073

原创 Sharding-Jdbc源码学习(四):sharding-jdbc如何进行sql路由(创建sql路由器)

第一篇博文中提到的分片-JDBC分库分表思想中涉及到分片规则配置,SQL解析,SQL改写,SQL路由,SQL执行以及结果归并等模块。本文将从分片-JDBC如何进行SQL解析来进行源码解读。一,创建SQL解析器简单说SQL路由即就是将SQL语句根据分库规则发送到对应的库上执行。如何做到且看源码io.shardingjdbc.core.jdbc.core.statement.Shardin...

2018-11-28 20:37:25 1214 2

原创 Sharding-Jdbc源码学习(三):shardingDataSource执行sql过程解析

前一篇博文中提到JdbcTeplate执行SQL的第一步首先是创建连接对象。1,DataSourceUtils.getConnection(obtainDataSource()); 创建连接,该处只是获得连接对象并未真正建立连接2,由“ Connection ”创建对应的Connection.createStatement()创建对应的Statement3,执行Statement的ex...

2018-11-28 17:52:30 2047

原创 Sharding-Jdbc源码学习(二):jdbcTemplate与shardingDataSource关联关系

上文配置了8个库,那么执行一条SQL时拆分-JDBC是如何取与对应的Darasource建立连接并执行对应的SQL的??一,配置shardingDataSource  spring.xml配置的JdbcTemplate类的类的,并且将shardingDataSource设置到的JdbcTemplate的类的类的数据源属性中。<bean id="jdbcTemplate" cla...

2018-11-28 17:32:12 2731

原创 Sharding-Jdbc源码学习(一):配置shardingDatasource

一,分片-JDBC分库分表概述拆分-JDBC是实现了JDBC协议的罐子文件。基于JDBC协议实现,与基于MySQL的协议实现的分库策略(mycat)在实现上有很大差异。无论使用哪种架构,核心逻辑均极为相似,除了协议实现层不同(JDBC或数据库协议),都会分为分片规则配置,SQL解析,SQL改写,SQL路由,SQL执行以及结果归并等模块。故整体架构如下:本文主要从分片规则配置及J...

2018-11-28 16:15:43 10605 1

原创 Cassandar 学习笔记

一、常用cqlsh 使用 1. create table 语法及注意点 (1)创建无主键table,例:create table 创建表 create table test_user(id , name text, age int , gender text) ;   InvalidRequest: Error from server: code=2200 [Invalid query...

2018-11-15 20:44:58 743

转载 如何用消息系统避免分布式事务?

摘要:  前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。   上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插 前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发

2017-03-19 23:31:45 309

转载 Java 多线程 并发编程

一、多线程1、操作系统有两个容易混淆的概念,进程和线程。进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存器、堆栈和帧。同一进程中的线程共用相同的地址空间

2017-03-19 23:29:34 418

转载 分布式系统数据一致性的6种方案(转)

编者按:本文由「高可用架构后花园」群讨论整理而成,后花园是一个面向架构师的增值服务,如需了解,请关注「高可用架构」后回复 VIP                                                                                问题的起源在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致

2017-03-19 23:25:54 1536

转载 高并发下的读服务

系统背景     几乎所有的互联网系统从开始都是一体化设计的,基本上所有的功能代码都是耦合在一起的。后续随着用户的不断增多业务也越来越多样化,系统需要的维护人员也会越来越多,相应的系统的复杂度、稳定性、可维护性也就越来越难控制,这时系统的拆分以及服务化就成了必然的选择。     系统被拆分后实现方式也就多样化起来,各个系统可以根据自己的业务需求、技术特性、方便程度、甚至个人喜好来选择使用不

2017-03-19 23:21:29 1314

原创 21位数据处理!求解!!!!

偶然在书上看到一个非常有趣的题,百思不得其解,于是乎拿到网上请各位大虾指点,希望各位大虾不吝赐教解决方案。题目:找出21位数中的所有水仙数。 水仙数 即就是 一个n位数每一位的n次方 之和 等于这个数(n>=3)。             如: 1的三次方 + 5 的三次方 + 3 的三次方 = 153;1634  = 1的四次方 + 6 的四次方 + 3 的四次方 + 4 的四次方。 .

2012-04-12 10:24:21 621 4

原创 开发闲聊(三)——讨厌的double类型

1、数据过大,超过亿数量级后讨厌的double会用科学计数法来表示。在处理数据时若将其转化成字符串型数据则存在极大风险,有可能得到的是一串1.x E 10之类的科学计数法字符串。2、5000.11 + 5000.11 + 5000.11 不等于 15000.33 而是 15000.329999999998。尤其在做金额比较时很讨厌,采用BigDecimal("5000.11")相加然后转成do

2012-03-13 23:39:23 622 1

原创 从小就喜欢北斗七星

自从小时候在星罗棋布的天空找到北斗七星之后就一直很喜欢,直到现在。        北斗是由天枢、天璇、天玑、天权、玉衡、开阳、摇光七星组成的。古人把这七星联系起来想象成为古代舀酒的斗形。天枢、天璇、天玑、天权组成为斗身,古曰魁;玉衡、开阳、摇光组成为斗柄,古曰杓。北斗星在不同的季节和夜晚不同的时间,出现于天空不同的方位,所以古人就根据初昏时斗柄所指的方向来决定季节:斗柄指东,天下皆春;斗柄指南

2011-11-27 22:54:39 1064

原创 开发闲聊(二)--eclipse工程目录中不显示红叉(代码错误提示)

没留意设置了什么地方导致eclipse目录不能显示代码编译不过所提示的红叉。后来找到原因并做如下修改错误提示就出来了。(@2@)项目上右键-->properties-->java compiler-->building-->enable project specific setting-->build path problems-->选中abort   Incomplete build pat

2011-11-25 19:00:59 19142 3

原创 dom写xml到字符串的小玩意儿

package com.howbuy.fds.webtx.manageself;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import org.a

2011-11-25 09:57:18 734

原创 OUT Look 使用小技巧

本人不太喜欢乱七八糟的东西混杂在一起,看上去头昏。更别说收件箱里挤了一堆各种邮件,每每从一堆里边找以前的邮件都很崩溃。于是乎就想着outlook肯定有更好用的功能只是自己没有去尝试。      设想着要是OUT Look能将开发相关的邮件收到一个单独的文件夹中该多好,这样就可以分门别类的收取邮件了。有点小想法于是乎就“摆渡”了一把。大喜,真有这样的功能。具体配置如下:1、“收件箱”点右键,

2011-11-19 20:26:38 5235 1

原创 开发闲聊(一)

闲逛看见一哥们儿博客中发表“关于JAVA String类中Bug ”的小插曲,于是乎好奇心再一次强烈起来,详细看了如下博文。             在采用String的split()方法的时候一定要注意:             String str ="111|l11111";              //System.out.println(Arrays.toString(st

2011-11-19 00:30:58 780

原创 开发中的小囧事(2)——做查询操作时会打印一堆update 语句,连续提交查询导致数据库等待锁

问题描述:小囧事(1)中做查询时hibernate智能的做了update,此时多次快速的提交查询请求时导致数据库短暂的等待锁,当无限制的快速提交N次之后,Hibernate报数据库连接异常(不能从池中获得一个连接)。问题思考:提交查询请求时候由于setter方法的问题导致Hi

2011-07-29 23:32:41 763

原创 开发中的小囧事(1)——做查询操作时会打印一堆update 语句???!!!

问题发现:开发中习惯打印sql语句。单纯的做查询的操作的时候无意间发现后台竟然打印了一堆select,紧接着又是一堆update.....。此时勾引起了我强烈的好奇心,为什么做查询的时候会update呢。 纠结的定位问题所在:debug了一番,问题的神秘感骤然增强,原因是,执行完

2011-07-28 23:53:08 527

Oracle存储过程实例使用显示游标

存储过程调用 Function 并使用 游标循环得到每一条数据然后更新本条数据。初学代码写的不是很好,希望能给初学存储过程的兄弟们提供一点借鉴哦。

2011-04-22

Oracle触发器修改自身表

1、行级触发器不支持 update 、select 、delete 对自身表的操作。 2、表级触发器 不支持 :new 和 :old对象 所以想要触发器对自身表数据做修该,则用行级触发器得到 :new 和 :old对象中的相关数据,然后将这样的数据保存到 package中,然后在语句级触发期中调用 package包中保存的数据,进行更新操作

2011-04-22

SWT/RCP/GC画可移动矩形框

用swt在shell上画一个矩形框,并且可以拖动矩形框,拖动的过程中自动擦除上一个矩形框。并且有动态拖动的效果。不影响背景图的显示。使用方法见类中注释

2011-03-16

ssh(Struts2.0) 整合小项目,供想自己ssh搭建框架的兄弟借鉴

使用struts2+spring+hiernate开发的小项目,供想自己搭建环境的兄弟们借鉴,使用了拦截器、过滤器做权限验证和字符集设置。以及spring配置hibernate数据源。数据库方面大家根据hibernate文件和数据源配置自己建立。 sb csdn

2010-12-14

ssh(Struts2.0) 整合小项目,供想自己搭建框架的哥们借鉴

使用struts2+spring+hiernate开发的小项目,供想自己搭建环境的兄弟们借鉴,使用了拦截器、过滤器做权限验证和字符集设置。以及spring配置hibernate数据源。数据库方面大家根据hibernate文件和数据源配置自己建立。

2010-12-14

RAP打包成War 所需的eclipse jar包,以及demo

RAP打包成War的过程需要如下 jar包

2010-09-30

RAP 打成war并发布到tomcat(操作步骤)

将rap 打包成 war,并发布到tomcat。打包所需的 eclipse jar包请见下一个资源

2010-09-30

RCP工程转成RAP,并在浏览器中运行

将RCP工程转成RAP工程,在浏览器中运行。

2010-09-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除