搭建cronsun分布式任務多節點

2021-09-23 18:39:57 字數 2637 閱讀 3556

環境:centos7

安裝包: 

cronsun

wget (unzip解壓)

mongodb

wget (tar -xzvf 解壓)

etcd

wget  (tar -xzvf 解壓)

一, mongodb 啟動

$ cd /opt/mongodb-v4.0.2

$ mkdir -p data/db

$mkdir logs

$touch mongodb.conf

$vim mongodb.com

dbpath=/opt/mongodb-v4.0.2/data/db

logpath=/opt/mongodb-v4.0.2/logs/mongo.log  

bind_ip=0.0.0.0  #預設是127.0.0.1, 多節點需要允許其他的ip連線, 所有配置為0.0.0.0,允許其他ip連線

fork=true

port=27017

$nohup  bin/mongod -f mongodb.conf  > /dev/null 2>&1 &

二,etcd

$nohup ./etcd --advertise-client-urls= --listen-client-urls= --data-dir=/opt/etcd-v3.3.13/data   >/dev/null 2>&1 &
三:cronsun

$cd /opt/ cronsun-v0.3.5

$nohup ./cronweb -conf conf/base.json > /dev/null 2>&1 &

$nohup ./cronnode -conf conf/base.json > /dev/null 2>&1 &

到此單節點任務系統就可以了 訪問 http://ip:7079

四, 新增節點, 

在需新增的節點執行scp命令, 把cronsun包拷貝過去

$scp -r [email protected]:/opt/cronsun-v0.3.5 /opt

$vim /opt/cronsun-v0.3.5/conf/db.json

"hosts": [

"192.168.0.119:27017" # 這裡改為mongodb監聽的ip和埠

],$vim /opt

"endpoints":[

"" # 這裡改為etcd監聽的ip和埠

],$nohup ./cronnode -conf conf/base.json > /dev/null 2>&1 &

再開啟 http://ip:7079 重新整理頁面 , 會發現增加節點了。。

五,測試

在兩個節點寫個測試shell

測試兩台機子都會執行任務。。

六:開啟任務監控

發現配置好mail.json後啟動 cronweb 報錯:

找了很多原因,換了好幾個郵箱,作者說換成163的郵箱也是報錯, 然後看原始碼:

67行:有錯誤輸出, 是因為呼叫cronsun.newmail()報錯。找了找原因沒有找到, 就麼有深入找了

然後看到可以httpapi方法可以跳過錯誤, 如是使用httpapi方法。

在自己專案裡面寫了個介面,接收cronsun 請求過來的資料,請求方法為post

傳送的資料格式 

[

'subject' => '', # 郵件titile

'to' => , # 接受者

'body' => '', # 內容

]

在介面寫個郵件傳送就ok 了。

分布式任務排程

定時job,在什麼時間進行執行 任務。public static void main string args catch exception e thread thread new thread runnable thread.start public static void main string...

Celery分布式任務

celery分布式任務 celery call把任務給乙個元件,元件交給rabiitmq放到佇列broker,佇列返回任務id給celery元件再給call,任務完成時call拿著id通過celery去rabbitmq取。broker發任務給worker 1.celery有以下優點 簡單 一單熟悉了...

mysql分布式搭建 MySQL分布式集群搭建

1 準備集群搭建環境 使用6臺虛擬機器來搭建mysql分布式集群,相應的實驗環境與對應的mysql節點之間的對應關係如下圖所示 管理節點 mgm 這類節點的作用是管理mysqlcluster內的其他節點,如提供配置資料,並停止節點,執行備份等。由於這類節點負責管理其他節點的配置,應該在啟動其他節點之...