Te Whakamatau Uta API Ki te Mawhitiwhiti

Te Whakamatau Uta API Ki te Mawhitiwhiti

Whakamātautau Uta API Ki te Mawhitiwhiti: Intro

Ko koe pea i roto i tenei ahuatanga i mua: ka tuhi koe i te waehere hei mahi i tetahi mea, he tohu mutunga hei tauira. Ka whakamatau koe i to waahi mutunga ma te whakamahi i te Kairiiata, i te Insomnia ranei, a ka pai nga mea katoa. Ka tukuna e koe te mutunga ki te kaiwhakawhanake taha-kiritaki, ka pau te API me te tuku i te tono. Engari, ka rahua te API ina whakamahi nga kaiwhakamahi i te taupānga.

Ka taea e tenei he ahuatanga tino hoha ki te whakauru, kaua e whakahua he utu mo te pakihi. Koia te take ka mahia e nga kaiwhakawhanake rorohiko nga momo whakamatautau mo nga punaha rorohiko hei whakarite kia rite ki ta ratou e tumanakohia ana. He rereke nga API. I mua i te tohatoha, me mahi koe i nga whakamatautau mahi me nga whakamatautau haumaru.

Ka taea te whakarōpūhia nga whakamatautau mahi ki nga whakamatautau mahi me nga whakamatautau uta. Ko nga whakamatautau mahi ko nga mea e whakamahia ana e koe mo te Kairiiata, mo te Insomnia ranei. Ka whakarite kia mahi to API ki taau e tumanako ana. Ko nga whakamatautau uta, i tetahi atu taha, ka nui ake te awangawanga mo te mahi a to API ki te whakamahi i te ao tuuturu me te kawenga teitei, a koinei te korero mo tenei tuhinga. Kia ata tirohia nga whakamatautau uta.

He aha te Whakamatau Uta API?

Ko te whakamatautau kawenga API he momo whakamatautau e whakamahia ana e nga kaiwhakawhanake ki te whakataurite i nga kawenga noa me te tihi ki nga pito mutunga. Ma tenei momo whakamatautau ka taea e nga kaiwhakawhanake te arotake i nga mahi o te ao o te API i mua i te tuku. Ka awhina i a raatau ki te tautuhi i te kaha o te whakahaere o te punaha, nga kohungahunga mena he, me te paheketanga o nga mahi. Ko nga whakamatautau kawenga API ka mahia ma te hanga i nga kaiwhakamahi mariko katahi ka whakamahia hei whakamatautau i nga mahi a te API i te wa kotahi. 

Ko nga whakamatautau kawenga API ka ine i nga ine penei i te wa whakautu, nga kaiwhakamahi tukutahi, nga reeti urunga, nga taumata whakamahi rawa, Mean Time Between Failure(MTBF), Mean Time To Failure(MTTF), me era atu. Ka taea te whakamahi i enei inenga katoa hei whakatau i te pai o te mahi a te API.

Nga Momo Whakamatau Uta

He maha nga momo whakamatautau kawenga, ia me ona keehi whakamahi. Kia titiro tatou ki etahi o ratou.

Uta Whakamatau: Koinei te ahua taketake o te whakamatautau kawenga. Ka whakamahia ki te arotake i te mahinga o tetahi punaha (i tenei keehi, he API) i raro i te kawenga noa me te kawenga tihi e tumanakohia ana.

Whakamātautau ahotea: Ka whakamahia tenei ki te arotake i te mahinga o te punaha i raro i te kawenga tino taumaha. Ko te whainga o tenei whakamatautau ko te kite mena ka ora te punaha i muri i te korenga, me te roa o te mahi. I te nuinga o te wa ka piki haere te kawenga kia nui atu i te kaha o te punaha.

Whakamātautau Tiaki: He ahua rite tenei ki te whakamatautau ahotea, engari ka utaina ohorere te utaina taumaha, kaua ki te piki haere. Ko tenei momo whakamatautau e whakaatu ana he aha te mea ka puta ohorere mai i to nama toharite o nga kaiwhakamahi, manuhiri ranei, ina he whakaekenga DDOS ki to punaha.

Waiwai Whakamatau: He rereke tenei whakamatautau ki era atu o runga. Ka waiho to punaha ki raro i te 80% (kei runga ranei) o te kawenga noa ka waiho kia roa te waa, me kii 12 ki te 14 haora. Ko tenei momo whakamatautau ka whakatau i te pono o te punaha i roto i te waa.

Utaina te Whakamatau I o API Ki te Mawhitiwhiti

Ka whai waahi nga kaiwhakawhanake ki nga momo whiringa mo te whakamatautau uta i o raatau API. Ko etahi taputapu whakamatautau uta noa ko Gatling, JMeter, me te Locust. Ka aro tatou ki te Locust i tenei tuhinga.

Ko te Locust he taputapu whakamatautau uta-puna-puna e ahu mai ana i te python e whakamahia ana e nga kamupene rangatira penei i a Google, Microsoft, me Riot Games ki te whakamatautau i o raatau API. I roto i tenei tuhinga, ka whakaatu maatau me pehea te uta i te whakamatautau API. 

Mo tenei akoranga, ka hanga e ahau he API ngawari me te Flask. Ka taea e koe te whai tahi me ahau, te hanga noa ranei i to API me te Node, ahakoa he aha te anga e pai ana koe.

whakaritenga

Python 3

Tatūnga & Whakauru

Tuatahi, me whakarite e koe he taiao mariko ki runga i to PC kia kore ai koe e porearea i to taiao Python ao. Ki te mahi i tera, whakahaerehia nga whakahau e whai ake nei. Kia mahara ko enei whakahau e pa ana ki tetahi tauranga Windows.

$ mkdir kaupapa

$ cd /d ara\ki\kaupapa

$ python -m venv venv

$ venv\Scripts\activate

 

Tuatahi, i hanga e matou he kaupapa whaiaronga. Na ka hurihia e matou to maatau whaiaronga o naianei ki kaupapa. Na ka hanga, ka whakahohehia e matou he taiao mariko mo Python i roto i taua raarangi. 

Inaianei, ka neke taatau ki te whakauru pounamu(ka whakamahia e matou ki te hanga i nga tohu mutunga kia whakamatauria te utaina) me Huawhenua ake. 

 

Hei tāuta Flask, rere. Kia mohio kei roto koe i te kaupapa i hangaia e koe he taiao mariko.

$ pip tāuta ipu

 

Hei tāuta mawhitiwhiti, rere

$ pip tāuta mawhitiwhiti

 

Kia oti tena, patohia nga whakahau e whai ake nei. Kia mohio kei roto koe i to kaupapa whaiaronga ka mahi koe i tenei.

$ copy nul __init__.py

$ mkdir taupānga

$ copy nul app\app.py

$ copy nul app\__init__.py

 

Ka waihangahia e enei whakahau etahi konae ka whakamahia e matou ki te hanga i o maatau mutunga ma te whakamahi i te Flask. Ka taea hoki e koe te hanga i enei konae ma te whakamahi i to kaihōpara konae ma te ara. Engari he aha te ngahau o tera? Ka oti ana koe, kapehia te waehere i raro nei ki roto taupānga.py

mai i te ipu kawemai Flask, jsonify, tono

taupānga = Flask(__ingoa__)

waka_tauira = [

  { 'waitohu': 'Tesla', 'tauira': 'Tauira S' }

]

 

rererangi_tauira = [

  { 'waitohu': 'Boeing', 'tauira': '747' }

]

 

@app.route('/cars')

def get_cars():

  whakahokia jsonify(tauira_motokā)

@app.route('/planes')

def get_planes():

  whakahokia jsonify(tauira_rererangi)

ki te __ingoa__ == '__matua__':

    app.run(debug=True)  

 

Kei roto i te waehere i runga ake he tikanga tiki_cars whakamahia ki te tiki i te rarangi o nga waitohu waka me o ratou tauira, me tiki_rererangi whakamahia ki te tiki rarangi o nga waitohu rererangi me o raatau tauira. Kia utaina te whakamatautau i tenei pito, me whakahaere te app.py. Ki te mahi i tena rere te whakahau i raro nei.

$ python ara\to\app.py

Kia rere koe i tera, me kite koe i tetahi mea penei:

Whakamātautau Uta API 1

Mena ka kape koe i te URL mai i te tauranga ka pato waka or rererangi i muri i te /, ka taea e koe te kite i nga raraunga i reira. Heoi, ko ta matou whainga he whakamatautau i te waahi mutunga ki te mawhitiwhiti, kaua ki te tirotiro. No reira me mahi taua. Whakahaerehia te whakahau e whai ake nei i te pakiaka o to kaupapa whaiaronga.

 

$ kape nul locust_test.py

 

Ka hangaia he kōnae 'locust_test.py' ki te putake o to kaupapa whaiaronga. Ina oti ana koe, whakatuwheratia te konae ka whakapiri ki te waehere i raro nei. Ka whakamāramahia e matou i te wa poto.

 

wa kawemai

mai mawhitiwhiti kawemai HttpUser, mahi, i waenganui

 

Class UserBehaviour(HttpUser):

    wa_tatari = i waenganui(5, 10)

 

    @mahi

    def get_cars(whaiaro):

        self.client.get('/cars')

    

    @mahi

    def get_planes(whaiaro):

        self.client.get('/planes')

 

He tauira taketake tenei mo te whakamahi Locust ki te uta i te whakamatautau API. Tuatahi, ka hangaia he akomanga Whaonga Kaiwhakamahi, ka taea te hoatu ingoa tika engari me toro atu HttpUser. HttpUser Ko te karaehe e tiaki ana ki te whakamohio i nga kaiwhakamahi mariko maha ki te kawe i nga mahi ka tohua e matou ki te Whaonga Kaiwhakamahi akomanga. 

Ka tohua he mahi ma te whakapaipai i tetahi tikanga ki te @mahi kaiwhakaahua. He mahi ano ta matou e kiia nei waenganui() ka taea e taatau ki te tautuhi i te whānuitanga o nga hēkona hei tatari i mua i te mahi i te mahi e whai ake nei. Ka taea e koe te kite i tohua e matou he awhe 5 ki te 10 hēkona mo tera i roto i ta maatau waehere. 

Hei whakahaere i te waehere, kia mohio kei roto tonu koe i to taiao mariko. Mena ko te mea i hanga e koe e whakamahia ana e te tūmau e mahi ana i te API, whakatuwheratia he tauranga hou, huri i to whaiaronga ki to kaupapa whaiaronga, ka whakahohe i te taiao mariko i hanga e koe. Ka kitea e koe te whakahau mo te whakahohe i te taiao mariko i runga. Na, whakauruhia te whakahau i raro nei ki to tauranga.

 

$ mawhitiwhiti -f locust_test.py

 

Me kite koe i tetahi mea penei:

Whakamātautau Uta API 2

Ma te taunoa, kei te http://localhost/8089 te atanga tukutuku a mawhitiwhiti. Mena ka toro koe ki te paetukutuku, me kite koe i tetahi atanga penei:

Whakamātautau Uta API 3

Mai i te atanga, ka taea e taatau te tohu te maha o nga kaiwhakamahi, te reiti o te whanau (nga kaiwhakamahi i hangaia mo ia hekona), me te Kaihautu. Ka taea e koe te tiki i te wahitau o to kaihautu ma te tirotiro i te tauranga kei te rere te tūmau. I roto i to maatau, kei te tauranga 5000. Ka paato ana koe Ka timata te pupuhi, ka tukuna koe ki te atanga i raro nei.

Whakamātautau Uta API 4

Ka whakaatu tenei ki a koe i nga momo inenga whaihua penei i te maha o nga tono i rahua, te wa toharite mo te tono, te wa iti mo te tono, nga tono mo ia hekona, me era atu. Kia makona koe ki nga mea e kite ana koe, ka taea e koe te paato i te paatene mutu. 


Haunga te tatauranga ripa, kei reira he ngā tūtohi ripa e whakaatu atu ana mōhiohio i te ahua o te kauwhata, penei i te ahua i raro nei.

He he tapeke tono mo ia kauwhata tuarua, kauwhata wa whakautu, a te maha o nga kaiwhakamahi kauwhata, i whakaaro katoa mo te wa. Ma te whakamahi i nga kauwhata, ka taea e koe te whakatau e hia nga kaiwhakamahi e manakohia ana mo te wa whakautu, ka taea ranei e koe te mataki i o mahere mo te wa whakautu tonu ahakoa te piki haere o nga kaiwhakamahi, me etahi atu tirohanga penei. Ki te hiahia koe ki te tiri i enei tatauranga me tetahi atu, ka taea e koe te tiki purongo mai i te Tangohia te Raraunga ripa.

Hei Whakaoti...

Ko te whakamatautau uta i to API he mahi tino nui i roto i to tukanga whanaketanga, na kia mohio kei te whakauruhia ki to huringa hoahoa. Ma te ara, ka taea hoki e koe te kawe i etahi atu momo whakamatautau kawenga ma te whakarereke i nga uara mo te maha o nga kaiwhakamahi me te reiti o te whanau. 

Mena kei te pirangi koe ki te mahi i te whakamatautau koikoi, tohua he uara nui( me kii te 2000) mo te maha o nga kaiwhakamahi, katahi ano he uara nui mo to reiti whanau(500 hei tauira). Ko te tikanga i roto i te 4 hēkona, ka hangaia e koe nga kaiwhakamahi 2000 katoa me te uru ki o tohu mutunga. He rite tonu te whakamatautau ahotea, engari he iti ake te uara mo te reiti whakatipu. Hei rapu i nga mea katoa ka taea e koe, tirohia te Locust tuhinga