原创 服務端高併發分佈式架構演進之路

1. 概述 本文以淘寶作爲例子,介紹從一百個併發到千萬級併發情況下服務端的架構的演進過程,同時列舉出每個演進階段會遇到的相關技術,讓大家對架構的演進有一個整體的認知,文章最後彙總了一些架構設計的原則。 2. 基本概念 在介紹架構之前,爲了

原创 linux 查看並對外開放端口(防火牆攔截處理)

查看端口是否可訪問:telnet ip 端口號 (如本機的35465:telnet localhost 35465) 開放的端口位於/etc/sysconfig/iptables中 查看時通過 more /etc/sysconfig/ip

原创 npm 配置項registry修改爲淘寶鏡像

在使用npm 的過程中,搜索網上的資料基本上可以看到類似如下的描述:“npm是國外的,使用起來比較慢,我們這裏使用淘寶的cnpm鏡像”。初體驗,不知道淘寶cnpm鏡像爲何物。根據這句描述,我們應該可以理解有2件事要做: 1:找到淘寶的鏡像

原创 分佈式環境下實現分佈式鎖的關鍵技術

摘要:在日常開發中,應用大多數是分佈式部署的,經常會面臨分佈式環境下應用對數據操作的一致性問題。這時就需要找出一個在分佈式環境下同一個應用多個實例之間能夠訪問的臨界資源,並對該臨界資源做互斥訪問,從而保證數據一致性。本文結合筆者實際工作中

原创 高併發下接口冪等性解決方案

  一、冪等性概念  在編程中.一個冪等操作的特點是其任意多次執行所產生的影響均與一次執行的影響相同。冪等函數,或冪等方法,是指可以使用相同參數重複執行,並能獲得相同結果的函數。這些函數不會影響系統狀態,也不用擔心重複執行會對系統造成改變

原创 Linux 下Elasticsearch安裝教程

1、下載 下載點這裏:elasticsearch下載地址 2、解壓 解壓: tar -zxvf elasticsearch-6.6.2.tar.gz -C /opt/ 啓動:[root@localhost bin]#./elastics

原创 Git上傳項目提示Push rejected: Push to origin/master was rejected解決辦法

解決方案如下: 1.切換到自己項目所在的目錄,右鍵選擇GIT BASH Here,Idea中可使用Alt+F12 2.在terminl窗口中依次輸入命令: git pull git pull origin master git pull

原创 類加載器

類與類加載器 判斷類是否“相等” 任意一個類,都由加載它的類加載器和這個類本身一同確立其在 Java 虛擬機中的唯一性,每一個類加載器,都有一個獨立的類名稱空間。 因此,比較兩個類是否“相等”,只有在這兩個類是由同一個類加載器加載的前提下

原创 netstat 命令詳解

netstat命令是一個監控TCP/IP網絡的非常有用的工具,它可以顯示路由表、實際的網絡連接以及每一個網絡接口設備的狀態信息。 語法選項 netstat [選項] -a或--all:顯示所有連線中的Socket; -A<網絡類型>或

原创 一句話擼完重量級鎖、自旋鎖、輕量級鎖、偏向鎖、悲觀、樂觀鎖等

  重量級鎖?自旋鎖?自適應自旋鎖?輕量級鎖?偏向鎖?悲觀鎖?樂觀鎖?執行一個方法咋這麼辛苦,到處都是鎖。 今天這篇文章,給大家普及下這些鎖究竟是啥,他們的由來,他們之間有啥關係,有啥區別。 重量級鎖 如果你學過多線程,那麼你肯定知道鎖這

原创 Java開發必會的Linux命令

作爲一個Java開發人員,有些常用的Linux命令必須掌握。即時平時開發過程中不使用Linux(Unix)或者mac系統,也需要熟練掌握Linux命令。因爲很多服務器上都是Linux系統。所以,要和服務器機器交互,就要通過shell命令

原创 maven私服Nexus3.0安裝,配置,描述,權限管理

1.環境: Nexus3.X需要你的電腦上安裝了一個JDK,目前我使用的是JDK1.8(已經不支持1.7) 1.1 :Windows安裝JDK教程 1.2:Linux安裝JDK教程 1.3:Linux多個JDK隨時切換 1.

原创 ES問題解決:Elasticsearch health check failed

今天給測試環境安裝ES,啓動服務報出奇異bug 運行環境 spring boot : 2.1.2.RELEASE spring-data-elasticsearch :3.1.4.RELEASE elasticsearch: 6.6.1

原创 HotSpot 虛擬機對象探祕

對象的內存佈局 在 HotSpot 虛擬機中,對象的內存佈局分爲以下 3 塊區域: 對象頭(Header) 實例數據(Instance Data) 對齊填充(Padding) 對象頭 對象頭記錄了對象在運行過程中所需要使用的一些數據:

原创 類文件結構

JVM 的“無關性” 談論 JVM 的無關性,主要有以下兩個: 平臺無關性:任何操作系統都能運行 Java 代碼 語言無關性: JVM 能運行除 Java 以外的其他代碼 Java 源代碼首先需要使用 Javac 編譯器編譯成 .clas