প্রকল্প সম্পর্কে
Centrifugo একটি ওপেন-সোর্স, স্কেলযোগ্য রিয়েল-টাইম মেসেজিং সার্ভার যা WebSocket, HTTP-streaming, Server-Sent Events (SSE), GRPC এবং WebTransport (পরীক্ষামূলক) সহ বিভিন্ন ট্রান্সপোর্টের মাধ্যমে অনলাইন ব্যবহারকারীদের কাছে বার্তা পৌঁছে দেওয়ার জন্য ডিজাইন করা হয়েছে। এটি একটি ব্যবহারকারী-মুখী PUB/SUB মডেল প্রয়োগ করে যেখানে ক্লায়েন্টরা চ্যানেলে সাবস্ক্রাইব করে এবং একটি সাধারণ HTTP বা GRPC API-এর মাধ্যমে ব্যাকএন্ড দ্বারা প্রকাশিত বার্তা গ্রহণ করে। এটি এটিকে ভাষা-নিরপেক্ষ করে তোলে এবং চ্যাট অ্যাপ, লাইভ কমেন্ট, মাল্টিপ্লেয়ার গেম, রিয়েল-টাইম ড্যাশবোর্ড, সহযোগিতামূলক টুল এবং AI স্ট্রিমিং প্রতিক্রিয়া তৈরির জন্য উপযুক্ত করে তোলে।
মূল বৈশিষ্ট্যগুলির মধ্যে রয়েছে:
- **দক্ষ ট্রান্সপোর্ট**: WebSocket, HTTP-streaming, SSE, GRPC, WebTransport।
- **স্কেলযোগ্যতা**: অনুভূমিক স্কেলিংয়ের জন্য Redis (Redis Cluster এবং Valkey, KeyDB, DragonflyDB-এর মতো সামঞ্জস্যপূর্ণ স্টোর সহ), PostgreSQL বা Nats-এর বিল্ট-ইন সমর্থন।
- **সহজ সার্ভার API**: ব্যাকএন্ড যোগাযোগের জন্য HTTP এবং GRPC এন্ডপয়েন্ট।
- **অ্যাসিঙ্ক্রোনাস কনজিউমার**: ট্রানজ্যাকশনাল আউটবক্স এবং CDC প্যাটার্নের জন্য PostgreSQL এবং Kafka কনজিউমার।
- **নমনীয় প্রমাণীকরণ**: JWT-ভিত্তিক বা ব্যাকএন্ড অনুরোধের মাধ্যমে প্রক্সি-সদৃশ প্রমাণীকরণ।
- **সমৃদ্ধ সাবস্ক্রিপশন মডেল**: Stream (ক্লায়েন্ট/সার্ভার-সাইড), map, shared poll এবং proxy subscription streams।
- **চ্যানেল অনুমতি**: Namespace ধারণা এবং বিভিন্ন অনুমতি কৌশল।
- **বার্তা ইতিহাস এবং পুনরুদ্ধার**: পুনঃসংযোগে স্বয়ংক্রিয় পুনরুদ্ধার সহ হট হিস্টরি, প্লাস ক্যাশে পুনরুদ্ধার মোড।
- **ডেল্টা কম্প্রেশন**: ব্যান্ডউইথ কমাতে Fossil অ্যালগরিদমের উপর ভিত্তি করে।
- **Presence**: join/leave বিজ্ঞপ্তি সহ অনলাইন চ্যানেল presence।
- **RPC**: রিয়েল-টাইম সংযোগের মাধ্যমে ব্যাকএন্ডে RPC কল পাঠান।
- **ক্লায়েন্ট প্রোটোকল**: JavaScript, Dart/Flutter, Swift, Java, Python, Go এবং .NET (WIP)-এর জন্য অফিসিয়াল SDK সহ কঠোর এবং কার্যকর প্রোটোকল।
- **ডেটা ফরম্যাট**: অপ্টিমাইজড সিরিয়ালাইজেশন এবং ব্যাচিং সহ JSON এবং বাইনারি Protobuf।
- **Admin UI**: মনিটরিং এবং পরীক্ষার জন্য এমবেডেড ওয়েব ইন্টারফেস।
- **পর্যবেক্ষণযোগ্যতা**: Prometheus মেট্রিক্স এবং একটি অফিসিয়াল Grafana ড্যাশবোর্ড।
Centrifugo Pubnub, Pusher এবং Ably-এর মতো বাণিজ্যিক পরিষেবা, সেইসাথে socket.io এবং SignalR-এর মতো ফ্রেমওয়ার্কের একটি self-hosted বিকল্প হিসেবে অবস্থান করছে। এটি একবার সেট আপ করে অনির্দিষ্টকালের জন্য ব্যবহার করার জন্য ডিজাইন করা হয়েছে, ব্যবসায়িক লজিক থেকে রিয়েল-টাইম ট্রান্সপোর্টকে আলাদা করে।
Docker-এর সাথে দ্রুত শুরু:
```bash
docker run -it --rm -p 8000:8000 centrifugo/centrifugo:latest centrifugo --client.insecure --admin.enabled --admin.insecure
```
তারপর admin UI-এর জন্য http://localhost:8000 খুলুন। insecure ফ্ল্যাগগুলি শুধুমাত্র স্থানীয় ট্রায়ালের জন্য।
প্রোডাকশনের জন্য, অফিসিয়াল ডকুমেন্টেশন সাইট (centrifugal.dev)-এ ইনস্টলেশন এবং কুইকস্টার্ট গাইড অনুসরণ করুন। প্রকল্পটি Telegram এবং Discord-এর মাধ্যমে সম্প্রদায় সমর্থন সহ সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হয়।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.