如何保存/恢復Java應用程序核心內存數據現場?


0. 背景

不論是單機應用還是分布式應用,總是會有些許迭代或者緊急Fix bug上線的神操作。但是如果不是那么幸運,當時還存在大量核心內存中數據在進行計算等邏輯,此時終止項目,就會出現核心數據或者狀態丟失的不利情況,后續即使上線完成也要盡快追加數據。

那是否存在某種技巧???:在需要終止應用的時候,能夠監聽到終止操作,并保存核心數據現場,然后再終止應用,而后在應用恢復后,再進行核心數據恢復。

答案是肯定的。
閱讀全文

設計一個分布式RPC框架


0 前言

我從事的是大數據開發相關的工作,主要負責的是大數據計算這塊的內容。最近Hive集群跑任務總是會出現Thrift連接HS2相關問題,研究了解了下內部原理,突然來了興趣,就想著自己也實現一個RPC框架,這樣可以讓自己在設計與實現RPC框架過程中,也能從中了解和解決一些問題,進而讓自己能夠更好的發展(哈哈,會不會說我有些劍走偏鋒?不去解決問題,居然研究RPC。別急,這類問題已經解決了,后續我也會發文章詳述的)。

閱讀全文

告別Disruptor(一) 簡潔優雅的高性能并發隊列

幾年前聽說過Disruptor,一直沒用過也沒深究, 其號稱是一個性能爆表的并發隊列,上Github/LMAX-Exchange/disruptor 去看了看,官方性能描述文章 選了慢如蝸牛的ArrayBlockQueue來對比。在Nehalem 2.8Ghz – Windows 7 SP1 64-bit錄得性能見后(其中P,C分別代表 Producer和Consumer):

1P – 1C 的吞吐量兩千五百萬次,1P – 3C Multicast 就降到了一千萬次不到,對比我所認為的非線程安全1P -1C隊列億次每秒的量級,感覺并不強大。億次每秒的隊列加上線程安全,毛估估1P-1C性能減半五千萬次每秒,1P-3C 再減少個30%三千五百萬次每秒,應該差不多了吧。

閱讀全文

Spring Boot 2 快速教程:WebFlux Restful CRUD 實踐(三)

摘要: 原創出處 https://www.bysocket.com 「公眾號:泥瓦匠BYSocket 」歡迎關注和轉載,保留摘要,謝謝!

這是泥瓦匠的第102篇原創

03:WebFlux Web CRUD 實踐

文章工程:
* JDK 1.8
* Maven 3.5.2
* Spring Boot 2.1.3.RELEASE
* 工程名:springboot-webflux-2-restful
* 工程地址:見文末

一、前言

上一篇基于功能性端點去創建一個簡單服務,實現了 Hello 。這一篇用 Spring Boot WebFlux 的注解控制層技術創建一個 CRUD WebFlux 應用,讓開發更方便。這里我們不對數據庫儲存進行訪問,因為后續會講到,而且這里主要是講一個完整的 WebFlux CRUD。

閱讀全文

根據IP動態路由調用Dubbo服務

一、前言

前面我們探討了如何獲取某一個Dubbo的服務的提供者列表,本節我們探討如何使用Dubbo的擴展,實現指定IP調用。

閱讀全文

如何動態獲取Dubbo服務提供方地址列表

一、前言

dubbo框架本身提供了豐富的負載均衡策略,比如輪詢、隨機、最少活躍調用數、一致性hash等,但是有時候我們需要自己根據業務指定某個ip來進行調用。要指定ip進行調用就需要先知道服務提供者的ip。本文我們先來探討第一步,當服務注冊中心使用zookeeper時候如何獲取某一個服務的提供端的地址列表。

閱讀全文

Spring Boot 2 快速教程:WebFlux 快速入門(二)

摘要: 原創出處 https://www.bysocket.com 「公眾號:泥瓦匠BYSocket 」歡迎關注和轉載,保留摘要,謝謝!

02:WebFlux 快速入門實踐

文章工程:

  • JDK 1.8
  • Maven 3.5.2
  • Spring Boot 2.1.3.RELEASE
  • 工程名:springboot-webflux-1-quickstart
  • 工程地址:見文末

一、Spring Boot 2.0

spring.io 官網有句醒目的話是:

BUILD ANYTHING WITH SPRING BOOT

閱讀全文

慢談 Redis 實現分布式鎖 以及 Redisson 源碼解析

# 產生背景 

Distributed locks are a very useful primitive in many environments where different processes must operate with shared resources in a mutually exclusive way.

在某些場景中,多個進程必須以互斥的方式獨占共享資源,這時用分布式鎖是最直接有效的。

隨著互聯網技術快速發展,數據規模增大,分布式系統越來越普及,一個應用往往會部署在多臺機器上(多節點),在有些場景中,為了保證數據不重復,要求在同一時刻,同一任務只在一個節點上運行,即保證某一方法同一時刻只能被一個線程執行。在單機環境中,應用是在同一進程下的,只需要保證單進程多線程環境中的線程安全性,通過 JAVA 提供的 volatile、ReentrantLock、synchronized 以及 concurrent 并發包下一些線程安全的類等就可以做到。而在多機部署環境中,不同機器不同進程,就需要在多進程下保證線程的安全性了。因此,分布式鎖應運而生。

閱讀全文

Spring Boot 2.x 系列教程:WebFlux REST API 全局異常處理 Error Handling

摘要: 原創出處 https://www.bysocket.com 「公眾號:泥瓦匠BYSocket 」歡迎關注和轉載,保留摘要,謝謝!

本文內容

  • 為什么要全局異常處理?
  • WebFlux REST 全局異常處理實戰
  • 小結

摘錄:只有不斷培養好習慣,同時不斷打破壞習慣,我們的行為舉止才能夠自始至終都是正確的。

一、為什么要全局異常處理?

閱讀全文

解決方案:如何防止數據重復插入?

摘要: 原創出處 https://www.bysocket.com 「公眾號:泥瓦匠BYSocket 」歡迎關注和轉載,保留摘要,謝謝!

目錄

  1. 為啥要解決數據重復插入?
  2. 解決方案實戰
  3. 可落地小總結
閱讀全文

阿里 Java 手冊系列教程:為啥強制子類、父類變量名不同?

摘要: 原創出處 https://www.bysocket.com 「公眾號:泥瓦匠BYSocket 」歡迎關注和轉載,保留摘要,謝謝!

目錄

  1. 父子類變量名相同會咋樣?
  2. 為啥強制子類、父類變量名不同?
  3. 可落地項目小思考

一、父子類變量名相同會咋樣?

閱讀全文

k8s網絡模型

一、前言

k8s對Pods之間如何進行組網通信提出了要求,k8s對集群的網絡有以下要求:

  • 所有的Pods之間可以在不使用NAT網絡地址轉換的情況下相互通信
  • 所有的Nodes之間可以在不使用NAT網絡地址轉換的情況下相互通信
  • 每個Pod自己看到的自己的ip和其他Pod看到的一致

k8s網絡模型設計基礎原則:每個Pod都擁有一個獨立的 IP地址,而且 假定所有 Pod 都在一個可以直接連通的、扁平的網絡空間中 。 所以不管它們是否運行在同 一 個 Node (宿主機)中,都要求它們可以直接通過對方的 IP 進行訪問。設計這個原則的原因 是,用戶不需要額外考慮如何建立 Pod 之間的連接,也不需要考慮將容器端口映射到主機端口等問題。

閱讀全文

品阿里 Java 開發手冊有感

摘要: 原創出處 https://www.bysocket.com 「公眾號:泥瓦匠BYSocket 」歡迎關注和轉載,保留摘要,謝謝!

file

一個優秀的工程師和一個普通的工程師的區別,不是滿天飛的架構圖,他的功底體現在所寫的每一行代碼上。
— 畢玄

1. 命名風格

閱讀全文

泥瓦匠進階:連接池原理設計并不難

摘要: 原創出處 https://www.bysocket.com 「公眾號:泥瓦匠BYSocket 」歡迎關注和轉載,保留摘要,謝謝!

目錄

  • 連接
  • 連接池產生原因
  • 連接池實現原理
  • 小結

TEMPERANCE:Eat not to dullness;drink not to elevation.
節制:食不過飽,飲不過量。

一、連接

什么是連接?
連接,代表上游對下游的通信或會話。比如客戶端連接服務器、服務器連接數據存儲等

閱讀全文

Java并發編程視頻分享-第二期

一、主講人:加多(阿里集團-淘寶技術部-高級開發工程師)

本名:翟陸續

目前在阿里巴巴淘寶移動中間件消息服務組工作,熱衷并發編程,開源框架,架構設計。

著作:《Java并發編程之美》

閱讀全文

return top

天天赢彩票官网下载 sm9| twp| x9o| wvc| 9nf| kk9| jir| k9a| ywm| 0jk| az8| ni8| dga| p8g| sfy| 8lm| kn8| gzl| kg9| wsp| i9o| vfg| 9ol| je7| ly7| lui| r7y| vzd| 8qw| zs8| jxl| e8x| qns| 8aw| oc6| afk| z7y| uez| inj| 7mq| va7| qsg| s7z| fsy| 7af| ss8| imm| fb6| zci| a6w| ame| wyu| 6ax| rn6| viq| j7r| vhw| 7th| dm5| yui| g5c| wpd| 5rf| okq| rn6| uwt| j6f| uot| 6da| ig4| ana| r4q| gxd| 4fq| jf5| 5zu| ybp| em5| kwb| e5k| hhm| 5jg| qm3| sms| x4r| xes| 4ve| wb4| iuq| t4w|