Blog

Kicinta Database-yada Iyadoon Xiriiro Dhintay Lahayn

App-yada daabacan ee Mythex, iyo database-yadooda, way seexdaan markay ka fariisan yihiin. Marka app-ku kor u kacayo, wuxuu codsigiisa koowaad ku hayn karaa 10–12 ilbiriqsi, sababtoo ah wuxuu isku dayayay in uu dib u isticmaalo xiriirrada database oo dhintay intii uu seexday. Hadda waxaan u dhigaynaa app-yada Spring Boot settings database oo ammaan ku ah seexashada, waxaanan u sheegnaa agent-ka inuu dhiso app-yada stack kasta si isku mid ah. Platform-ka martigelinta, codsiga koowaad ee kadib kicinta wuxuu ka soo degay 12.7 ilbiriqsi ilaa 2.3 ilbiriqsi.

Sababta app-yada iyo database-yadu seexdaan

App daabacan oo Mythex ah wuxuu ku shaqeeyaa mishiin joogsada markii daqiiqado yar oo fariisan ay soo maro, database-keeduna waa serverless Postgres oo seexda shan daqiiqo oo fariisan kadib, oo wuxuu toosaa codsiga soo socda. Taasi waa wax ka joojiya app-ka fariisan inuu qaali noqdo: waxaad lacag ka bixisaa wixii database-ku dhab ahaan isticmaalay, app seexday wuxuu compute-ka ku bixin maayo. Waxaan ku qorna ka qoraal ku saabsan dhinaca lacagta ee billing databases by what they actually use.

Dhibaatadu waa in labadaba ay si kala duwan seexdaan, mana isku raacaan waxa xiriir uu yahay.

Calaamadda: booqasho bilow oo gaabis ah

Inta badan app-yada server-ka waxay hayaan connection pool: tiro yar oo xiriirro database oo furan oo diyaar ah, si codsi kasta uusan u bixin kharashka xiriir cusub. Taasi waa naqshad sax ah app-ka had iyo jeer shaqeeya.

Waxa dhaca seexashada:

  1. App-ku wuu shaqeynayaa, oo wuxuu hayaa xiriiro fudud oo fariisan oo pool-keeda ku jira.
  2. Qof ma booqdo. Mishiinka app-ku wuu joogsadaa — qabsaday, pool-kiisa oo sidaas ku jira.
  3. Database-ku wuu seexdaa wuuna tuuraa dhinacisa xiriirrada oo dhan.
  4. Obiye ayaa yimaada. App-ku wuu kor u kacaa sida uu ahaa, weli wuxuu hayaa xiriiro database-ku aanu ogayn.
  5. Pool-ku wuxuu bixiyaa mid ka mid ah xiriirradaas. Waa inuu ogaado inuu dhintay — isaga oo isku dayaya oo sugaya — ka hor inta uusan iska tuurin.

App Spring Boot ah, xaqiijinta xiriirrada dhintay waxay joojisay codsiga koowaad qiyaastii 10 ilbiriqsi ka hor inta aysan ku fashilmin "Connection is not available". Obiyaha waxay u muuqatay in site-ku si aamusan u joogsaday, kadibna waxaa laga yaabaa in uu cillad muujiyo.

Sababta app-yada Spring ay ugu dhibsanaayeen

Spring Boot waa framework Java caan ah, wuxuuna isticmaalaa pool xiriir oo la yiraahdo HikariCP si caadi ah. Spring waxay pool-ka ka habayn kartaa settings, oo ay ku jiraan tirada xiriirrada fariisan ee la hayo.

Laakiin Mythex wuxuu mid kasta oo app ah siiyaa database-keeda hal DATABASE_URL oo qaabka postgresql://user:pass@host/db leh. Spring ma akhriyi karto qaabkaas si toos ah. Sidaas darteed app-yada Spring ee Mythex lagu dhisay waxay dhisi jireen pool-kooda koodka gudihiisa iyagoo falanqeynaya URL-kaas — pool-ka gacanta lagu dhisay wuxuu iska indha tiray dhammaan settings-yada spring.datasource.* ee Spring. Xitaa haddii qof yaqaan settings-ka pool-ka ee saxda ah, meel uusan ku dhaqmi lahayn ma jirin.

Hagaajinta 1: settings Spring isticmaali karto

Marka mashruuc uu leeyahay database, hadda wuxuu sidoo kale helaa environment variables uu Spring si dabiici ah u akhriyo:

  • SPRING_DATASOURCE_URL, SPRING_DATASOURCE_USERNAME iyo SPRING_DATASOURCE_PASSWORD, oo laga beddelay DATABASE_URL (SSL waa la rabaa haddii URL-ku si kale u sheegin).
  • Settings-yada pool-ka oo seexashada ka badbaadiya:
SettingQiimahaSababta
Xiriirrada fariisan ee ugu yar0Waxba ha furin codsiga iyo codsiga, sidaas darteed waxba ma dhinto
Waqtiga fariinta (idle timeout)30 ilbiriqsiXiriirrada aan la isticmaalin si dhakhso ah u xir
Nolosha ugu badan (maximum lifetime)2 daqiiqoXiriir kasta ka dib intaanu duuban, hore u tuur
Waqtiga xiriirka (connection timeout)5 ilbiriqsiHa joojin codsi muddo dheer haddii database-ku gaabiyo jawaabta

Adigoo aan xiriirro fariisan hayn, app-ka la kiciyay wuxuu furayaa hal xiriir cusub halkii uu ku dhex mari lahaa kuwa dhintay.

Marka caddaynta ayaa jira, Spring wuxuu pool-ka dhisaa isagu, settings-yadana way dhaqmaan. Wax kasta oo mashruucu horey u dejiyay had iyo jeer ayaa mudan; annagu waxaan buuxinaynaa kaliya kuwa maqan. App-yada aan Spring ahayn waxay iska indha tiraan doorsoomayaashaan.

Faahfaahin kaliya ayaa ku dhowaaday inay wax aan samayn

Spring waxay environment variables ku dhigtaa settings-keeda iyada oo raacaysa xeer aan fudud in la dhaqmo. Settingka minimum-idle waa in loo qoro SPRING_DATASOURCE_HIKARI_MINIMUMIDLE — dash-ka waa la tirtiraa, ereyada waa la isku xidhaa. Haddii loo qoro SPRING_DATASOURCE_HIKARI_MINIMUM_IDLE, oo dabiici u muuqda, wuxuu u beddelaa setting kale oo aan jirin (minimum.idle), ma jirto oo si aamusan ayaa loo iska indha tiraa.

Tani waa khalad kasta oo dib-u-eegis ah dhaafa, production-na wax ma beddelo. Sidaas darteed tijaabo ayaa hubisa labadaba in qiyamka la dejiyay iyo in aanu doorsoomayaal midna isticmaalin qaabka ereyada kala saaran underscore.

Hagaajinta 2: stack kasta oo kale

Spring ma aha framework kaliya oo leh pool, annagu ma nidhaaminno kuwa maktabad kasta oo luqad kasta. Sidaas darteed agent-ka Mythex — AI-ga qoraya app-kaaga — hadda wuxuu helaa tilmaam joogto ah stack kasta: app-yada daabacan iyo database-yadoodu way seexdaan marka ay fariisdaan, sidaas darteed xiriir la furay oo fariisan ayaa dhinti kara codsiga soo socda. Waa inuu:

  • Ha furin xiriirro database fariisan, ama hubi mid kasta ka hor inta aan la isticmaalin,
  • Mar keliya dib ugu noqo kadib cillad xiriir, iyo
  • Isticmaal settings-yada database-ka ee platform-ku siiyo environment-ka, halkii uu pool u dhisi lahaa isagoo falanqeynaya DATABASE_URL.

Qaybtaas ugu dambeysa wuxuu xidhaa wareegga qaybta 1: app-ka lagu dhisay settings-yada la siiyay si toos ah ayuu u helaa qaabeynta ammaan u ah seexashada.

Natiijada

Waxaa lagu cabbiray platform-ka martigelinta ee app-yada daabacan ee aan ku socodsiinno, codsiga koowaad kadib kicinta wuxuu ka soo degay 12.7 ilbiriqsi ilaa 2.3 ilbiriqsi.

Waxa aan ka barannay

  • Lakabyada kasta ee seexda waa inay isku waafaqaan waxa badbaadi kara. App-ka oo fariisan iyo database-ka seexday midkiiba go'aan macquul ah ayuu qaatay. Wadajir, app-ku wuu kor u kacay isagoo hayay xaalad aan runtahay mar dambe.
  • Defaults-ka loo dhisay server-yada had iyo jeer shaqeeya ma ku habboona app-yada hoos u dhaca eber ah. Xiriirrada diirran ayaa fikrad wanaagsan ilaa wax kasta oo ku wareegsan ay qabow yihiin.
  • Frameworks-ka siiya xogtooda qaabkooda. URL hal ahaa wuxuu noo fudaydiyay, laakiin wuxuu Spring app kasta ku qasbay inay pool gacanta ku dhiso oo iska indha tirto settings-kooda.
  • Tijaabi in setting-ka la qoro sidii framework-ku akhriyo. Qiime sax ah oo magac khaldan ku qoran ma samaynayo wax, si aamusan.

Haddii aad u baahan tahay inaad wax badan ka ogaato sida database-yadu u shaqeeyaan Mythex, eeg docs-ka database-ka iyo hagahayaga ku saabsan waa maxay Postgres.

Mythex · Pricing · Wax kasta ku dhis AI · Templates-ka website-ka iyo app-ka · Mythex marka la barbar dhigo · Qaamuuska dhismaha app-ka AI · Qalabka bilaashka ah ee dhismaha app-ka AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)