原创 JVM中產生“concurrent mode failure”導致FullGC的原因

原因: 【1】老年代中存活的數據太大,以致老年代沒有足夠空間支持分配,即導致concurrent-mode-failure 【2】如果長時間頻繁出現,有可能是老年代設置太小或者CMSGC後沒有進行壓縮的原因導致 【3】應用本身行爲變化,導

原创 系統架構師-基礎到企業應用架構-分層[上篇]

系統架構師-基礎到企業應用架構-分層[上篇] 一、前言       大家好,接近一年的時間沒有怎麼書寫博客了,一方面是工作上比較忙,同時生活上也步入正軌,事情比較繁多,目前總算是趨於穩定,可以有時間來完善以前沒有寫完的系列,也算是對自己這

原创 架構設計的技巧

架構設計 程序員除了掌握紮實的語言基礎,還需要掌握架構設計的能力,才能設計出優秀的軟件。架構設計有一些技巧:1、分層 一個軟件通常分爲: 表現層--UI部分 接口層--後臺服務的通訊接口部分 服務層--實際服務部分 存儲層—持久化存儲部分

原创 Transactional事務原理

這個是spring的聲明式事務管理,基於AOP編程,是一種動態代理模式。                                                                                   

原创 是Arthas找到熱點代碼

Arathas是阿里開源的一個JVM監控工具,可以實時在線排查jvm的問題,官網:https://github.com/alibaba/arthas 現在遇到一個問題,想知道一個方法的每秒執行次數,java自帶的那些命令都無法實現,所以找

原创 從0到1:構建強大且易用的規則引擎

從0到1:構建強大且易用的規則引擎 引言 2016年07月恰逢美團點評的業務進入“下半場”,需要我們在各個環節優化體驗、提升效率、降低成本。技術團隊需要怎麼做來適應這個變化?這個問題直接影響着之後的工作思路。 美團外賣的CRM業務步入成熟

原创 美團酒旅實時數據規則引擎應用實踐

背景 美團點評酒旅運營需求在離線場景下,已經得到了較爲系統化的支持,通過對離線數據收集、挖掘,可對目標用戶進行T+1觸達,通過向目標用戶發送Push等多種方式,在一定程度上提高轉化率。但T+1本身的延遲性會導致用戶在產生特定行爲時不能被實

原创 輕量級Java表達式引擎Aviator

簡介 Aviator是一個高性能、輕量級的 java 語言實現的表達式求值引擎, 主要用於各種表達式的動態求值。現在已經有很多開源可用的 java 表達式求值引擎,爲什麼還需要 Avaitor 呢? Aviator的設計目標是輕量級和高性

原创 當多線程併發遇到Actor

當多線程併發遇到Actor 把需要加鎖的對象都看作一個Actor,基於消息通知,順序執行;但是這樣qps下來了 多線程併發的難題 張大胖在做一個銀行相關的項目,寫了一個Account的類,用來表示一個用戶的銀行賬號,根據銀行的常規業務

原创 ThreadLocal的原理

注意ThreadLocalMap是使用弱引用來保存ThreadLocal對象 1)ThreadLocal的介紹 ThreadLocal是一個線程的內部存儲類,可以在每個線程的內部存儲數據,當某個數據的作用域應該對應線程的時候就應該使用

原创 漫談併發編程:Actor模型

  0x00 前言 文章結構 0x01 基本概念 什麼是Actor模型 消息和信箱 0x02 Akka中的Actor Actor System Actor的層級 Actor的生命週期 0x03 例子 1. HelloWorld 簡單

原创 軟件架構模式導讀(轉)

軟件架構模式 本文介紹了一下分層架構、事件驅動架構、broker架構(例子微博)、微內核架構(例子eclipse) 本文是我在閱讀O'Reilly免費的電子書 Software Architecture Patterns過程中做的筆

原创 合理配置Java線程池

  合理的配置線程池 要想合理的配置線程池,就必須首先分析任務特性,可以從以下幾個角度來進行分析: 1.       任務的性質:CPU密集型任務,IO密集型任務和混合型任務。 2.       任務的優先級:高,中和低。 3.     

原创 BIO NIOAIO 究竟什麼區別

  IO的方式通常分爲幾種,同步阻塞的BIO、同步非阻塞的NIO、異步非阻塞的AIO。 一、BIO      在JDK1.4出來之前,我們建立網絡連接的時候採用BIO模式,需要先在服務端啓動一個ServerSocket,然後在客戶端啓動

原创 枚舉實現單例模式的原理

單例的枚舉實現在《Effective Java》中有提到,因爲其功能完整、使用簡潔、無償地提供了序列化機制、在面對複雜的序列化或者反射攻擊時仍然可以絕對防止多次實例化等優點,單元素的枚舉類型被作者認爲是實現Singleton的最佳方法。