原创 zookeeper 學習,詳細瞭解

ZooKeeper是一個分佈式的,開放源碼的分佈式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。它是一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分佈式同步

原创 mysql 索引系列、讀寫分離、主從複製

mysql server組成 數據庫連接池:採用連接池,減少頻繁的開關連接 連接器-->分析器-->優化器-->執行器 連接器:控制用戶的連接 分析器:詞法分析,語法分析 優化器:優化sql語句,規定執行流程 執行器:sql語句的實際執

原创 spring框架、alibaba nacos、sentinel 使用、nacos沒看到應用、sentinel控制檯看不到應用

框架 框架就是一些類和接口的集合,通過這些類和接口協調來完成一系列的程序實現。JAVA框架可以分爲三層,表示層,業務層和物理層。框架又叫開發中的半成品,它不能提供整個web應用程序的所有東西,但是有了框架,我們就可以集中精力進行業務邏輯的

原创 面試常問題彙總、redis 、 mangodb 、 memcache對比

 redis 、 mangodb 、 memcache 都是NoSQLs數據庫:非關係型數據庫。mysql就是關係型數據庫。   redis mongodb memcache 數據類型 五大類型 string、list、hash、sor

原创 JAVA 容器,LinkedList、arraylist 源碼分析。容器、集合類對比,arraylist、vector、

  List 與Set接口 Collection 接口存儲一組不唯一、無序的對象 List接口存儲一組不唯一、有序(插入順序)的對象 Set接口存儲一組唯一、無序的對象 Map接口存儲一組鍵值對象,提供key到value的映射   s

原创 多線程與高併發編程總結、提升QPS

線程啓動的三種方式 1. new Thread().start() 2.new Runnable().start(); 3.使用線程池。Executors.newCachedThreadPool() 線程的六種狀態 1.new 新建一個線

原创 Java 內存模型:存儲器、緩存行、僞共享、cpu亂序、指令重排

存儲器層次結構 緩存行 緩存行是爲了執行的更快。intel 的緩存行大小是64字節。 僞共享:如果,x,y 在一起。爲了提高效率,會一起讀到L2 裏面,當多線程時,左邊L2和右邊L2可能都進行了讀取。左邊L2 修改了X,右邊L2修改了

原创 JVM 調優理論知識:垃圾回收。常見垃圾回收器、GC算法。PC、PN、CMS、PO、G1、ZGC,JVM GC算法

  爲什麼java需要性能調優? 防止內存被撐爆,回收掉不被使用的對象。讓有限的空間做無限的可能。 爲什麼java需要採用分代回收思想? 讓不被使用或使用較少的對象,儘可能在年輕代中被回收,減少full GC,減少STW的時間,提高性能。

原创 BIO、NIO、epoll、AIO

早期BIO ,blockingIO,阻塞IO。Linux下一切皆文件,socket即讀文件描述符(fd)。當建立多個連接時,如下圖。 例如fd 8 的client連接一直沒返回,導致 read  fd8會進行阻塞,一直等待返回。read

原创 redis的消息訂閱、pipeline管道命令、事務、EX過期時間、緩存LRU

  Redis 管道(Pipelining) Redis 管道(Pipelining):一次請求/響應服務器能實現處理新的請求即使舊的請求還未被響應。這樣就可以將多個命令發送到服務器,而不用等待回覆,最後在一個步驟中讀取該答覆。 管道的作

原创 JVM調優實戰:GC、Parallel、CMS、G1 常用參數,G1介紹、CPU100%排查

OOM:OutOfMemory。內存溢出 cpu 100%: 使用top,查看佔用cpu比較高的進程,使用top -Hp  進程ID ,查看對應的佔用cpu較高的線程。如果是java應用,使用 jstack 導出該線程的堆棧。然後查看哪個

原创 spring cloud eureka 集羣搭建

通過配置文件多集羣搭建   在 application.properties 中指定要加載的配置文件 #加載的配置文件,配置文件必須以 application- 開頭,值爲- 後面的值 spring.profiles.active=

原创 spring boot集成spring cloud eureka搭建報錯

一路坎坷,記錄下來。 1. External libraries 下面沒出現maven 包。 我這個是修復好了。重建了N次 解決1: 點擊圖中箭頭所指圖標,有時候好使,需要試試。 解決2:如下圖,刪的只留下兩個文件重啓。 2. @Sp

原创 序列化單例class到文件並讀取

class TestSave implements Serializable { static final long serialVersionUID = 42L; private static class Sin

原创 全網唯一dubbo 生動講解

dubbo 說白了,就是一種 http 調用。 只不過,很多東西不用你自己做,已經幫你封裝好了。所以使用起來很方便。 提供服務方,會對編寫的接口進行封裝,並緩存起來,後續使用。 調用方,會對需要調用的接口類封裝,緩存起來,後續使用。 所以