چرا Indmoney از Golang برای برق جریان داده در زمان واقعی استفاده می کند

[ad_1] در حالی که برخی از توسعه دهندگان در حال ترک Golang هستند ، زبان برنامه نویسی منبع باز Google هنوز تمام زمین خود را از دست نداده است. بسیاری از شرکت ها هنوز به خاطر برخی از مزایای آن سوگند یاد می کنند و به نظر می رسد Indmoney یکی از آنها است. در
[ad_1]
در حالی که برخی از توسعه دهندگان در حال ترک Golang هستند ، زبان برنامه نویسی منبع باز Google هنوز تمام زمین خود را از دست نداده است. بسیاری از شرکت ها هنوز به خاطر برخی از مزایای آن سوگند یاد می کنند و به نظر می رسد Indmoney یکی از آنها است.
در اجلاس DES 2025 ، Kausal Malladi ، رئیس مهندسی Indmoney ، فناوری پیشرفته ای را در پشت توانایی پلت فرم سرمایه گذاری در ارائه داده های بازار با فرکانس بالا با سرعت فوق العاده نشان داد. رسیدگی به بیش از نیم میلیون قیمت قیمت در هر دقیقه – که در طول روزهای بودجه یا نتایج انتخابات ، حداکثر ۲.۵ برابر است – بیش از یک باکتری قوی بیشتر می شود.
برای Indmoney ، این راه حل در سه گانه فن آوری های منبع باز قرار دارد: به زبان برنامه نویسی GO ، سیستم پیام رسانی NATS و یک موتور WebSocket داخلی بهینه شده. هدف این شرکت این است که بازرگانان را در زمان واقعی به روز کنید و تأخیر زیر ۲۰۰ میلی ثانیه را حفظ کنید.
نمودارهای قیمت ، تشخیص الگوی نمودار AI محور و هشدارهای فوری همه از همان سیل داده های کنه ترسیم می شوند. مالادی با بیان اینکه چگونه حتی یک تأخیر یک ثانیه می تواند یک فرصت تجاری را از بین ببرد ، گفت: “میلی ثانیه مهم است.” این شرکت توضیح داد که چگونه آنها در حالی که زیرساخت های لاغر دارند ، همه این کارها را انجام می دهند.
برنامه نویسی بزرگ و فناوری منبع باز
مالدی گفت: “برو به بسیاری از موارد استفاده ساده کمک می کند. زمان اجرا توانایی بسیار خوبی دارد که با منابع کمتری کار می کند. به منابع سیستم عامل بیشتری احتیاج ندارد.” هدفبشر
وی خاطرنشان کرد: می توان از زیرساخت های لاغر به طور مؤثرتر استفاده کرد.
مالدی تأکید کرد که اگر کسی برای یک برنامه کاربردی استفاده کند ، خود زبان حداقل منابع سیستم را مصرف می کند – بیشتر استفاده از منابع به کارهای واقعی برنامه اختصاص می یابد.
وی تأکید کرد که GO دارای قابلیت های خوبی است ، مانند روال GO ، که توسعه دهندگان را قادر می سازد تا هنگام کار با مقدار زیادی از داده ها ، پردازش موازی را تسهیل کنند.
سیستم در زمان واقعی Indmoney یکپارچه ها را به نفع میکروسروس های جدا شده جدا می کند ، هر یک مسئولیت متمایز را بر عهده دارد-دست زدن به ، تجزیه و تحلیل ، هشدارها یا نمودارهای ارائه. مالدی گفت: “بنابراین همه آنها هنوز هم می توانند با استفاده از یک یکپارچه واحد از آن استفاده کنند.” با این حال ، خطر خرابی با این رویکرد زیاد است ، به همین دلیل آنها یک رویکرد جدا شده را انجام می دهند.
مالادی اظهار داشت که مدل همزمانی سبک وزن GO به اجرای این خدمات با حداقل سربار ، حتی در زیرساخت های کوچکتر از یک زن و شوهر از تلفن های هوشمند مدرن کمک می کند.
یک مؤلفه اصلی جریان چند مرحله ای است. کنه های حاصل از مبادلات از طریق Multicast On Prem دریافت می شوند و سپس به موارد AWS EC2 که تحت یک آدرس Multicast گروه بندی شده اند ارسال می شود. هر گره به طور مستقل داده ها را دریافت می کند – هیچ هاپ اضافی ، بدون تنگناهای رله. Go این فن را به طور کارآمد کنترل می کند ، و NATS به عنوان ستون فقرات منبع باز عمل می کند که پیام ها را تضمین می کند که به هر مشتری یا سرویس پایین دست می رسد.
NATS به تیم کمک کرد تا “زیرساخت های بسیار قابل اعتماد” را با تنظیم سریع ، در دسترس بودن بالا و احراز هویت JWT از جعبه ایجاد کند. وی افزود: “این می تواند در دو روز و بدون تلاش زیاد تنظیم شود.”
برای ارائه این داده ها به کاربران ، IndMoney سرور WebSocket خود را در بالای ابزار Gorilla ساخت. این سیستم از تأیید اعتبار مبتنی بر JWT پشتیبانی می کند و با استفاده از PPROF برای مشخص کردن تنگناهای CPU آزمایش شده است. در یک مورد ، پروفایل حافظه یک قفل نقشه را نشان داد که عملکرد را پایین می آورد. جابجایی به Sync.map GO 75 ٪ میزان مصرف منابع را کاهش می دهد.
مهندسی برای هر میلی ثانیه
هدف شرکت برای کاهش تأخیر در سریال سازی ، شبکه سازی و حتی نحوه همگام سازی ساعتها گسترش یافته است. Protobuf ، یکی دیگر از فناوری های منبع باز توسط Google ، JSON را در بارهای داده جایگزین کرد و اندازه انتقال آن را بیش از ۵۰ ٪ کاهش داد. فراتر از CPU یا حافظه ، توان شبکه به یک معیار نظارت بر کلیدی تبدیل شد.
برای اطمینان از عملکرد با تأخیر کاربر با عملکرد پس زمینه ، تیم نمونه گیری از سمت مشتری را پیاده سازی کرد. مالادی افزود: “هر ساعت در جهان یکسان نیست.” آنها همچنین برای بهینه سازی مسیرهای تحویل ، از مسیریابی هوشمند Argo و Smart Smart CloudFlare و سوئیچینگ برچسب Multiprotocol (MPLS) استفاده کردند.
Fallbacks در همه جا وجود دارد. اگر ناتس پایین بیاید ، سیستم WebSocket Slack را انتخاب می کند. اگر یک سرویس خراب شود ، انزوای میکروسرویس باعث می شود بقیه به صورت زنده بمانند. حتی اشتراک داده ها به صورت هوشمندانه انجام می شود. عملیات سنگین نقشه ، مانند مدیریت چه کسی مشترک در آنچه است ، با حداکثر ایمنی همزمانی و قفل های حداقل انجام می شود.
چرا کار می کند
این فقط مربوط به GO نیست ، بلکه در مورد استفاده از ابزارهای مناسب ، پروفایل و برنامه ریزی برای شکست است. سیستم های ساده ، مهندسی Fallback ، همیشه چیزی یا دیگری را به عنوان یک بازگشت به آن داشته باشید تا در نتیجه به فاجعه نرسید.
پشته Indmoney شامل NATS ، Gorilla WebSocket ، Redis ، Protobuf و حتی Cloudflare است ، اما معماری عملی است. هر قسمت دارای یک هدف است و هر یک از این افراد داستانی داستانی دارد. در مرکز آن ، GO ، پایه عملکرد و انعطاف پذیری همزمانی را که سیستم نیاز دارد فراهم می کند.
مالادی گفت: “ما از فناوری منبع باز استفاده می کنیم ، اما مانند سرور WebSocket ما نیز از ساخت داخل خانه دفاع می کنیم.” هدف، با تأیید اینکه منبع باز کار خود را تکمیل می کند.
[ad_2]
لینک منبع
ارسال نظر شما
مجموع نظرات : 0 در انتظار بررسی : 0 انتشار یافته : ۰