easymq 用于替代qpid的消息中間件。通信基礎(chǔ)采用tce引擎,提供topic和queue兩種隊列。
mq服務(wù)器啟動加載mq條目,建立mq內(nèi)存對象,提供認證,客戶程序連接時指定mq名稱和認證口令,
管理程序可以動態(tài)增加、刪除和監(jiān)視隊列。
mq持久化支持,根據(jù)創(chuàng)建參數(shù)控制durable。
easymq第一個版利用可以用python實現(xiàn),之后考慮資源利用和系統(tǒng)會用c++實現(xiàn)
easymq是tce一個很好的應(yīng)用。
定位夠輕,夠簡單,暫不考慮負載均橫和自動路由。
實例化mq服務(wù)器
1 def start(self):
2 tce.RpcCommunicator.instance().init('easymq.server')
3 ep = tce.RpcEndPoint(host=self.default_host,port=self.default_port)
4 adapter = tce.RpcCommunicator.instance().createAdapter('first',ep)
5 servant = self
6 adapter.addServant(servant)
7 print 'wait for shutdown..'
8 tce.RpcCommunicator.instance().waitForShutdown()
1 server = Server.instance()
2 print 'easymq server launched..'
3 server.init().start()
接收消息
1 import easymq
2
3 def readThread(conn):
4 while True:
5 m = conn.read( )
6 print 'got one:',m
7
8 if __name__=='__main__':
9 easymq.init()
10 conn = easymq.Connection(('127.0.0.1',12301),'test',mode=easymq.READWRITE)
11 conn.open()
12 readThread(conn)
發(fā)送消息到接收者
1 import easymq
2
3 if __name__=='__main__':
4 easymq.init()
5
6 conn = easymq.Connection(('127.0.0.1',12301),'test',mode=easymq.WRITE)
7 conn.open()
8 for n in range(100):
9 conn.write(str(n)*10)
10 # waitForShutdown()
11 gevent.sleep(2)