原创 第三方賬號登錄功能接入詳細流程(必看)

第三方賬號雖然是一個小的功能點,但是在設計過程中,我們依然要結合自身產品的特點來確定產品方案和產品流程。 本人在一家網絡遊戲公司工作,負責公司的基礎平臺性的產品。主要有用戶中心、充值/支付平臺、賬號密保APP等。我們公司的用戶中心之前沒有

原创 操作系統 -進程、線程、協程的區別

進程 不共享任何狀態 調度由操作系統完成 有獨立的內存空間(上下文切換的時候需要保存棧、cpu寄存器、虛擬內存、以及打開的相關句柄等信息,開銷大) 通訊主要通過信號傳遞的方式來實現(實現方式有多種,信號量、管道、事件等,通訊都需要過內核,

原创 內存溢出和內存泄露分析及解決方案

一.內存溢出和內存泄露的區別與聯繫   內存溢出 out of memory,指程序要求的內存超出了系統所能分配的範圍,出現out of memory;比如申請一個int類型,但給了它一個int才能存放的數,就會出現內存溢出,或者是創建一

原创 史上最詳細一致哈希算法

http://www.zsythink.net/archives/1182/

原创 開啓定時更新windows

按下Win+R組合鍵,輸入“gpedit.msc”回車 計算機配置 -> 管理模板 -> Windows組件 -> Windows更新 在右側雙擊“配置自動更新”,選擇“已啓用”。

原创 nginx是使用epoll。 epol是同步非阻塞,那nginx爲什麼是異步。

nginx不是使用epoll麼? epoll貌似是同步的吧! 那nginx所謂的異步非阻塞到底異步在哪裏? 爲什麼使用了epoll卻叫異步?   epoll確實是阻塞的. nginx的異步並不是指epoll的wait是異步的,而是指對於

原创 ArrayList和LinkedList有什麼區別(看完必懂)

ArrayList和LinkedList都實現了List接口,他們有以下的不同點:ArrayList是基於索引的數據接口,它的底層是數組。它可以以O(1)時間複雜度對元素進行隨機訪問。與此對應,LinkedList是以元素列表的形式存儲它

原创 Netty粘包拆包詳細總結

TCP黏包拆包 TCP是一個流協議,就是沒有界限的一長串二進制數據。TCP作爲傳輸層協議並不不瞭解上層業務數據的具體含義,它會根據TCP緩衝區的實際情況進行數據包的劃分,所以在業務上認爲是一個完整的包,可能會被TCP拆分成多個包進行發送,

原创 Netty解析Http協議的方式(詳細總結)

HttpServerCodec是最終類,不可繼承。websocket協議本身是基於http協議的,所以也可以使用http解編碼器  HttpServerCodec的功能有兩個:HttpRequestDecoder和HttpResponse

原创 這可能是最詳細的Java鎖總結了。看看這篇你就全明白了

Java 鎖分類 Java 中的鎖有很多,可以按照不同的功能、種類進行分類,下面是我對 Java 中一些常用鎖的分類,包括一些基本的概述 從線程是否需要對資源加鎖可以分爲 悲觀鎖 和 樂觀鎖 從資源已被鎖定,線程是否阻塞可以分爲 自旋鎖

原创 TCP擁塞控制算法簡介

最近花了些時間在學習TCP/IP協議上,首要原因是由於本人長期以來對TCP/IP的認識就只限於三次握手四次分手上,所以希望深入瞭解一下。再者,TCP/IP和Linux系統層級的很多設計都可以用於中間件系統架構上,比如說TCP 擁塞控制算法

原创 怎麼搭建一個高性能服務器

引言 本文檔的目的是爲了同大家分享多年來我在開發一種特定類型的應用時形成的一些觀點,而“服務器”只是對這類應用程序的一個不是那麼恰如其分的稱謂。更準確的說,我將描述的是一大類的程序,這類程序的設計使得它們能夠在每秒鐘內處理數量十分巨大的離

原创 面試必會 HashMap 線程不安全,它爲啥不安全呢?

我們都知道HashMap是線程不安全的,在多線程環境中不建議使用,但是其線程不安全主要體現在什麼地方呢,本文將對該問題進行解密。 1.jdk1.7中的HashMap 在jdk1.8中對HashMap做了很多優化,這裏先分析在jdk1.7中

原创 INFO [org.apache.zookeeper.ClientCnxn] - Opening socket connection to server zkserver/127.0.0.1:21

cmd窗口一直在報錯  INFO  [org.apache.zookeeper.ClientCnxn] - Opening socket connection to server zkserver/127.0.0.1:21 解決: 將ho

原创 Netty 粘包/半包原理與拆包實戰(史上最全)

寫在前面 大家好,我是作者尼恩。 爲了完成了一個高性能的 Java 聊天程序,在前面的文章中,尼恩已經再一次的進行了通訊協議的重新選擇。 這就是:放棄了大家非常熟悉的json 格式,選擇了性能更佳的 Protobuf協議。 在上一篇文章中