Firebase 是什么?
เอ๊ะะะะะ ?
ปัญหา
สรุป
สวัสดีครับผมนเรศหรือว่าเรียกสั้นๆว่า เรศเฉยๆก็ได้
วันนี้ผมจะมาวิเคราะห์ระบบลงทะเบียน สำหรับการฉีดวัคซีนฟรี เพื่อเป็นกรณีศึกษาครับเนื่องจากDomeCloudได้เสนอตัวเพื่อทำระบบการลงทะเบียน เพื่อฉีดวัคซีนซิโนฟาร์มฟรี ให้กับจังหวัดชลบุรี โดยเป็นหนึ่งในการทำระบบเพื่อสังคม ไม่ต้องเสียค่าใช้จ่ายใดๆให้ DomeCloud (ถ้ามีใครสนใจอยากสอบถามถามไปที่收件箱页面DomeCloud Facebook ได้เลย)
โดยส่วนตัวผมเอง ผมมักจะพูดถึงการทำระบบลงทะเบียนต่างๆ ที่ไม่สามารถรองรับผู้ใช้งานได้ว่า “ทำเว็บสวยๆแล้วใช้ไม่ได้ทำทำไม” ซึ่งกรณีนี้อยากจะสื่อความว่าเว็บสวยๆทำงาน静态文件ทำให้มันล่มยากกว่าอีก
แต่...
静态มันก็ไม่ได้ตอบโจทย์ของระบ บการลงทะเบียนอะไรเหล่านี้ มันก็จริงอยู่ว่าทำเป็น SPA(单页应用程序)静态文件 ?
ใช่ แต่...
แต่อีกแล้วคือหน้าเว็บเองมัน静态แหละ静态โดยธรรมชาติของระบบลงทะเบียนข้อมูลต่างๆ มันจะเก็บลงฐานข้อมูล
เข้าเรื่องเลยการออกแบบระบบนี้ อาศัยความขี้เกียจออกแบบระบบไว้ประมาณนี้
Firebase 后端เพราะว่าทำให้สามารถสร้างระ บบการลงทะเบียนขึ้นมาได้ง่าย แบบ ง่ายมาก ไม่ต้องดูแล 后端静态文件 静态文件 静态文件ดูแลเองง่ายกว่า (เพราะว่า Cloudflare)
แต่พอใช้งานจริงมันไม่ง่ายอย่างที่คิด
หลังจากที่ออกแบบและสร้างมันขึ้นมาแล้ว ผมก็ได้ทำการโหลดเทสระบบ静态文件หรือหน้าเว็บที่เราสร้างมา เพื่อดูว่าเราสามารถรองรั บการใช้งานได้ที่เท่าไหร่
Cloudflare + 代理 Cloudflare เลยผลโหลดเทสออกมากระจอกมากได้ที่ประมาณ每秒 2,000 个请求Cloudflare 限制จากนั้นนำเสนอข้อมูลการโหลดเทส平均 2,000 RPS 平均 Cloudflare 限制ไว้
แต่ทินไปผมเลยปลด Cloudflare 代理仅限 DNS 服务速度 50,000 RPS อันนี้เป็นอีกโดเมนหนึ่งซึ่งเป็นของ เทศบาลตำบลเสม็ดจังหวัดชลบุรีที่ยิงไปตรง ๆแบบ HTTP
HTTPS
จากผลการทดสอบทั้งของจังหวัดและเทศบาล พอจะสรุปได้คร่าวๆว่า HTTP เรารับได้มากกว่า 每秒 50,000 个请求。 แน่ๆ และ ถ้าเรา 终止 HTTPS เอง จะได้ราวๆ 每秒 20,000 个请求。
HTTP、HTTPS 协议ผมค่อนข้างพอใจกับตัวเลขนี้คิดว่า คนจังหวัดชลบุรีไม่น่าจะใช้เกินนี้ Cloudflare 仅限 DNS 服务เพราะที่ประชุมเห็นตัวเลขว่ารับได้มากกว่า
Firebase 火力地堡谷歌Firebase 实时数据库ในการเก็บข้อมูล และเช็คว่ามีการลงทะเบียนครบหรือยัง ถ้าครบแล้วจะปิดการลงทะเบียนอัตโนมัติ
火力地堡เราก็ชะล่าใจไประดับหนึ่งแต่ก็คิดว่า火力地堡Firebase 随用随付...
12 月 2564 日上午 09:00 凌晨。日志服务器 日志服务器 日志服务器 日志服务器้องในทีมแชทมาว่าระบบเริ่มหน่วงผมก็คิดว่า ไม่น่าจะมีปัญหาอะไรเลยตอบแชทไปและนอต่อ
ผ่านไปไม่ถึงห้านาทีป่านโทรมาบอกว่าล่มแล้ว หน่วงมากใช้งานไม่ได้ผมลุกจากที่นอนทันที Cloudflare 代理และแคชให้ด้วยเลย
แต่ว่าเจอปัญหาต่อมา
Cloudflare 服务 服务 服务 服务限制 限制 限制 限制เลยกดจ่ายเงินไป (ตัดบัตรพี่โดม 5555) 专业计划ราคา $20 แต่ว่า เกิดปัญหาขึ้นว่าตัว Cloudflare เอง มันแคช仪表板มันเองด้วย (สัส คิดในใจ)ผมคิดว่าแย่ละ专业计划ไม่เพียงพอ商业计划 商业计划 200 美元(220 美元)
หลังจากกดไปแล้วมันเหมือนเดิม...เอ๊ะ...
เอ๊ะะะะะ ?
Cloudflare 和 Cloudflare 之间的区别
时间表Cloudflare 返回 503 和速率限制จากนั้นก็ได้รับแจ้งมาว่าคนลงทะเบียนครบแล้ว คือรอบแรกจะให้ลงทะเบียนราวๆ25,000คนมั้ง ประมาณนั้นแต่ พอคงลงเต็มไปแล้ว ระบบยังได้รับข้อมูลเข้ามาเรื่อยๆ จบที่ราวๆ 30,000 คน
จากกราฟ请求 请求พุ่งไปที่ประมาณ 每秒 150,000 个请求。 ซึ่งมากกว่าที่เราโหลดเทสราวๆ3年(每秒 50,000 个请求)
ผลก็คือหน้าเว็บมันไม่แสดงผลแบบสมบูรณ์ แต่ว่าใช้ cURL ทดสอบเรียกหน้าเว็บจะได้ 200 OK นะ แต่ว่า เราออกแบบหน้าเว็บไว้ให้เช็คว่า请求 请求 Firebase 实时数据库อยู่
Firebase 数据传输!
เหี้ย! แล้วเรา!数据传输 3.5 TB 费用 3,500 美元 费用 115,000 บาท โดยประมาณ จากการเปิดใช้งานระบบ 1 ชั่วโมง
Cloudflare
ปัญหา
ปัญหาที่เราเจอคือจากCloudflareมาหาOrigin Serverของเรา带宽เต็ม... Cloudflare 缓存 แต่ว่า ปัญหามันไม่ได้จบที่ตรงนั้น หลังจากโหลดไฟล์ไปครบจากฝั่ง Cloudflare แล้ว Firebase Realtime Database Response 响应ทำให้หน้าแรกโหลดไม่สมบูรณ์เพราะ รอข้อมูลจาก Firebase ซึ่งเราทำอะไรไม่ได้เลยณ เวลานั้น
สรุป
Firebase 工具包查询 查询 Firebase 数据传输 数据传输เพื่อลดค่าใช้จ่ายที่จะเกิดขึ้น
แผนต่อไปของการลงทะเบียน ผมได้ออกแบบแนวทางไว้แล้ว 2 ทาง ไว้จะมาเล่าต่อรอบหน้า
文章来源:https://dev.to/domecloud/firebase-2i3b









