netty實戰之百萬級流量NioEventLoopGroup執行緒數配置
編寫netty服務端程式的時候,會使用到兩個執行緒組
EventLoopGroup parentGroup = new NioEventLoopGroup();
EventLoopGroup childGroup = new NioEventLoopGroup();
那麼parentGroup和childGroup分別應該設定多少個執行緒呢?
關於netty的執行緒組概念,李林鋒的Netty系列之Netty執行緒模型已經有詳細介紹了,這裡不詳細說了。
如果你的應用服務的QPS只是幾百萬,那麼parentGroup只需要設定為2,childGroup設定為4
EventLoopGroup parentGroup = new NioEventLoopGroup(2, new DefaultThreadFactory("server1", true));
EventLoopGroup childGroup = new NioEventLoopGroup(4, new DefaultThreadFactory("server2", true));
目前自己參與的應用,QPS是一百多萬,上面的設定是完全可以應付的。
至於netty客戶端程式,設定4個執行緒。
EventLoopGroup workGroup = new NioEventLoopGroup(4, new DefaultThreadFactory("client" , true));
至於應用如果需要承受上千萬上億流量的,需要另外調整執行緒數。
這些執行緒數一般都不是寫死的,一種是設定到環境變數裡,而更好的方式是在JAVA程序啟動的時候,指定引數,將執行緒數設定進去。
-Dnetty.server.parentgroup.size=2 -Dnetty.server.childgroup.size=4
應用的程式碼裡可以通過
int parentThreadGroupSize = Integer.getInteger("netty.server.parentgroup.size");
int childThreadGroupSize = Integer.getInteger("netty.server.childgroup.size" );
獲取到。
相關推薦
netty實戰之百萬級流量NioEventLoopGroup執行緒數配置
編寫netty服務端程式的時候,會使用到兩個執行緒組 EventLoopGroup parentGroup = new NioEventLoopGroup(); EventLoopGroup childGroup = new NioEventL
web應用效能測試-Tomcat 7 連線數和執行緒數配置
原文:http://www.jianshu.com/p/8445645b3aff 引言 這段時間折騰了哈java web應用的壓力測試,部署容器是tomcat 7。期間學到了蠻多散碎的知識點,及時梳理總結,構建良好且易理解的知識架構把它們組織起來,以備忘。 對we
Netty遊戲伺服器實戰開發(8):利用redis或者zookeeper實現3pc分散式事務鎖(二)。支撐騰訊系列某手遊百萬級流量公測
導讀:在上篇文章中介紹了分散式事務專案的基本原理和工程元件,我們瞭解到了分散式事務的理論知識。處於實戰的經驗,我們將理論知識使用到實際專案中。所以我們將藉助idea中maven工程 來實戰我們的專案。 回到正文: 在上篇文章中我們已經把需要的準備工作做好了。現在
資料庫SQL優化大總結之 百萬級資料庫面試優化方案
網上關於SQL優化的教程很多,但是比較雜亂。近日有空整理了一下,寫出來跟大家分享一下,其中有錯誤和不足的地方,還請大家糾正補充。 這篇文章我花費了大量的時間查詢資料、修改、排版,希望大家閱讀之後,感覺好的話推薦給更多的人,讓更多的人看到、糾正以及補充。 一、百萬級資料庫優化
如何用 Netty 設計一個百萬級推送服務?
1. 背景 1.1. 話題來源 最近很多從事移動網際網路和物聯網開發的同學給我發郵件或者微博私信我,諮詢推送服務相關的問題。問題五花八門,在幫助大家答疑解惑的過程中,我也對問題進行了總結,大概可以歸納為如下幾類: 1,Netty是否可以做推送伺服器? 2,如果使用Net
效能優化實戰:百萬級WebSockets和Go語言
SegmentFault 首頁 問答 專欄 講堂 發現 搜尋 立即登入免費註冊
資料庫SQL優化大總結之 百萬級資料庫優化方案
網上關於SQL優化的教程很多,但是比較雜亂。近日有空整理了一下,寫出來跟大家分享一下,其中有錯誤和不足的地方,還請大家糾正補充。 這篇文章我花費了大量的時間查詢資料、修改、排版,希望大家閱讀之後,感覺好的話推薦給更多的人,讓更多的人看到、糾正以及補充。 1.對查詢進行
資料庫SQL優化大總結之百萬級資料庫優化方案
網上關於SQL優化的教程很多,但是比較雜亂。近日有空整理了一下,寫出來跟大家分享一下,其中有錯誤和不足的地方,還請大家糾正補充。 這篇文章我花費了大量的時間查詢資料、修改、排版,希望大家閱讀之後,感覺好的話推薦給更多的人,讓更多的人看到、糾正以及補充。 1.對查詢進行優化
Jetty實戰之 嵌入式Jetty整合Spring執行
本文連結:http://blog.csdn.net/kongxx/article/details/72271071. 首先修改pom.xml檔案,新增spring的依賴項<project xmlns="http://maven.apache.org/POM/4.0.0"
資料庫SQL優化大總結1之- 百萬級資料庫優化方案
一、百萬級資料庫優化方案1.對查詢進行優化,要儘量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。2.應儘量避免在 where 子句中對欄位進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描,如:select id from t
netty NioEventLoopGroup 執行緒名稱設定
在初始化workergroup的時候 如果不指定ThreadFactory,那麼將使用netty預設的ThreadFactory DefaultThreadFactory 比如在日誌輸出的可以看出執行緒名稱是 2017 一月 11 16:34:40.420 [nioEven
實戰Java高併發程式設計之Java記憶體模型和執行緒安全
Java記憶體模型 原子性: 是指一個操作是不可中斷的.即使多個執行緒一起執行的時候,一個操作一旦開始,就不會被其他執行緒干擾. 一般CPU的指令是原子的. Q:i++是原子操作嗎? A:不是.
IIS 之 連線數、併發連線數、最大併發工作執行緒數、佇列長度、最大工作程序數
轉載: 參考:https://blog.csdn.net/enweitech/article/details/79815137 https://blog.csdn.net/enweitech/article/details/79815137 https://blog.csdn.net/b
多執行緒、多程序之比較,以及三種執行緒模型。
工作幾年找工作幾乎總會被問,從最開始的從網上看答案,到現在憑自己的經驗去說,這個問題似乎也是經驗積累的一個驗證,最近沒事就總結一下吧: 程序和執行緒的定義、比較等: 程序:處於活動狀態的計算機程式。程序就是在作業系統中 執行特定的任務,程序針對
Jmeter之Bean shell使用(三)——執行緒組之間的引數傳遞
場景測試中,一次登入後做多個介面的操作,然後登入後的uid需要關聯傳遞給其他介面傳送請求的時候使用。 1、在登入介面響應資訊中提取uid欄位值 1>login請求 -->新增 -->後置處理器--> bean shell postprocessor 2>
C# 多執行緒學習系列四之取消、超時子執行緒操作
1、簡介 雖然ThreadPool、Thread能開啟子執行緒將一些任務交給子執行緒去承擔,但是很多時候,因為某種原因,比如子執行緒發生異常、或者子執行緒的業務邏輯不符合我們的預期,那麼這個時候我們必須關閉它,而不是讓它繼續執行,消耗資源.讓CPU不在把時間和資源花在沒有意義的程式碼上.
Java多執行緒-併發之如何制定多個執行緒的執行順序?
文章目錄 如何讓10個執行緒按照順序列印0123456789? 程式碼如下: 1.建立一個鎖物件類 2.建立一個執行緒類 3.測試類 如何讓10個執行緒按照順序列印012
Unity之C#——非同步委託開啟執行緒,三種方法檢測結束
Unity之C#——非同步委託開啟執行緒,三種方法檢測結束 原始碼如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using
netty原始碼解解析(4.0)-5 執行緒模型-EventExecutorGroup框架
上一章講了EventExecutorGroup的整體結構和原理,這一章我們來探究一下它的具體實現。 EventExecutorGroup和EventExecutor介面 io.netty.util.concurrent.EventExecutorGroup j
C# 多執行緒六之Task(任務)三之任務工廠 C# 多執行緒六之Task(任務)二
1、知識回顧,簡要概述 前面兩篇關於Task的隨筆,C# 多執行緒五之Task(任務)一 和 C# 多執行緒六之Task(任務)二,介紹了關於Task的一些基本的用法,以及一些使用的要點,如果都看懂了,本文將介紹另一個Task的特殊用法,前面介紹了,如何通過一個父任務建立多個子任務,且這