V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  markgor  ›  全部回复第 36 页 / 共 44 页
回复总数  862
1 ... 28  29  30  31  32  33  34  35  36  37 ... 44  
2019-10-22 12:36:29 +08:00
回复了 h82258652 创建的主题 程序员 采取 RESTful 风格的 api 是否应该对结果包一层?
結貼吧,
設計源於生活,生活回歸設計。

比方你去大保健。
點了個 688 的套餐。
工作人員給了你手牌 612
然後 JS 來上鐘,
打電話報鐘,
如果輸入手牌號,系統返回“450Hz,-10±3dBm0,0.35s on/0.35s off”忙音,證明線路忙,JS 可能會過一兩分鐘再試。
如果輸入手牌號,系統返回房間號,那麼 JS 只需要對一下房間號,看看有沒進錯房間即可。


如果 JS 輸入手牌號後,系統無論線路原因或輸錯手牌號碼原因,均返回忙音,
那 JS 太難了,
除了要鍛煉嘴,聽力也要鍛煉,
2019-10-22 12:11:38 +08:00
回复了 HanMeiM 创建的主题 程序员 Gitee 也被干了,这到底是怎么了
@uxstone #37 超市如果售賣管制刀具,那肯定要被追責,如果是售賣非管制刀具,但未進行實名制,那也會被追責。

不過參考華聲新聞對於實名制購買非管控刀具的標題,《“买菜刀实名制”纯属惰政之举》。
其實現在信產要求的,何嘗不是惰政之举
2019-10-22 12:00:04 +08:00
回复了 h82258652 创建的主题 程序员 采取 RESTful 风格的 api 是否应该对结果包一层?
@MakeHui #141 你別這樣說啊,我是墻頭草哪邊有理哪邊倒。

畢竟一個人經驗和接觸到的知識面有點窄,所以理性的探討是支持的,沒任何敵意。
你說出來,哪怕是我覺得錯的,但另一層面上我不是又了解多一樣東西嗎....
當你說出來,我發現我是錯的,那我收穫更大了。
2019-10-22 11:51:26 +08:00
回复了 h82258652 创建的主题 程序员 采取 RESTful 风格的 api 是否应该对结果包一层?
@lazyfighter
主要問題還是取決於監控粒度的大小。
如果監控內容只是需要成功或失敗,那複用 http code 的確簡單省事。
如果監控內容是需要區分請求成功率和業務執行成功率時,
明顯 http code 無法進行有效區分。

還有,在後端和後端的交互中,
如果遇到 5XX 的錯誤,基本會進行重發請求,
如果是遇到了 200 成功,response code 提示錯誤的,基本不會進行請求重發(具體看 code 的定義)。
2019-10-22 11:39:05 +08:00
回复了 h82258652 创建的主题 程序员 采取 RESTful 风格的 api 是否应该对结果包一层?
@hantsy
所有的設計指南都是基於理想狀態進行描寫的。
全世界的業務都不是一成不變的,導致不同的公司就算處理相同的業務也存在不同的流程。
這個就類似於 社會主義 和 特色社會主義 的區別。
如果你真要什麼簡潔,那還不如直接逗號替換大法?

菩提本無樹明鏡亦非臺本來無一物何處惹塵埃
2019-10-22 11:28:50 +08:00
回复了 h82258652 创建的主题 程序员 采取 RESTful 风格的 api 是否应该对结果包一层?
@Narcissu5 你既然知道熔斷是根據 http code 進行,那你怎麼還主張通過 http code 來代替 response 的 code 呢?
歸根到底就是兩套不一樣的 code,
非要把它們弄到一起,
項目小的話還沒影響,
項目大了的話不就搞到定義模糊嗎?
2019-10-22 11:15:11 +08:00
回复了 h82258652 创建的主题 程序员 采取 RESTful 风格的 api 是否应该对结果包一层?
@Narcissu5 我明白你的意思,但是成本的高低是看業務的需求,
當業務是存在此方面的需求,成本就不會覺得高。
當業務對於這方面需求度不高,成本自然覺得高。

但是和你在上面說了三次 無法監控 ,
這真的是有點誤導啊。

你如果說在現有架構上增加監控,那的確如你所說,會消耗性能,並且業務量大的時候會對業務造成困擾。
但是建議你可以了解下旁路設備,增加旁路設備後對數據進行監控,就算業務量再大,頂多就是旁路設備處理存在延時,可監控報表維度一般都按小時 /天 /月 來統計,這點延時根本不足以影響數據準確度;而且旁路設備就算掛了,對業務一點影響都沒有。

另外交換機的端口鏡像,也是實現旁路的一個好設備。
2019-10-22 11:06:44 +08:00
回复了 zhangH258 创建的主题 程序员 搞个公司,网络也是大头???
@FS1P7dJz 坐標廣州,20M 鐵通線路,2M 電信 IPLC,2M 聯通 IPLC,cisco 3000 系列路由,跑了 10 多年,公司內部 120±10 台終端設備在使用,從未出過什麼事,也不存在什麼違規,包括家用寬帶,協議裡面沒有限制終端設備使用數量,業務經理還縫年過節跑上來送禮。
2019-10-22 11:03:37 +08:00
回复了 zhangH258 创建的主题 程序员 搞个公司,网络也是大头???
限制终端只能有 20 个。。
電信的終端限制 => 撥號次數
你路由夠強勁,帶多少台機電信根本不管,也無法管。

朋友网管建议拉网线(前期没预留,成本也不菲)
看完這句話,如果你連網線都沒有,那電信就算不限終端數,你那堆人怎麼上網呢?
還是其實你的終端數 是指電話線數量?

如果是電話線數量給個不負責任的方法你,4 芯電話線足矣上網,直接兩邊打網線頭,1326 線序即可。太長了的話你最好自己試試看會不會干擾。

另外電力貓,mesh 組網等,都是很好的選擇,推薦( mesh>電力貓)
2019-10-22 10:51:23 +08:00
回复了 h82258652 创建的主题 程序员 采取 RESTful 风格的 api 是否应该对结果包一层?
@Narcissu5 我看你說的,側重點在於監控方面吧?
我之前對結果其中一家數據交換公司,他們 PM 每月都會發送一份報表給我們,
其中包括 接口請求成功率,接口預定成功率
接口請求成功率 是他們考量他們自身服務的標準,其中包含簽約時候的 sla。
接口預定成功率 這個是考量他們系統和酒店系統的服務標準。
實際上除了這兩份報表外,還有其餘很多報表,大致是分析推送數據成功率,延遲等等。

你說 response 返回多一層 code 無法監控,
那請問別人為何又能監控,而你無法監控?
2019-10-22 10:35:03 +08:00
回复了 h82258652 创建的主题 程序员 采取 RESTful 风格的 api 是否应该对结果包一层?
@chendy http 的 code 只能代表請求的結果吧?
返回數據裡的 code 是代表業務的執行結果,根本是兩回事,
不要動不動就說別人不懂 http 的 code,只是別人想的比你多一步。

eg:
在線預訂門票的栗子,
對方業務系統規定:
當 code 為 9999 時,代表對方系統維護中,所有請求 30 分鐘後重試。
當 code 為 1XXX 時,違反門票業務約定( XXX3 位數代表著不同的約定)
當 code 為 2000 時,代表著訂單提交成功
當 code 為 3XXX 時,代表處理失敗,違反直連約定,具體根據 XXX3 位代表不同的結果,有可能是重複單號

直連約定上,當 http 服務不可用(返回非 200,需要每隔 5 分鐘進行重試,超出 10 次後線下聯繫處理。)
當返回 9999 時,代表對方系統維護
兩個是不一樣的概念,你為何可以那麼優秀地認為別人是多此一舉呢?如果你用 http 的狀態碼來表示,拍錯的時候不會導致連業務信息處理出錯或 http 請求出錯都區分不了嗎?

另外“类似的道理,还有用参数指定返回格式的人,大概是不知道 Accept 头(可能也不知道 Content-Type”
給個例子你,
甲方對接了很多套酒店系統,有些系統返回的是 xml,有些返回的是 json。
然後乙方和甲方對接,數據返回根據甲方提供的 api 均為 json,
但是由於很多實時請求是乙方 發送請求給甲方 甲方 再發給酒店,(等於甲方做數據交換),
這個時候甲方在返回給乙方的數據架構上,加上數據具體格式,有問題嗎?
response->{
code:2000,
type:'json',
data:'{code:xxxxx,data:xxxxxxxxxxxxxxx}'
}
你肯定會說為什麼甲方不解釋了酒店數據,然後直接返回給乙方。
那是因為甲方是做數據交換服務,在數據改動最少的範圍內傳遞給乙方。
2019-10-21 16:00:48 +08:00
回复了 HanMeiM 创建的主题 程序员 Gitee 也被干了,这到底是怎么了
我看過很多涉黃行業,由於地址長被封,所以把地址丟去 github,甚至利用 gitpage 做個宣傳。
不過說真的,最討厭的就是一堆不懂技術的政治人管理著技術的事情。
@alexwu
硬件層基本實時。
應用層數據差異時間要看自身業務可接受丟失比例進行配。
備份密度越高,存儲代價越大
備份密度越低,丟失風險越大

底層的基本靠運營商的系統架構進行。
應用層的基本運營商有額外服務提供。
慶幸做好了所有備份策略。
用的是違規雲的主機,一個負載,後面掛著兩台業務服務器跑 web,存儲使用 cfs 文件系統(好像號稱底層 3 硬盤),數據庫使用 tdsql (一主一備)

服務器 做鏡像,每天凌晨輪流做,設置規則。
cfs 沒提供自動備份,那就在其中一台主機跑腳本,把共享存儲裡的數據拉回本機,交由服務器鏡像時候備份。
數據庫使用違規雲提供的備份策略做熱備。


用了 2 年多了吧,大事沒有小事不斷。
2019-10-19 16:29:54 +08:00
回复了 Poto 创建的主题 程序员 [调查] 大家如何管理电脑的文件
把桌面和文檔存儲路徑改為 D 盤,然後隨心所欲。
重要的文檔每隔一周發一次去文件傳輸助手,直到不再重要為止。
2019-10-19 11:43:59 +08:00
回复了 zhangchaoquan 创建的主题 NGINX 如何让 nginx web 隐藏响应客户请求数据包中的域名
看了你前前後後的帖子,大概知道你想幹嘛。
但是真的如#13 樓的說法,建議先了解 http 協議和一些基礎的 tcp 協議。
Response 響應裡面,Nginx 默認情況下是沒有攜帶域名字符的,除非你自己 add_header 進去或者有用 Set-Cookie 設置進去。

另外你的問題是被墻了,然後你覺得 GFW 是根據回來時候的域名匹配,然後攔截了返回來的數據。
其實你想多了,
出去的時候數據就被標記了,返回的時候就直接劫持。GFW 並不是根據“返回”域名,而是過去的時候就標記好了註定回不來了。
你可以嘗試使用 IP 訪問(如果 IP 沒被 block 的情況下),如果能正常訪問,那你去 nginx 通過 add_header 把域名加進去,你看看是不是依然可以返回。

最後,GFW 不是我弄的,我不敢 100%和你打包票,但是 5 年前就已經聽說過,GFW 已經是旁路形式存在,然後對敏感數據進行標記,標記達到多少次後直接劫持走,如果存在黑名單字詞就直接丟黑洞。
2019-10-19 10:04:30 +08:00
回复了 zhangchaoquan 创建的主题 NGINX 如何让 nginx web 隐藏响应客户请求数据包中的域名
什麼叫“服务器往访问客户发送的数据包中域名”?
是 response 中的數據還是 body 中的數據?
2019-10-18 17:22:40 +08:00
回复了 JustinJie 创建的主题 程序员 各位大佬们 征求意见
@JustinJie java 不清楚,我是直接 PHP 跑腳本
主進程讀 1K 條就 fork 個子線程出來跑插入,
然後插入失敗就寫個 log (完整的 SQL 語句),
最後在跑一次失敗 log 裡面的記錄。

因為是一年前的事,大概就這些,
你的環境我不清楚,我當時是異地的,數據量不算大,好像幾十萬筆記錄,

注意下網絡超時和新數據庫的格式就可以了( mysqlmax_allowed_packet,還有 MYSQL 特性是否一致)。
對了,mysql 還有個 max_connections。

實話實說,你不缺時間的就一條條跑,失敗的記錄起來,然後打牌的打牌,喝酒的喝酒,跳舞的跳舞,每個一會看看有沒出錯就可以了。最後跑完就看看失敗的 log 裡面有沒 SQL 語句記錄,數量不多直接就在新數據庫裡運行裡面的語句。

good luck
2019-10-18 16:11:15 +08:00
回复了 JustinJie 创建的主题 程序员 各位大佬们 征求意见
@JustinJie 沒時間要求就一條條,有時間要求就嘗試讀 N 條,插入 N 條 異步操作。
2019-10-18 14:53:52 +08:00
回复了 JustinJie 创建的主题 程序员 各位大佬们 征求意见
表有區別就不能跑同步了,
就算是 dump 出來,你也 source 不了進去。
所以老老實實寫腳本。
具體點就是:
1、寫腳本,建測試庫
2、測試腳本用測試庫的資源。
3、和後端商議個時間做切換。
4、鎖庫腳本同步數據
5、後端切換數據
6、測試下
7、休息
1 ... 28  29  30  31  32  33  34  35  36  37 ... 44  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1073 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 22:51 · PVG 06:51 · LAX 15:51 · JFK 18:51
Developed with CodeLauncher
♥ Do have faith in what you're doing.