Thrift সার্ভার এবং ক্লায়েন্ট প্রজেক্ট তৈরি করা
Apache Thrift ব্যবহার করে একটি সার্ভার এবং ক্লায়েন্ট প্রজেক্ট তৈরি করা একটি সহজ প্রক্রিয়া। এটি আপনাকে বিভিন্ন প্রোগ্রামিং ভাষার মধ্যে RPC (Remote Procedure Call) ব্যবহার করে যোগাযোগ স্থাপন করতে সহায়ক। নিচে একটি সরল Thrift সার্ভার এবং ক্লায়েন্ট তৈরি করার পদক্ষেপ বর্ণনা করা হলো।
পদক্ষেপ ১: Thrift ইনস্টলেশন
- Thrift ইনস্টল করুন:
- আপনার সিস্টেমে Thrift ইনস্টল করতে হবে। এটি Apache Thrift অফিসিয়াল ওয়েবসাইট থেকে ডাউনলোড এবং ইনস্টল করা যায়।
- প্যাকেজ ম্যানেজার ব্যবহার করে ইনস্টল করতে পারেন (যেমন Homebrew বা APT) অথবা সোর্স কোড থেকে।
পদক্ষেপ ২: Thrift IDL ফাইল তৈরি করা
- IDL ফাইল তৈরি করুন:
- একটি ফাইল তৈরি করুন, উদাহরণস্বরূপ
calculator.thrift।
- একটি ফাইল তৈরি করুন, উদাহরণস্বরূপ
namespace py calculator // Python namespace
service CalculatorService {
i32 add(1: i32 num1, 2: i32 num2),
i32 subtract(1: i32 num1, 2: i32 num2)
}
পদক্ষেপ ৩: কোড জেনারেশন
- Thrift Compiler চালান:
- থ্রিফ কম্পাইলার ব্যবহার করে Python কোড জেনারেট করুন:
পদক্ষেপ ৪: সার্ভার বাস্তবায়ন
- সার্ভার কোড লিখুন:
- একটি ফাইল তৈরি করুন, উদাহরণস্বরূপ
server.py।
- একটি ফাইল তৈরি করুন, উদাহরণস্বরূপ
from thrift import Thrift
from thrift.transport import TTransport
from thrift.transport import TSocket
from thrift.protocol import TBinaryProtocol
from calculator import CalculatorService
class CalculatorServiceHandler:
def add(self, num1, num2):
return num1 + num2
def subtract(self, num1, num2):
return num1 - num2
def main():
handler = CalculatorServiceHandler()
processor = CalculatorService.Processor(handler)
transport = TSocket.TServerSocket(host='127.0.0.1', port=9090)
tfactory = TTransport.TBufferedTransportFactory()
pfactory = TBinaryProtocol.TBinaryProtocolFactory()
server = TServer.TSimpleServer(processor, transport, tfactory, pfactory)
print("Starting the server...")
server.serve()
if __name__ == '__main__':
main()
পদক্ষেপ ৫: ক্লায়েন্ট বাস্তবায়ন
- ক্লায়েন্ট কোড লিখুন:
- একটি ফাইল তৈরি করুন, উদাহরণস্বরূপ
client.py।
- একটি ফাইল তৈরি করুন, উদাহরণস্বরূপ
from thrift import Thrift
from thrift.transport import TTransport
from thrift.transport import TSocket
from thrift.protocol import TBinaryProtocol
from calculator import CalculatorService
def main():
transport = TSocket.TSocket('127.0.0.1', 9090)
tfactory = TTransport.TBufferedTransportFactory()
pfactory = TBinaryProtocol.TBinaryProtocolFactory()
transport = tfactory.getTransport(transport)
protocol = pfactory.getProtocol(transport)
client = CalculatorService.Client(protocol)
try:
transport.open()
num1 = 10
num2 = 5
print("Add:", client.add(num1, num2))
print("Subtract:", client.subtract(num1, num2))
finally:
transport.close()
if __name__ == '__main__':
main()
পদক্ষেপ ৬: সার্ভার এবং ক্লায়েন্ট চালানো
সার্ভার চালান:
python server.py
ক্লায়েন্ট চালান:
python client.py
সারসংক্ষেপ
এই পদক্ষেপগুলি অনুসরণ করে, আপনি Apache Thrift ব্যবহার করে একটি সরল সার্ভার এবং ক্লায়েন্ট প্রজেক্ট তৈরি করেছেন। সার্ভারটি দুইটি গণনা কার্যক্রম (যোগফল এবং বিয়োগফল) সম্পাদন করে এবং ক্লায়েন্টটি সার্ভারের সাথে সংযুক্ত হয়ে এই কার্যক্রমগুলি কল করে। Thrift-এর মাধ্যমে আপনি বিভিন্ন প্রোগ্রামিং ভাষার মধ্যে কার্যকরী যোগাযোগ স্থাপন করতে পারেন।
Read more