原创 Linux學習總結(57)——生產環境用戶權限管理規範

一、問題現狀 公司生產服務器通常上百臺,甚至上千臺上萬臺,操作人員很多(開發+運維+架構+DBA)。大家使用Linux服務器時,不同職能的員工水平不同,老手和新手員工熟知度不同,如果權限控制不當(如root權限氾濫),服務器的安全存在極大

原创 Java基礎學習總結(154)——Synchronized與Volatile、Synchronized與ReentrantLock概念及區別

一、Synchronized與Volatile的區別 首先需要理解線程安全的兩個方面:執行控制和內存可見。執行控制的目的是控制代碼執行(順序)及是否可以併發執行。內存可見控制的是線程執行結果在內存中對其它線程的可見性。根據JVM的內存模型

原创 Java基礎學習總結(153)——HashMap、Hashtable、ConcurrentHashMap的原理與區別

一、HashTable 底層數組+鏈表實現,無論key還是value都不能爲null,線程安全,實現線程安全的方式是在修改數據時鎖住整個HashTable,效率低,ConcurrentHashMap做了相關優化 初始size爲11,擴容:

原创 Java基礎學習總結(152)——JDK 1.7和 JDK 1.8中HashMap的實現有什麼不同?

一、初窺HashMap HashMap是應用更廣泛的哈希表實現,而且大部分情況下,都能在常數時間性能的情況下進行put和get操作。要掌握HashMap,主要從如下幾點來把握: jdk1.7中底層是由數組(也有叫做“位桶”的)+鏈表實現;

原创 Redis學習總結(16)——Redis 集羣的5種使用方式,及各自優缺點對比分析

一、常見使用方式 Redis 的幾種常見使用方式包括: Redis 單副本 Redis 多副本(主從) Redis Sentinel(哨兵) Redis Cluster Redis 自研 二、各種使用方式的優缺點 1、Redis 單副本

原创 權限系統設計學習總結(3)——多賬戶的統一登錄

前言 多賬戶系統是指,在我們互聯網應用當中,我們的應用會使用多個第三方賬號進行登錄,必須現在常用的APP(網易雲音樂)登錄方式包含:網易、微信、QQ。大部分的 App 都支持使用多個第三方賬號進行登錄,如:微信、QQ、微博等,我們把此稱爲

原创 Maven學習總結(33)——開發人員如何使用 Flyway 插件管理數據庫版本

一、前言、 想到要管理數據庫的版本,是在實際產品中遇到問題後想到的一種解決方案,當時各個環境的數據庫亂作一團,沒有任何一個人(開發、測試、維護人員)能夠講清楚當前環境下的數據庫是哪個版本,與哪個版本的應用相匹配,如何升級到與新版本的應用相

原创 敏捷開發系列學習總結(8)——創業公司研發團隊怎麼建設

前言 小編從小就是個喜歡挑戰、喜歡折騰的人。我一直認爲,寧做餓死創業狼,不做養肥打工狗。小編國內某著名重點高校計算機小碩,畢業後在世界著名500強做碼農。碼了幾年後,蘊藏於小編心底的創業激情就按捺不住了,於是小編裸辭,單槍匹馬出來闖江湖。

原创 Maven學習總結(50)——Maven Dependency的 Scope 屬性詳解

Dependency Scope  在POM 4中,<dependency>中還引入了<scope>,它主要管理依賴的部署。目前<scope>可以使用5個值:  compile,缺省值,適用於所有階段,會隨着項目一起發佈。  provid

原创 Maven學習總結(51)——Maven 常用屬性和常量說明

1.   通過 <properties> 元素用戶可以自定義一個或多個屬性,然後在 POM 的其他地方使用 ${ 屬性名稱 } 的方式引用屬性,這種做法的最大意義在於消除重複。 2.   Maven 共有六類屬性:   1) 內置屬性: 

原创 Maven學習總結(52)——Maven 配置文件密碼加密機制使用說明

前言 Apache Maven項目提供了便捷的密碼加密機制,該機制的最近更新時間爲2018-03-06。該機制目前只支持在命令行下的操作,如生成密碼的密文。此外,用戶還需要在${user.home}/.m2目錄下配置settings-se

原创 Spring Boot學習總結(21)——SpringBoot集成Redis等緩存以註解的方式優雅實現冪等,防千萬次重複提交實例代碼

前言 在實際的開發項目中,一個對外暴露的接口往往會面臨很多次請求,我們來解釋一下冪等的概念:任意多次執行所產生的影響均與一次執行的影響相同。按照這個含義,最終的含義就是 對數據庫的影響只能是一次性的,不能重複處理。如何保證其冪等性,通常有

原创 Linux學習總結(55)——Linux 運維常用腳本

同步本機時間 ntpdate 210.72.145.44 清除系統緩存,空出更多內存 free && sync && echo 3 > /proc/sys/vm/drop_caches && free 殺掉殭屍進程 kill $(ps -

原创 App後臺開發運維和架構實踐學習總結(13)——OAuth 2.0 概述流程理解

一、應用場景 爲了理解OAuth的適用場合,讓我舉一個假設的例子。有一個"雲沖印"的網站,可以將用戶儲存在Google的照片,沖印出來。用戶爲了使用該服務,必須讓"雲沖印"讀取自己儲存在Google上的照片。 問題是隻有得到用戶的授權,

原创 Nginx學習總結(14)——Nginx配置參數詳細說明與整理

#定義Nginx運行的用戶和用戶組 user www www; # #nginx進程數,建議設置爲等於CPU總核心數. worker_processes 8; # #全局錯誤日誌定義類型,[ debug | info | notice