a伺服器是master,b伺服器為worker,
a伺服器上執行taskmanger.py
#coding:utf-8
import
random,time,queue
from multiprocessing.managers import
basemanager
#實現第一步:建立task_queue和result_queue,用來存放任務和結果
task_queue=queue.queue()
result_queue=queue.queue()
class
queuemanager(basemanager):
pass
#實現第二步:把建立的兩個佇列註冊在網路上,利用register方法,callable引數關聯了queue物件,
#將queue物件在網路中暴露
queuemanager.register('
get_task_queue
',callable=lambda
:task_queue)
queuemanager.register(
'get_result_queue
',callable=lambda
:result_queue)
#實現第三步:繫結埠8001,設定驗證口令『qiye』。這個相當於物件的初始化
manager=queuemanager(address=('',8001),authkey='
lsf')#
實現第四步:啟動管理,監聽資訊通道
manager.start()
#實現第五步:通過管理例項的方法獲得通過網路訪問的queue物件
task=manager.get_task_queue()
result=manager.get_result_queue()
#實現第六步:新增任務
for url in ["
imageurl_
"+str(i) for i in range(10)]:
'put task %s ...
' %url
task.put(url)
#獲取返回結果
'try get result...
'for i in range(10):
'result is %s
' %result.get(timeout=10)
#關閉管理
manager.shutdown()
b伺服器上執行worker的指令碼taskworker.py
#coding:utf-8
import
time
from multiprocessing.managers import
basemanager
#建立類似的queuemanager:
class
queuemanager(basemanager):
pass
#實現第一步:使用queuemanager註冊獲取queue的方法名稱
queuemanager.register('
get_task_queue')
queuemanager.register(
'get_result_queue')
#實現第二步:連線到伺服器:
server_addr = '
127.0.0.1
'print('
connect to server %s...
' %server_addr)
#埠和驗證口令注意保持與服務程序設定的完全一致:
m = queuemanager(address=(server_addr, 8001), authkey='
lsf')#
從網路連線:
m.connect()
#實現第三步:獲取queue的物件:
task =m.get_task_queue()
result =m.get_result_queue()
#實現第四步:從task佇列取任務,並把結果寫入result佇列:
while(not
task.empty()):
image_url = task.get(true,timeout=5)
print('
run task download %s...
' %image_url)
time.sleep(1)
result.put(
'%s--->success
'%image_url)
#處理結束:
print('
worker exit.
')
最簡單的分布式demo
使用springcloud 分別設定兩個埠 得到了資料 如下 如下 沒有較好的教程,遇見一點問題就要卡很久 值得注意的地方 pojo的資料型別是否與虛擬機器中的 型別一致。註解不要忘記。url不要輸入錯了。mysql5.6和5.7不相容 註冊中心高可用demo 右鍵copy乙個eureka,在def...
Zookeeper協調分布式節點demo
多台伺服器和客戶端通過第三方元件zookeeper管理 public class distributedserver catch exception e 向zk集群註冊伺服器資訊 public void registerserver string hostname throws exception ...
python分布式架構 分布式架構
1.分布式架構 採用centos mongodb windows2012 python redis進行分布式架構搭建,mongodb的框架最核心的設計就是 mongodb和mapreduce。mongodb為海量的資料提供了儲存,則mapreduce為海量的資料提供了計算,windows2012作為...