原创 關於解決系統接口冪等性問題的解決

什麼是冪等性? 對於同一個業務操作,不管調用多少次,在數據庫的存儲,或者得到的結果應該是一樣的。 冪等性的設計思想 以支付寶或者微信的充值爲例,在我們支付完之後,支付寶、微信會給我們回調,來通知我們的系統支付成功,而在這之前,我們系統中已

原创 高併發系列之三:有關並行的兩個重要定律

問題:是不是說我們的項目中,cpu的核數越多,咱們的代碼並行能力就越強呢? 上面兩個定律給出了結論: Amdahl強調:當串行換比例一定時,加速比是有上限的,不管你堆疊多少個CPU參與計算,都不能突破這個上限。 Gustafso

原创 Linux使用mailx發送郵件

使用場景 我們備份了數據庫腳本之後,因爲是Linux的定時任務,並不能知道到底備份成功了沒有,這樣我們就需要通知,告訴我們已經備份成功。 通知的同時我們可以將備份的腳本當做附件發送到我們郵箱,這樣及收到了通知有可以將備份腳本冗餘,

原创 《人性的弱點》之對待抱怨地安全方式

問題:我們在和談話的對方意見相悖的時候通常是怎麼處理的呢? 文章摘抄:        人們總是喋喋不休,期望藉此改變對方的觀點。請給對方一點說話的時間,聽聽他們的所思所想。他們比你更瞭解自己的生意和自己的難題,不妨向他們提問,讓他們告訴

原创 Linux 安裝RabbitMq 詳細步驟及踩坑記錄

安裝Erlang 由於RabbitMQ依賴Erlang, 所以需要先安裝Erlang。 Erlang的安裝方式大概有兩種: 從Erlang Solution安裝(推薦) # 添加erlang solutions源 $ wget h

原创 高併發系列之四:JMM相關的一些概念

JMM:java內存模型 併發程序比串行程序複雜的多,其中很重要的一個原因就是併發程序中數據訪問的一致性和安全性問題。如何保證在一個線程可以看到正確的數據?這在串行程序中就不是問題,但是在併發程序中,這卻成了最重要的一個問題。 假

原创 常用的Linux命令記錄

記錄一些常用的linux命令 到某一個目錄 cd 目錄名 查看文件內容 cat 文件名 編輯文件內容 vi vim 編輯之後保存退出使用命令 :wq 回車 查找用 /你要查找的內容 查看查找到的下一個 n

原创 高併發系列之五:進程和線程

進程和線程是操作系統的基本概念,抽象且不容易理解 計算機的核心是CPU,他承擔了所有的計算任務,他就像一個工廠,時刻在運行。 假定工廠的電力有限,同一時間只能給一個車間供電,也就是說,當一個車間工作時,其他的車間必須停工,言外之

原创 高併發系列之二:有關並行的兩個重要定律

問題:是不是說我們的項目中,cpu的核數越多,咱們的代碼並行能力就越強呢? 上面兩個定律給出了結論: Amdahl強調:當串行換比例一定時,加速比是有上限的,不管你堆疊多少個CPU參與計算,都不能突破這個上限。 Gustafso

原创 高併發系列之一:基礎概念

一、思維導圖 二、詳細介紹 1.同步(Synchronous)和異步(Asynchronous) 同步和異步來形容一次方法的調用,同步方法調用一旦開始,要進行下面的操作就必須等待方法的返回;異步方法更像是消息的傳遞,方法調用一旦

原创 高併發系列之二:併發級別

一、思維導圖 二、詳細說明 阻塞 當一個線程進入臨界區(公共資源)之後,其他的線程必須等待這個線程執行完畢之後才能進入臨界區。 無飢餓 線程排隊,不管優先級大小,先來的先進入,這樣就不會產生飢餓等待資源,即爲公平鎖,非公平鎖就是

原创 Windows 安裝 Gradle 詳細步驟

一、下載Gradle 下載 我這裏下載的是6.3版本 二、解壓並配置環境變量    三、配置GRADLE_HOME 四、在path中加入%GRADLE_HOME%\bin;    五、驗證 gradle -v

原创 Linux 安裝 ElasticSearch 詳細步驟及踩坑記錄

第一步:下載ElasticSearch 最新版本 舊版本 我這裏下載了舊版本,因爲現在的最新版本是7.6.1,我安裝的時候發現,安裝最新版本需要JDK11,而我電腦上安裝的是JDK8,所以我使用的是 Elasticsearch 6.8.

原创 Linux 安裝 JDK 詳細步驟

方式一:yum方式下載安裝 1、查找java相關的列表 yum -y list java* 或者 yum search jdk   2、安裝jdk yum install java-1.8.0-openjdk.x86_64

原创 完全搞懂 java中的“==”和“equals()”方法

一、" == " 對於基本類型來說,比較的是值 對於引用類型來說,比較的是他們的引用 注:這裏值得引用是什麼呢,在創建引用類型的時候,會把引用存到棧中,而真正的值存儲在堆中,而引用存儲了值在堆中的地址 String x