原创 基於消息隊列和消息應用狀態處理分佈式事務

 由於數據量的巨大,大部分Web應用都需要部署很多個數據庫實例。這樣,有些用戶操作就可能需要去修改多個數據庫實例中的數據。傳統的解決方法是使用分佈式事務保證數據的全局一致性,經典的方法是使用兩階段提交協議。     長期以來,分佈式事

原创 非XA式Spring分佈式事務

Spring應用的幾種事務處理機制     Java Transaction API和XA協議是Spring常用的分佈式事務機制,不過你可以選擇選擇其他的實現方式。理想的實現取決於你的應用程序使用何種資源,你願意在性能、安全、系統

原创 Spring 3.0 + Atomikos構建jta分佈式事務

Spring3.0已經不再支持jtom了,不過我們可以用第三方開源軟件atomikos(http://www.atomikos.com/)來實現。Atomikos是目前在分佈式事務管理中做得相當不錯的開源軟件。有10年以上的經驗,Ato

原创 Java自帶的性能監測工具用法簡介——jstack、jconsole、jinfo、jmap、jdb、jsta、jvisualvm

JDK內置工具使用 一、javah命令(C Header and Stub File Generator) 二、jps命令(Java Virtual Machine Process Status Tool) 三、jstack命令(

原创 分佈式事務最終一致性常用方案

   目前的應用系統,不管是企業級應用還是互聯網應用,最終數據的一致性是每個應用系統都要面臨的問題,隨着分佈式的逐漸普及,數據一致性更加艱難,但是也很難有銀彈的解決方案,也並不是引入特定的中間件或者特定的開源框架能夠解決的,更多的還是看

原创 web.xml文件的作用

每個javaEE工程中都有web.xml文件,那麼它的作用是什麼呢?它是每個web.xml工程都必須的嗎?  一個web中可以沒有web.xml文件,也就是說,web.xml文件並不是web工程必須的。  web.xml文件是用來初始化

原创 Base64Code 加密與解密

package org.jymf.utils; import java.io.ByteArrayOutputStream; public class Base64Code { private static char[] base64

原创 Java垃圾回收器總結

什麼是Java垃圾回收器 Java垃圾回收器是Java虛擬機(JVM)的三個重要模塊(另外兩個是解釋器和多線程機制)之一,爲應用程序提供內存的自動分配(Memory Allocation)、自動回收(Garbage Collect)

原创 Spring3.0+Hibernate+Atomikos集成構建JTA的分佈式事務--解決多數據源跨庫事務

一、概念 分佈式事務 分佈式事務是指事務的參與者、支持事務的服務器、資源服務器以及事務管理器分別位於不同的分佈式系統的不同節點之上。簡言之,同時操作多個數據庫保持事務的統一,達到跨庫事務的效果。 JTA JTA,即Java Tran

原创 Java虛擬機類加載機制

虛擬機類加載機制:虛擬機把描述類的數據從class文件加載到內存,並對數據進行校驗、轉換解析和初始化,最終形成可以被虛擬機直接使用的Java類型。 Java語言裏,類型的加載和連接過程是在程序運行期間完成的。   類的生命週期:

原创 java 內存區域及存放內容

1、程序計數器: 程序執行的字節碼指令,分支,循環,跳轉,異常處理,線程恢復等基礎功能都需要依賴程序計數器完成。 2、棧 主要存儲的是:局部變量表、操作棧、動態鏈接、方法出口等 信息 局部變量表:存

原创 Java虛擬機學習 - 對象訪問

對象訪問會涉及到Java棧、Java堆、方法區這三個內存區域。 如下面這句代碼: [java] view plain copy  print? Object objectRef = new Object();    

原创 關於分佈式事務、兩階段提交協議、三階提交協議

隨着大型網站的各種高併發訪問、海量數據處理等場景越來越多,如何實現網站的高可用、易伸縮、可擴展、安全等目標就顯得越來越重要。爲了解決這樣一系列問題,大型網站的架構也在不斷髮展。提高大型網站的高可用架構,不得不提的就是分佈式。在分佈式一致

原创 java 垃圾收集相關常用參數

參數 描述 UseSerialGC 虛擬機運行在Client模式下的默認值,打開此開關後,使用Serial+Serial Old的手機器組合進行內存回收 UseParNewGC 打開此開關之後,使用ParNew+CMS+Se

原创 java 如何判斷對象已死

已死的對象就是不可能被任何途徑使用的對象,有以下幾種方法判斷一個對象是否已經死了: 引用計數 給對象添加一個引用計數器,每當有一個地方引用他,計算器就加1;當引用失效時,計數器減1;任何時刻計數器爲0的對象就是死的對象。  1. 這