Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
·Ö²¼Ê½ÏûÏ¢¶ÓÁÐRocketMQ²¿ÊðÓë¼à¿Ø
 
×÷Õߣºworkming À´Ô´£ºCSDN ·¢²¼ÓÚ£º 2015-04-08
  9677  次浏览      29
 

Ò»¡¢RocketMQ¼ò½é

RocketMQÊÇÒ»¿î·Ö²¼Ê½¡¢¶ÓÁÐÄ£Ð͵ÄÏûÏ¢Öмä¼þ£¬¾ßÓÐÒÔÏÂÌØµã£º

1¡¢Ö§³ÖÑϸñµÄÏûϢ˳Ðò£»

2¡¢Ö§³ÖTopicÓëQueueÁ½ÖÖģʽ£»

3¡¢ÒÚ¼¶ÏûÏ¢¶Ñ»ýÄÜÁ¦£»

4¡¢±È½ÏÓѺõķֲ¼Ê½ÌØÐÔ£»

5¡¢Í¬Ê±Ö§³ÖPushÓëPull·½Ê½Ïû·ÑÏûÏ¢£»

±¾ÎIJÉÓÃË«MasterµÄ¼Ü¹¹Ä£Ê½¡£

¶þ¡¢·þÎñÆ÷·Ö²¼

1¡¢Ïà¹ØËµÃ÷

2¡¢hostsÐÅÏ¢Ìí¼Ó

# vim /etc/hosts
10.217.121.123 mqnameserver1
10.217.122.31 mqnameserver2
10.217.121.123 rocketmq-master1
10.217.122.31 rocketmq-master2

3¡¢ÏµÍ³»·¾³

CentOS 6.30

4¡¢×ÜÌå¼Ü¹¹

wKioL1PuQE3DcTjUAAE4E08WEfw644.jpg

Èý¡¢RocketMQ°²×°ÓëÅäÖÃ

1¡¢JDK°²×°

http://download.oracle.com/otn-pub/java/jdk/7u65-b17/jdk-7u65-linux-x64.tar.gz
# tar xvzf jdk-7u65-linux-x64.gz -C /usr/local
# rm -f jdk-7u65-linux-x64.gz
# cd /usr/local && ln -s jdk1.7.0_65 jdk
# cd /usr/local/bin && ln -s /usr/local/jdk/bin/java

2¡¢RocketMQ°²×°

https://github.com/alibaba/RocketMQ/releases
# tar xvzf alibaba-rocketmq-3.1.7.tar.gz -C /usr/local
# mv alibaba-rocketmq alibaba-rocketmq-3.1.7
# ln -s alibaba-rocketmq-3.1.7 rocketmq
# rm alibaba-rocketmq-3.1.7.tar.gz
# ll /usr/local

3¡¢»·¾³±äÁ¿ÉèÖÃ

# vim /etc/profile
export PATH=$PATH:/usr/local/bin


export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin


export ROCKETMQ_HOME=/usr/local/rocketmq
export PATH=$PATH::$ROCKETMQ_HOME/bin


# source /etc/profile
# cd /usr/local/rocketmq/bin && sh os.sh
¡·

4¡¢Ö÷»úÃûÉèÖÃ

(1)¡¢Master1·þÎñÆ÷

# vim /etc/hosts
10.217.121.123  mqnameserver1
10.217.122.31    mqnameserver2
10.217.121.123  rocketmq-master1
10.217.122.31    rocketmq-master2


# sed -i  '/HOSTNAME/d' /etc/sysconfig/network
# echo 'HOSTNAME=rocketmq-master1'  >> /etc/sysconfig/network
# hostname rocketmq-master1

(2)¡¢Master2·þÎñÆ÷

# vim /etc/hosts
10.217.121.123  mqnameserver1
10.217.122.31    mqnameserver2
10.217.121.123  rocketmq-master1
10.217.122.31    rocketmq-master2


# sed -i  '/HOSTNAME/d' /etc/sysconfig/network
# echo 'HOSTNAME=rocketmq-master2'  >> /etc/sysconfig/network
# hostname rocketmq-master2

5¡¢RocketMQÅäÖÃ

(1)¡¢Master1·þÎñÆ÷

# vim /usr/local/rocketmq/conf/2m-noslave/broker-a.properties
brokerClusterName=AdpMqCluster
brokerName=broker-a
brokerId=0
namesrvAddr=mqnameserver1:9876;mqnameserver2:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10911
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=50000000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
diskMaxUsedSpaceRatio=88


storePathRootDir=/data/rocketmq/store
storePathCommitLog=/data/rocketmq/store/commitlog


maxMessageSize=65536


flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000


brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH


checkTransactionMessageEnable=false


sendMessageThreadPoolNums=128
pullMessageThreadPoolNums=128

(2)¡¢Master2·þÎñÆ÷

# vim /usr/local/rocketmq/conf/2m-noslave/broker-b.properties
brokerClusterName=AdpMqCluster
brokerName=broker-b
brokerId=1
namesrvAddr=mqnameserver1:9876;mqnameserver2:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10911
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=50000000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
diskMaxUsedSpaceRatio=88


storePathRootDir=/data/rocketmq/store
storePathCommitLog=/data/rocketmq/store/commitlog


maxMessageSize=65536


flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000


brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH


checkTransactionMessageEnable=false


sendMessageThreadPoolNums=128
pullMessageThreadPoolNums=128

(3)¡¢runbroker.sh²ÎÊýµ÷Õû

runbroker.shÐèÒª¸ù¾ÝÄÚ´æ´óС½øÐÐÊʵ±µØµ÷Õû

JAVA_OPT_1="-server-Xms80g -Xmx80g -Xmn20g -XX:PermSize=1g -XX:MaxPermSize=1g"

6¡¢·þÎñÆô¶¯

# mkdir -p /data/rocketmq/store/commitlog  /data/logs
# cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/data#g' *.xml

(1)¡¢Æô¶¯NameServer¡¾master1¡¢master2¡¿

# cd /usr/local/rocketmq/bin
# nohup sh mqnamesrv &

(2)¡¢Æô¶¯BrokerServer A¡¾master1¡¿

# cd /usr/local/rocketmq/bin
# nohup sh mqbro ker -c ../conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &

(3)¡¢Æô¶¯BrokerServer B¡¾master2¡¿

# cd /usr/local/rocketmq/bin
# nohup sh mqbroker -c ../conf/2m-noslave/broker-b.properties  >/dev/null 2>&1 &
# netstat -ntlp
# jps

ËÄ¡¢RocketMQ·þÎñ½¡¿µ¼à¿Ø

1¡¢ÒÀÀµ×é¼þ°²×°

# yum -y install nmap

2¡¢nameserver¼à¿Ø

# vim /data/scripts/check_nameserver_health.sh

#!/bin/sh 
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin

SRV_PORT="9876" ## ¶Ë¿ÚºÅ
SRV_PROT="tcp" ## ЭÒéÀàÐÍ
SRV_NAME="rocketmq_nameserver" ## ·þÎñÃû

## ÊÇ·ñÒÑÕýȷɨÃè
SCAN_FLAG=0

for ETH_NAME in `/sbin/ifconfig | grep eth1 | awk '{print $1}'`
do
ETH1_ADDR=`/sbin/ifconfig ${ETH_NAME} | awk -F ':' '/inet addr/{print $2}' | sed 's/[a-zA-Z ]//g'`
[[ -z "${ETH1_ADDR}" ]] && continue || break
done

TMP_SRV_PROT=`echo ${SRV_PROT} | tr '[A-Z]' '[a-z]'`

if [[ "${TMP_SRV_PROT}" == "tcp" ]]; then
PROT_OPT="S"
elif [[ "${TMP_SRV_PROT}" == "udp" ]]; then
PROT_OPT="U"
else
echo "δ֪µÄЭÒéÀàÐÍ£¡" && exit1
fi

## ×î¶àɨÃè3´Î£¬³É¹¦Ò»´Î¼´¿É£¬ÒÔ±ÜÃâÍøÂç¶¶¶¯¶øµ¼ÖÂÎóÅÐ
for ((i=0; i<3; i++)); do
RETVAL=`/usr/bin/nmap -n -s${PROT_OPT} -p ${SRV_PORT} ${ETH1_ADDR} | grep open`
[[ -n "${RETVAL}" ]] && SCAN_FLAG=1;break || sleep 10
done

if [[ ${SCAN_FLAG} -ne 1 ]]; then
[[ -n `ps aux | grep java | grep namesrv` ]] && kill -9 `ps aux | grep java | awk '/namesrv/{print $2}'`
cd /usr/local/rocketmq/bin && nohup sh mqnamesrv &
fi

3¡¢brokerserver¼à¿Ø

# vim /data/scripts/check_brokerserver_health.sh

#!/bin/sh 
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin

SRV_PORT="10911" ## ¶Ë¿ÚºÅ
SRV_PROT="tcp" ## ЭÒéÀàÐÍ
SRV_NAME="rocketmq_brokerserver" ## ·þÎñÃû

## ÊÇ·ñÒÑÕýȷɨÃè
SCAN_FLAG=0

for ETH_NAME in `/sbin/ifconfig | grep eth1 | awk '{print $1}'`
do
ETH1_ADDR=`/sbin/ifconfig ${ETH_NAME} | awk -F ':' '/inet addr/{print $2}' | sed 's/[a-zA-Z ]//g'`
[[ -z "${ETH1_ADDR}" ]] && continue || break
done

TMP_SRV_PROT=`echo ${SRV_PROT} | tr '[A-Z]' '[a-z]'`

if [[ "${TMP_SRV_PROT}" == "tcp" ]]; then
PROT_OPT="S"
elif [[ "${TMP_SRV_PROT}" == "udp" ]]; then
PROT_OPT="U"
else
echo "δ֪µÄЭÒéÀàÐÍ£¡" && exit1
fi

## ×î¶àɨÃè3´Î£¬³É¹¦Ò»´Î¼´¿É£¬ÒÔ±ÜÃâÍøÂç¶¶¶¯¶øµ¼ÖÂÎóÅÐ
for ((i=0; i<3; i++)); do
RETVAL=`/usr/bin/nmap -n -s${PROT_OPT} -p ${SRV_PORT} ${ETH1_ADDR} | grep open`
[[ -n "${RETVAL}" ]] && SCAN_FLAG=1;break || sleep 10
done

if [[ ${SCAN_FLAG} -ne 1 ]]; then
[[ -n `ps aux | grep java | grep broker` ]] && kill -9 `ps aux | grep java | awk '/broker/{print $2}'`
cd /usr/local/rocketmq/bin && nohup sh mqbroker -c ../conf/2m-noslave/broker-a.properties &
fi

ÒÔÉϺìÉ«±ê×¢²¿·Ö£¬ÔÚmaster2ÉϵÄÃû³ÆÎª¡°broker-b.properties¡±

4¡¢crontabÐÅÏ¢Ìí¼Ó

# touch /var/run/check_rocketmq_nameserver.lock
# touch /var/run/check_rocketmq_brokerserver.lock 


# echo 'touch /var/run/check_rocketmq_nameserver.lock' >> /etc/rc.d/rc.local 
# echo 'touch /var/run/check_rocketmq_brokerserver.lock' >> /etc/rc.d/rc.local

# crontab -e
*/2 * * * * (flock --timeout=0 /var/run/check_rocketmq_nameserver.lock 
/data/scripts/check_nameserver_health.sh >/dev/null 2>&1)

*/2 * * * * (flock --timeout=0 /var/run/check_rocketmq_brokerserver.lock 
/data/scripts/check_brokerserver_health.sh >/dev/null 2>&1)
   
9677 ´Îä¯ÀÀ       29
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þ
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS


ÃæÏòÓ¦Óõļܹ¹Éè¼ÆÊµ¼ù
µ¥Ôª²âÊÔ+ÖØ¹¹+Éè¼ÆÄ£Ê½
Èí¼þ¼Ü¹¹Ê¦¡ª¸ß¼¶Êµ¼ù
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù
SOAÌåϵ½á¹¹Êµ¼ù


Èñ°²¿Æ¼¼ Èí¼þ¼Ü¹¹Éè¼Æ·½·¨
³É¶¼ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£Æû³µ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
±±¾© Èí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£ Èí¼þ¼Ü¹¹Éè¼Æ°¸ÀýÓëʵ¼ù
±±¾© ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ÉîÛÚ ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù