<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          基于美團文章實現(xiàn)的動態(tài)線程池,已開源

          共 2217字,需瀏覽 5分鐘

           ·

          2021-12-05 08:46

          大家好, 我是龍臺

          給自己定了個小目標(biāo),hippo4j 年底達(dá)到 1k star!

          77db28a0ded30edeabd78f4883168478.webp

          GitHub:https://github.com/acmenlt/dynamic-threadpool

          Site:https://www.hippox.cn





          01

          為什么寫這個項目?



          相信很多程序員都希望一件事,那就是能夠參與到某款主流的中間件開發(fā),我也不例外

          雖然至今為止沒有參與主流中間件的開發(fā),但是無意中發(fā)現(xiàn)了一件更“有趣”的事情,hippo4j

          hippo4j 的起始還要從看了美團那篇線程池文章說起,Java線程池實現(xiàn)原理及其在美團業(yè)務(wù)中的實踐

          可惜的是美團動態(tài)線程池并沒有開源,而且去 GitHub、Gitee 等平臺搜索動態(tài)線程池,也沒有看到企業(yè)級可用的

          然后就合計自己寫,一來可以解決項目中的痛點,二來鍛煉自己的編碼能力

          2021.6.16 號開始,在 GitHub 創(chuàng)建項目并提交了第一行代碼

          9609c5fce1ed90091af302943b2c5ab2.webp

          截止目前 2021.11.22 號為止,開啟了為期六個月的編碼之路

          d9739474e87c783de91591b0fa2fa563.webp

          中間因為框架的設(shè)計不夠滿意,斷層了一段時間,所幸最終還是找到合適的路





          02

          hippo4j 框架介紹



          準(zhǔn)備用 hippo4j 官網(wǎng)的一句話來介紹

          強大的動態(tài)線程池,附帶監(jiān)控報警功能,打造輕量級運維監(jiān)控平臺

          (一)強大的動態(tài)線程池

          解決線程池參數(shù)不好預(yù)定義配置,完成核心線程、最大線程、阻塞隊列大小等參數(shù)的動態(tài)配置

          (二)附帶監(jiān)控報警功能

          基于 Java 原生線程池擴展監(jiān)控報警,報警類型包括:線程池活躍度、阻塞隊列容量以及拒絕策略等

          (三)打造輕量級運維監(jiān)控平臺

          hippo4j 平臺包括用戶權(quán)限、租戶、項目、報警、線程池配置等模塊;可實時查看線程池實例運行參數(shù),以及線程池運行歷史記錄

          最后,總結(jié)下我對于 hippo4j 產(chǎn)出的意義:為業(yè)務(wù)系統(tǒng)提高線上運行保障





          03

          如何推廣開源項目



          最早的前三個月,一直保持著悶頭寫代碼的習(xí)慣,因為不知道如何去推廣自己的項目

          后來看到?GitHub 漫游指南[1]?后,才算是對項目的推廣入了一些門道,這里簡短說明下

          編寫一個好的 README

          在一個開源項目里,README 是最重要的內(nèi)容。它快速地介紹了這個項目,并決定了它能不能吸引用戶:

          • 這個項目做什么?
          • 它解決了什么問題?
          • 它有什么特性?
          • hello, world 示例程序

          這個項目做什么?一句話文案

          比如:強大的動態(tài)線程池,附帶監(jiān)控報警功能,打造輕量級運維監(jiān)控平臺

          它解決了什么問題?

          通過上面一句話不能很好的知道這個項目的具體應(yīng)用場景,所以需要拋磚引玉將解決的問題帶出來

          88d7e3eb6e7dda6b4f031c69b373dab9.webp

          它有什么特性?

          當(dāng)我們有 A、B、C 幾個不同的框架的時候,作為一個開發(fā)人員,就需要對比他們的特性

          544891266b90b4ee68ce7d909a4cbc59.webp19c4746b1cf000194e77b7cdb8bb31d5.webp

          hello, world 示例程序

          在我們看完了上面的介紹之后,緊接著接一個 hello, world 的示例

          具體步驟便不在文章一一說明了,詳情查看官網(wǎng):https://hippox.cn/zh-cn/docs/run/runConsole.html

          多渠道推廣

          如果項目想要獲得更多的認(rèn)可,前提是項目要能被大家伙知道

          為此,hippo4j 曾在 CSDN、掘金、微信公眾號、開源中國等多個程序員交流平臺寫文章推廣

          當(dāng)流量上來后,就體現(xiàn)到上面流程的重要性。小伙伴讀過 README 以及運行過 Demo,大致也就明白了項目是做什么

          對項目有興趣,希望長期關(guān)注的小伙伴,自然會對項目進行 Star,方便跟進項目的成長

          f5f82a52ed2dfe2358b2ff5556ee885b.webp



          04

          前端控制臺



          這里貼幾張控制臺的頁面,幫助大家簡單認(rèn)識下 hippo4j

          線程池配置

          e5f8d92d226668aa9520736c10a4691b.webp

          線程池配置變更

          82cc0d46e19e865add0aa84f66e2e28b.webp

          線程池實例

          c3b7a6edf4b3f8e31560e2be1b4ace02.webp

          線程池運行時狀態(tài)

          be208a82a24c332343848fd5d0f8e262.webp

          報警通知

          7e37bf0956bf0fd3df020f50985dbc32.webp



          05

          未來規(guī)劃是什么?



          hippo4j 未來的版本規(guī)劃包括三方面,優(yōu)先級從上到下

          高可用部署

          hippo4j 屬于典型的 C/S 架構(gòu),1.0 版本 Server 端僅支持單機部署,因為內(nèi)存中保留著配置中心的數(shù)據(jù)

          1.0 發(fā)布后,下一目標(biāo)就是將 Server 端支持集群部署,真正意義支持高可用

          運行數(shù)據(jù)收集上報

          線程池運行過程中,對于數(shù)據(jù)的處理不會保留痕跡,比如線程池運行狀態(tài)、任務(wù)執(zhí)行耗時以及拒絕策略拋出次數(shù)等信息

          1.0 之后 hippo4j 會對線程池運行過程中產(chǎn)生的數(shù)據(jù),進行收集并上報服務(wù)端存檔,方便開發(fā)人員根據(jù)采集的數(shù)據(jù)預(yù)防或者回溯問題

          前端 UI 優(yōu)化

          在半個月之前,我?guī)缀鯖]有寫過前端代碼。如果追溯的話,那就是4年前寫 JQuery 的時候

          為了讓 hippo4j 能夠繼續(xù)走下去,不得不向命運“低了頭”,乖乖寫起了前端代碼

          讓后端來寫前端代碼,進而就導(dǎo)致 hippo4j 的控制臺界面還是有點糙的

          我是個樣式控,希望展現(xiàn)給大家的效果是:即實用又時髦。按照發(fā)展來看,這個重任還是要落到自己身上的





          06

          最后總結(jié)



          如果說看了上面的介紹,讓你對 hippo4j 產(chǎn)生了興趣,通過以下方式聯(lián)系到小編,不僅可以解答你對 hippo4j 項目的疑惑,同時也接受正向的功能建議

          屏幕前的小伙伴,覺得項目功能規(guī)劃、代碼設(shè)計還不錯的話,辛苦點個 ?? Star ,方便后續(xù)的查看

          GitHub:https://github.com/acmenlt/dynamic-threadpool

          Site:https://www.hippox.cn

          參考資料

          [1]

          GitHub 漫游指南: http://github.phodal.com/#%E5%A6%82%E4%BD%95%E6%8E%A8%E5%B9%BF


          瀏覽 181
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲无码特色毛片 | 91福利在线观看 | 人人艹人人 | 操逼网站进入国产 | 国产操逼视频播放 |