国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

發(fā)消費(fèi)券用webman做API適合么?各位大佬幫忙哦。

abei

政府發(fā)的市民消費(fèi)券

可能剛開(kāi)始同時(shí)要1-2萬(wàn)人進(jìn)來(lái)?yè)?,不過(guò)就幾分鐘就沒(méi)了。

現(xiàn)在用的yii2,上次cpu被弄到100%了

現(xiàn)在計(jì)劃用我們的webman,之前沒(méi)弄過(guò)常駐內(nèi)存的,不知道適合不適合?

會(huì)不會(huì)出現(xiàn)一些問(wèn)題?

當(dāng)前是想用一個(gè)機(jī)器nginx做反向代理,內(nèi)網(wǎng)兩個(gè)機(jī)器做業(yè)務(wù)處理。


就怕出現(xiàn)問(wèn)題,會(huì)被弄死的。

6195 10 9
10個(gè)回答

liziyu

mark

  • tgzmos 2022-06-17

    看的qps;如果qps有上萬(wàn),建議使用go為一個(gè)高并發(fā)接口服務(wù);其它業(yè)務(wù)可以使用webman;然后nginx作為代理負(fù)載

six

我覺(jué)得合適,2臺(tái)webman相當(dāng)于10臺(tái)yii的性能,甚至更多。
2萬(wàn)人來(lái)?yè)?,假設(shè)搶1分鐘,每秒支持333個(gè)請(qǐng)求就行。高峰期假設(shè)乘以3,大概每秒能承受1000請(qǐng)求估計(jì)就行。
做完之后用ab壓測(cè)下。

  • abei 2022-06-01

    我主要這個(gè)不是常駐內(nèi)存么,萬(wàn)一進(jìn)程卡住了咋辦

  • abei 2022-06-01

    你之前用過(guò)webman么,覺(jué)得如何

  • six 2022-06-01

    除非數(shù)據(jù)庫(kù)有問(wèn)題掛了,不然怎么會(huì)卡住?webman我們一直在用,性能確實(shí)比f(wàn)pm的好非常多。

  • abei 2022-06-01

  • abei 2022-06-01

    之前沒(méi)搞過(guò)高并發(fā)的,很多工具都不熟悉,嗯,謝謝

nitron

已有項(xiàng)目,并且運(yùn)行沒(méi)問(wèn)題的,建議先考慮優(yōu)化,確定瓶頸在哪里,比如OPCACHE是否開(kāi)啟,DB Server配置是否足夠,DB索引是否合理,FPM根據(jù)內(nèi)存大小預(yù)先開(kāi)啟足量進(jìn)程,還有其他一些業(yè)務(wù)邏輯設(shè)計(jì)等,都做了還是不行再考慮換框架這類操作

不否認(rèn)換了Webman性能會(huì)更好,但是你要權(quán)衡更換成本,比如更換過(guò)程中的遇到的坑你有沒(méi)有辦法填,出了問(wèn)題你能不能擔(dān)得起,畢竟這是市政項(xiàng)目,牽扯的東西很多

  • abei 2022-06-01

    嗯,是呀,就是覺(jué)得牽扯太多。

  • liziyu 2022-06-01

    務(wù)實(shí)??

  • nitron 2022-06-01

    另外再多提一嘴,你這個(gè)業(yè)務(wù)算是比較簡(jiǎn)單的秒殺邏輯(至少?gòu)拿枋鲋锌雌饋?lái)比較簡(jiǎn)單),可以考慮在業(yè)務(wù)上做優(yōu)化(如果可以),采用先扣庫(kù)存再進(jìn)行后續(xù)邏輯處理的方式(比如隊(duì)列),比較典型的例子就是常見(jiàn)的"優(yōu)惠券將會(huì)在稍后發(fā)放到您的賬戶中"這種, 前面上個(gè)負(fù)載均衡,平時(shí)就一臺(tái)機(jī)器,發(fā)券前提前多開(kāi)幾臺(tái),結(jié)束后降回一臺(tái)

  • abei 2022-06-01

    是的,現(xiàn)在用的就是,除了會(huì)員的生成用mysql有點(diǎn)大,其他都放到了redis里,然后服務(wù)器有個(gè)計(jì)劃任務(wù)負(fù)責(zé)發(fā)券,當(dāng)前自己用到時(shí)沒(méi)啥問(wèn)題。

    客戶想包裝成產(chǎn)品,做云端,買個(gè)其他各城市的部門來(lái)發(fā)券,相當(dāng)于重新搞一個(gè)新系統(tǒng)再。

    負(fù)載均衡還沒(méi)有上,這幾天正在研究nginx搞這個(gè),現(xiàn)在有3臺(tái)服務(wù)器,打算用最弱的一臺(tái)做分發(fā),其他兩臺(tái)方程序。

  • abei 2022-06-01

    @nitron 現(xiàn)在mysql是了一臺(tái)高性能的數(shù)據(jù)庫(kù)服務(wù)器,但是還是感覺(jué)慢,想做主從,不過(guò)之前沒(méi)弄過(guò),還沒(méi)有搭建好。

  • abei 2022-06-01

    上次在客戶公眾號(hào)上搞,因?yàn)橐跈?quán),必須跳轉(zhuǎn)一次PHP做會(huì)員初始化,結(jié)果一次來(lái)太多人,當(dāng)時(shí)開(kāi)了1000個(gè)靜態(tài)的fpm進(jìn)程,卡在那里不動(dòng)了。

    最后過(guò)了十分鐘還那樣,重啟了phpfpm后好了,我覺(jué)得是cpu(8核)已經(jīng)到頭了沒(méi)能力處理進(jìn)程了。

  • nitron 2022-06-02

    授權(quán)這個(gè),因?yàn)閺墓娞?hào)獲取用戶信息需要服務(wù)器向微信服務(wù)器發(fā)起一個(gè)Http請(qǐng)求,這個(gè)涉及第三方系統(tǒng),沒(méi)辦法.
    注意不要重復(fù)獲取access_token就好

  • abei 2022-06-02

    是的,這個(gè)沒(méi)有,access_token都是緩存了的,就是一次太多人訪問(wèn)。。不過(guò)也的確沒(méi)有好的辦法,下次弄負(fù)載均衡估計(jì)就解決了。

  • tanhongbin 2022-06-02

    大佬發(fā)言給力呀,先優(yōu)化,實(shí)在扛不住了再換webman,也別一下子全搬過(guò)來(lái),高并發(fā)的請(qǐng)求可以用webman處理,多異步,這么高并發(fā)的請(qǐng)求應(yīng)該不會(huì)有新增完數(shù)據(jù)就要看的,mysql的增加刪除和修改全給它異步了,查詢緩存一做基本io上redis扛得住,就問(wèn)題不大

  • abei 2022-06-02

    @tanhongbin 【這么高并發(fā)的請(qǐng)求應(yīng)該不會(huì)有新增完數(shù)據(jù)就要看的,mysql的增加刪除和修改全給它異步了】是什么意思哈?求

胡桃

這種情況用swoole可能會(huì)更好一點(diǎn)。

  • abei 2022-06-02

    為啥那?swoole似乎學(xué)習(xí)成本有點(diǎn)高

  • 胡桃 2022-06-02

    IO操作多的話Swoole表現(xiàn)會(huì)更好,workerman在異步這塊現(xiàn)在可以說(shuō)是空白

  • abei 2022-06-02

    哦,我了解下。

  • six 2022-06-02

    他本來(lái)就是沒(méi)有常駐內(nèi)存的經(jīng)驗(yàn),直接上swoole玩php協(xié)程非常不推薦,學(xué)習(xí)swoole的難度不亞于學(xué)習(xí)一門新語(yǔ)言例如go。
    如果系統(tǒng)瓶頸在數(shù)據(jù)庫(kù),那上啥也沒(méi)用。如果瓶頸在框架性能低下,上webman是很好的選擇,學(xué)習(xí)基本沒(méi)有成本,同樣的代碼寫(xiě)法性能提高數(shù)倍,穩(wěn)定性也好與swoole,并且性能也比swoole高。

  • abei 2022-06-02

    感謝各位兄弟的建議,嗯,項(xiàng)目也比較緊,學(xué)習(xí)太久估計(jì)不行,就一個(gè)月時(shí)間。

  • liziyu 2022-06-02

    如果說(shuō)沒(méi)有扎實(shí)的網(wǎng)絡(luò)與操作系統(tǒng)相關(guān)的基礎(chǔ)或經(jīng)驗(yàn),別說(shuō)用swoole了,就是用了go也難解決性能瓶頸!~
    深(身)有體會(huì)!! ^_^

  • abei 2022-06-02

    看來(lái)要惡補(bǔ)基礎(chǔ)知識(shí)啦

  • 2548a 2022-06-02

    說(shuō)的不錯(cuò),記得我以前剛開(kāi)始工作的時(shí)候,有個(gè)項(xiàng)目每天零點(diǎn)要執(zhí)行任務(wù),當(dāng)時(shí)項(xiàng)目有8,9萬(wàn)個(gè)會(huì)員以后,執(zhí)行任務(wù)需要2,3個(gè)小時(shí)才執(zhí)行完,但是現(xiàn)在如果讓我再執(zhí)行同樣的任務(wù),也就是十幾分鐘的事情.

  • abei 2022-06-02

    你現(xiàn)在咋搞的?

  • 2548a 2022-06-02

    減少數(shù)據(jù)庫(kù)查詢,批量插入或者更新數(shù)據(jù)庫(kù),這些是從代碼層面去優(yōu)化sql. 一個(gè)接口能少查詢一次sql,那高并發(fā)下一秒就是少上千次查詢.

  • abei 2022-06-02

    ??

  • admin 2022-06-03

    為什么不學(xué)go?

2548a

如果是我的話,肯定先問(wèn)領(lǐng)導(dǎo),直接跟他說(shuō)換個(gè)框架,性能有數(shù)十倍的提升,但是這個(gè)過(guò)程有太多的不確定性,讓他決定是否愿意冒這個(gè)險(xiǎn),如果不愿意的話沒(méi)必要換,如果他同意的話,也不至于自己一個(gè)人把責(zé)任全擔(dān)下來(lái)了.

1024

你們公司搞到了政府的項(xiàng)目?是不是靠關(guān)系啊

  • abei 2022-06-02

    怎么突然問(wèn)這個(gè)了。

Caesar-Tang

端午節(jié)上線的項(xiàng)目,項(xiàng)目中使用到數(shù)據(jù)庫(kù)訪問(wèn),單純的增刪改查(有索引),使用docker部署,cpu占用在 10-20% 間,webman的性能讓我著實(shí)震驚。8小時(shí)將近 1200w 的流量穩(wěn)定支撐,并且cpu占用并不高。主要服務(wù)架構(gòu)如下:

  1. 一臺(tái)服務(wù)器使用nginx做負(fù)載(8C16g)
  2. 兩臺(tái)服務(wù)做業(yè)務(wù),每臺(tái)服務(wù)器兩個(gè)節(jié)點(diǎn)(均為 4c8g)
  3. 云數(shù)據(jù)庫(kù)(4C8G)

順帶一提,該項(xiàng)目也使用了thinkphp開(kāi)發(fā)的一個(gè)服務(wù),簡(jiǎn)單的一個(gè)查詢數(shù)據(jù)庫(kù)(有索引),使用docker部署,cpu占用卻有 300-400%。
當(dāng)然,這只是我這邊的實(shí)際使用場(chǎng)景,僅供參考。你的項(xiàng)目需要具體業(yè)務(wù)具體分析。至于業(yè)務(wù)層涉及到的服務(wù)器調(diào)優(yōu),數(shù)據(jù)庫(kù)優(yōu)化,redis緩存等等,這里就不過(guò)多討論了。

  • abei 2022-06-06

    哇~

  • abei 2022-06-06

    用redis了么,如果用了是放到了一臺(tái)業(yè)務(wù)服務(wù)器上了么

  • Caesar-Tang 2022-06-06

    沒(méi)有用到redis

  • abei 2022-06-06

    那mysql壓力很大呀

  • abei 2022-06-14

    我問(wèn)下,你每個(gè)業(yè)務(wù)的機(jī)器上就是啟動(dòng)了一個(gè)webman是吧。

  • Caesar-Tang 2022-06-14

    使用docker打包部署服務(wù),每臺(tái)機(jī)子部署2個(gè)

  • Caesar-Tang 2022-06-14

    對(duì)于mysql和redis,如果有預(yù)算并且是要短期保證業(yè)務(wù)穩(wěn)定,個(gè)人建議使用云服務(wù)。比如阿里云的云rds或云redis,都有集群版的,比自己部署的要好要穩(wěn)定要便捷。自己部署的話,非專業(yè)運(yùn)維,包括調(diào)優(yōu),監(jiān)控等等都會(huì)比較麻煩,并且單機(jī)部署,流量,性能和IO,都會(huì)有瓶頸。

  • Caesar-Tang 2022-06-14

    你這邊是如何發(fā)券的,減庫(kù)存跳轉(zhuǎn)鏈接用戶點(diǎn)擊領(lǐng)取 或 減庫(kù)存調(diào)用api接口?

  • abei 2022-06-14

    減庫(kù)存,然后后臺(tái)有個(gè)計(jì)劃任務(wù)負(fù)責(zé)發(fā)券。

  • Caesar-Tang 2022-06-14

    計(jì)算任務(wù)是crontab,還是?

  • abei 2022-06-14

    嗯嗯,是crontab

  • Caesar-Tang 2022-06-14

    以下思路,僅供參考:

    1. 流量分流(前端資源加cdn或放在對(duì)象存儲(chǔ)上;后端的用作負(fù)載的服務(wù)器,性能要好,帶寬要高,保證接口請(qǐng)求的流量穩(wěn)定)
    2. 后端服務(wù)負(fù)載均衡(后端服務(wù)多臺(tái)服務(wù)器部署,負(fù)載處理業(yè)務(wù),后續(xù)有壓力可擴(kuò)容)
    3. 云mysql 或 云redis 做庫(kù)存處理(mysql的原子操作 或 redis的lua腳本執(zhí)行 保證不會(huì)超發(fā))
    4. 消息中間件做發(fā)券處理(redis消息隊(duì)列或rabbitmq等,減庫(kù)存后,將發(fā)券任務(wù)交給中間件,多個(gè)消費(fèi)者服務(wù)同時(shí)發(fā)券處理)
  • Caesar-Tang 2022-06-14

    使用crontab會(huì)造成任務(wù)堆積的

  • abei 2022-06-14

    現(xiàn)在是在一個(gè)內(nèi)存最大的服務(wù)器上安置了redis,所在的云上沒(méi)有云redis,這時(shí)候其他機(jī)器通過(guò)局域網(wǎng)訪問(wèn)這臺(tái)機(jī)器的redis你覺(jué)得會(huì)不會(huì)有問(wèn)題那?

    還有問(wèn)個(gè)問(wèn)題哈,常駐內(nèi)存的,如果這個(gè)進(jìn)程比如調(diào)用一些外部api服務(wù),響應(yīng)時(shí)間比較長(zhǎng),豈不是后面的都卡主了。

  • abei 2022-06-14

    crontab 之前發(fā)生過(guò)數(shù)據(jù)問(wèn)題,正在考慮換個(gè)

  • 法師 2022-06-14

    fpm也一樣卡住,所以調(diào)用外部api需要控制好超時(shí)時(shí)間,比如設(shè)置1秒超時(shí)。

  • Caesar-Tang 2022-06-14

    如果當(dāng)前請(qǐng)求未處理完,其他的請(qǐng)求會(huì)等待。
    具體的業(yè)務(wù)場(chǎng)景有不同的處理方案。要在接口中等待外部api請(qǐng)求完成,比如微信授權(quán),則可以把該接口分離成一個(gè)單獨(dú)的服務(wù)來(lái)部署,這樣可避免影響其他業(yè)務(wù) 或 合理設(shè)置超時(shí)時(shí)間;若可異步處理,比如發(fā)券,可使用消息中間件服務(wù)。

  • Caesar-Tang 2022-06-14

    我這邊在使用mysql或redis服務(wù)時(shí),結(jié)合使用場(chǎng)景,一般會(huì)從三個(gè)角度去考慮,流量,性能及多機(jī)活備。
    通過(guò)內(nèi)網(wǎng)訪問(wèn),流量是沒(méi)問(wèn)題的,至于性能及活備,因?yàn)闊o(wú)法預(yù)知上線后的業(yè)務(wù)情況,所以無(wú)法評(píng)估你當(dāng)前配置的redis服務(wù)有沒(méi)有問(wèn)題。

  • Caesar-Tang 2022-06-14

    如果沒(méi)有更好的方案,建議提前開(kāi)發(fā)好業(yè)務(wù)功能,按照當(dāng)前思路部署服務(wù),然后做壓測(cè)來(lái)定位服務(wù)瓶頸。

  • abei 2022-06-14

    @靜默 但是fpm不是每個(gè)請(qǐng)求開(kāi)一個(gè)進(jìn)程么,如果一個(gè)進(jìn)程卡出,應(yīng)該不影響其他的把

  • abei 2022-06-14

    @CaesarTang 好的,太感謝了

  • 法師 2022-06-15

    fpm不是每個(gè)請(qǐng)求開(kāi)一個(gè)進(jìn)程,是的話一秒來(lái)1萬(wàn)個(gè)請(qǐng)求,服務(wù)器內(nèi)存直接爆了。
    都是預(yù)先開(kāi)一些進(jìn)程,每個(gè)進(jìn)程排隊(duì)處理消息,包括nginx也是一樣。

  • abei 2022-06-15

    @靜默 是的,我的意思是說(shuō)每個(gè)fpm進(jìn)程間不互相干擾,不需要等待。

  • 法師 2022-06-15

    webman在前面加一層nginx也一樣,新請(qǐng)求會(huì)發(fā)給空閑的進(jìn)程,不互相干擾

  • abei 2022-06-15

    @靜默 哦

yootou

發(fā)消息券這種,一種用webman這類常駐內(nèi)存來(lái)做API,另外消費(fèi)券本身,建議先放在REDIS等緩存里邊,不要直接訪問(wèn)數(shù)據(jù)庫(kù),再一個(gè)利用隊(duì)列的方式。這樣你說(shuō)的1到2W人,輕松就能解決了。

  • abei 2022-06-14

    我想問(wèn)下,redis是放到一個(gè)機(jī)器上么?比如負(fù)載均衡了3臺(tái)機(jī)器,redis要單獨(dú)放一個(gè)機(jī)器么?

  • yootou 2022-06-28

    redis放任一臺(tái)服務(wù)器,只要能訪問(wèn)即可。

MarkGo

給個(gè)建議,可以自己試試內(nèi)網(wǎng)壓測(cè)。
1、消費(fèi)卷數(shù)量存到redis。
2、領(lǐng)取消費(fèi)卷的時(shí)候查redis結(jié)果,有卷領(lǐng)取成功的話通過(guò)隊(duì)列回寫(xiě)mysql結(jié)果?!井惒?、
3、前端搶劵的時(shí)候增加個(gè)setTimeout,隨機(jī)延遲10~1000毫米時(shí)間發(fā)送請(qǐng)求,避免產(chǎn)生毛刺。

其實(shí)避免了mysql的同步操作,剩下的就是帶寬問(wèn)題了,所有接口非必要信息不要返回,減少請(qǐng)求大小,開(kāi)啟gzip就好了。
靜態(tài)資源建議上cdn,針對(duì)請(qǐng)求異常時(shí)前端做好友好提示,類似活動(dòng)異常爆滿,請(qǐng)稍后重試。這樣就算webman倒了也對(duì)客戶影響不大。

  • 暫無(wú)評(píng)論
MarkGo

當(dāng)前是想用一個(gè)機(jī)器nginx做反向代理,內(nèi)網(wǎng)兩個(gè)機(jī)器做業(yè)務(wù)處理。

更加建議租用云負(fù)載,按量付費(fèi)。
以騰訊云為例:
建議:
clb-〉(CVM 3) -〉云redis -〉 云數(shù)據(jù)庫(kù)
膽大的:
clb->CVM
2 -> CVM(redis單機(jī)) -> 云數(shù)據(jù)庫(kù)

  • abei 2022-06-20

    好的,謝謝,現(xiàn)在也有了一些思路,不過(guò)我估計(jì)要用你的那個(gè)大膽的方案,客戶所在的云沒(méi)有云redis。。。

  • MarkGo 2022-06-20

    redis單機(jī)一般問(wèn)題也不大的。webman啟動(dòng)的時(shí)候加載帶領(lǐng)取的卷id到redis里,領(lǐng)劵的時(shí)候redis取個(gè)出來(lái),然后丟隊(duì)列,隊(duì)列update 到取mysql那。

  • MarkGo 2022-06-20

    肯定是政務(wù)云機(jī)房哪些。。。。。

  • abei 2022-06-20

    @MarkGo 被你說(shuō)對(duì)了,特麻煩,開(kāi)個(gè)端口還得發(fā)郵件申請(qǐng)。

  • MarkGo 2022-06-20

    我們之前也用過(guò),價(jià)格特別貴,然后window系統(tǒng)還要另外支付授權(quán)費(fèi)用。申請(qǐng)端口和遠(yuǎn)程進(jìn)去要用跳板機(jī)。

  • abei 2022-06-20

    @ MarkGo 對(duì)啊對(duì)啊,超級(jí)麻煩,那個(gè)堡壘機(jī)傳文件夾還不智能,上次開(kāi)個(gè)443端口,說(shuō)要和省里申報(bào),最少要一天(非工作日)才能過(guò)。

    讓加個(gè)白名單,相當(dāng)不愿意。

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??