鍍金池/ 問答/Java  PHP  HTML/ 請(qǐng)問要用php做一個(gè)API公共服務(wù)需要注意什么問題?

請(qǐng)問要用php做一個(gè)API公共服務(wù)需要注意什么問題?

我們公司現(xiàn)在要做一個(gè)語音識(shí)別相關(guān)的API服務(wù),內(nèi)部調(diào)用的是百度語音識(shí)別的REST api,然后拿到識(shí)別后的文本后,經(jīng)過自己的其它加工處理,返回一些知識(shí)點(diǎn)標(biāo)簽之類的結(jié)果給調(diào)用方。

由于之前沒有做API方面的經(jīng)驗(yàn),請(qǐng)教下php適合嗎?主要是怕高并發(fā)的問題,需不需要考慮多線程之類的?

(主要是想了解下應(yīng)用程序這邊有沒有什么問題,硬件服務(wù)器環(huán)境的高可用架構(gòu)會(huì)做的。)

多謝!

回答
編輯回答
枕邊人

1.APi 首先注重的是安全方面的信息 所以加key和sign是必須可少的。
2.APi 與對(duì)方定義好入?yún)⒑统鰠?,定義好格式(最好提前書寫好wiki)
3.你們這邊應(yīng)該還回有數(shù)據(jù)庫(kù)操作,書寫業(yè)務(wù)邏輯,事務(wù)和回滾機(jī)制要做好
4.要有日志,要有監(jiān)控,報(bào)警系統(tǒng)。
5.寫接口,記得連接好PDO的來處理,防止sql注入等問題。
6.至于并發(fā)問題,你們可以在nginx層做處理,從DNS方面處理,PHP這塊無需過多關(guān)注
7.API擴(kuò)展,把功能模塊單獨(dú)組裝,看是否需要redis,memcache,yac這種緩存服務(wù)。
8.單獨(dú)拉出來幾臺(tái)服務(wù)器跑API,還有就是做好防止接口被刷,你們監(jiān)測(cè)節(jié)點(diǎn),如果某個(gè)IP防止有問題,就引流到獨(dú)立的一臺(tái)服務(wù)器(這臺(tái)服務(wù)器不參與業(yè)務(wù))等等,
9.你們可以考慮下消息隊(duì)列,同步服務(wù),swoole、rabbitMQ供你參考
總結(jié):最主要來看1.安全 2.日志 3.業(yè)務(wù)邏輯 4.nginx層處理 5.穩(wěn)定性

2018年6月14日 14:14
編輯回答
賤人曾

一般調(diào)用人次頻率不高的話是不需要考慮并發(fā)問題的,大并發(fā)問題,同時(shí)語音識(shí)別服務(wù)也不是你們真正意義上提供的,所以只用一段小腳本就可以啦。如果覺得用戶多,在訪問頁那里加個(gè)CDN就行了。

2017年4月27日 13:48
編輯回答
綰青絲

不需要考慮性能并發(fā)這些, PHP足以. 尤其處理語音并不是在你的服務(wù)器上.

2018年3月3日 08:47
編輯回答
尛憇藌

別動(dòng)不動(dòng)就是什么并發(fā),你調(diào)百度的接口還扯什么并發(fā),你要不先問問百度給你多少并發(fā),就一個(gè)語音接口,而且還是調(diào)百度的,我都不想說什么,你既然這樣問說明你不會(huì)php,與其問這個(gè)問題還不如先問問你會(huì)啥,swoole說百萬并發(fā),你能做的到嗎

2018年6月15日 23:40
編輯回答
遲月

并發(fā)估計(jì)是上不去的 你后臺(tái)server http 請(qǐng)求百度接口 消耗的資源比較大 估計(jì)幾百的并發(fā) 你就得發(fā)送幾百個(gè)請(qǐng)求到百度接口 服務(wù)器可能會(huì)瞬間cpu變得很高 因?yàn)槟阏{(diào)用的接口應(yīng)該是要傳送數(shù)據(jù)過去 然后對(duì)端解析的吧 這種業(yè)務(wù)耗時(shí)不好預(yù)估 可能并發(fā)量大一點(diǎn) 你發(fā)送的出口都會(huì)有問題

我覺得折中一點(diǎn)的方案是你這邊后臺(tái)搭一個(gè)任務(wù)隊(duì)列服務(wù),從而限制一下并發(fā)數(shù),做一下異步的任務(wù)進(jìn)度回顯或者提示

這樣并發(fā)高的時(shí)候控制權(quán)還在你自己的配置里,可以保證服務(wù)至少不會(huì)掛掉,只是并發(fā)高,大家需要等待的時(shí)間長(zhǎng)一點(diǎn)

2017年8月21日 16:21
編輯回答
安淺陌

并發(fā)高了可以考慮swoole。不限于php的話,可考慮go

2017年5月6日 23:03
編輯回答
焚音

沒有合不合適,只有如何去做,PHP也可以做,Java也可以做,Python也可以做,主要看你的業(yè)務(wù)架構(gòu)對(duì)應(yīng)的技術(shù)架構(gòu)的設(shè)計(jì),你已經(jīng)做了HA了,所以在流量和可用上至少有個(gè)方案處理了,PHP的API設(shè)計(jì),大部分是短連接,在邏輯處理上響應(yīng)速度也比較快,至于性能,可以選擇使用PHP7或者HHVM,多線程從業(yè)務(wù)架構(gòu)角度來分析看看吧。

2017年1月7日 08:43
編輯回答
安于心

補(bǔ)充:我希望像題主還有您一樣可愛的朋友們提問之前能夠先閱讀一下sf的一些提示,有些問題建議先自己百度,谷歌鉆研一下再來sf提問,現(xiàn)在sf好像已經(jīng)成了伸手黨的天堂了,明明百度,谷歌都能簡(jiǎn)單解決的問題都來sf提問,毫無營(yíng)養(yǎng),sf是技術(shù)研討區(qū),用來填補(bǔ)技術(shù)漏洞的,而不是來做伸手黨的。

2018年4月4日 18:44