Alfresco ActiveMQ temel kurulumu
Alfresco - ActiveMQ Kurulumu

Alfresco ActiveMQ temel kurulumu

ActiveMQ, birçok protokolü destekleyen Apache Software Foundation tarafından sunulan açık kaynaklı bir Java Mesajlaşma Sunucusudur (JMS). ActiveMQ Alfresco 5'te isteğe bağlı bir bileşen olarak tanıtıldı. Başlangıçta, Alfresco 5.0'ın başlarında Alfresco Analytics veya Alfresco Media Management gibi "yan" özellikler için kullanılıyordu. Alfresco 6.0'da ActiveMQ, Alfresco Media Management için ve aynı zamanda Alfresco Sync Hizmeti için hala kullanılıyordu. ActiveMQ, aynı şeyler için kullanılan ama şimdi dönüşümler (transformations) için de kullanılan gerekli bir bileşen haline geldi ve 2019 Şubat ayında piyasaya sürülen Alfresco 6.1 ile zorunlu hale gelmişe benziyor.

Ne yazık ki Alfresco dokümantasyonu, ActiveMQ'nun nasıl kurulacağını veya nasıl yapılandırılacağını tam açıklamıyor, sadece Alfresco'nun ona nasıl bağlanacağını açıklıyor. Bu nedenle, Alfresco'da bir kullanım için ActiveMQ'nun temel kurulumunun nasıl yapılacağına dair küçük bir blog yazısı yazmak şart oldu.

Alfresco 6.1, ActiveMQ v5.15.6'yı desteklediğinden, bu blog için örnek olarak kullanacağım.

Öncelikle, ActiveMQ ikili dosyalarını ve verilerini nereye koyacağınızı bilmek için kullanılacak bazı ortam değişkenlerini tanımlayarak başlayalım:

echo "export ACTIVEMQ_HOME=/opt/activemq" >> ~/.profile
echo "export ACTIVEMQ_DATA=\$ACTIVEMQ_HOME/data" >> ~/.profile
[[email protected]_n1 ~]$
grep "ACTIVEMQ" ~/.profile
export ACTIVEMQ_HOME=/opt/activemq
export ACTIVEMQ_DATA=$ACTIVEMQ_HOME/data
[[email protected]_n1 ~]$
source ~/.profile
[[email protected]_n1 ~]$
echo $ACTIVEMQ_DATA
/opt/activemq/data
[[email protected]_n1 ~]$

Genelde tüm bileşenler için sembolik bağlantılar kullanıyorum, böylece yükseltme durumunda genel bir yol tutabilirim, ayrıca… Öyleyse, yazılımı indirelim ve olması gereken yere koyalım:

activemq_version="5.15.6"
wget http://archive.apache.org/dist/activemq/${activemq_version}/apache-activemq-${activemq_version}-bin.tar.gz
tar -xzf apache-activemq-${activemq_version}-bin.tar.gz
mkdir -p $ACTIVEMQ_HOME-${activemq_version}
ln -s $ACTIVEMQ_HOME-${activemq_version} $ACTIVEMQ_HOME
ls -l $ACTIVEMQ_HOME/.. | grep -i activemq
lrwxr-xr-x   1 alfresco  alfresco        31 Jul 25 17:04 activemq -> /opt/activemq-5.15.6
drwxr-xr-x   2 alfresco  alfresco        64 Jul 25 17:03 activemq-5.15.6
rm -rf ./apache-activemq-${activemq_version}/data
mkdir -p $ACTIVEMQ_DATA
mv apache-activemq-${activemq_version}/* $ACTIVEMQ_HOME/

Bu yapıldıktan sonra ve ActiveMQ ilk kez başlatılmadan önce, hala yapılması gereken bazı yapılandırmalar var. Alfresco ile ActiveMQ arasındaki iletişim için belirli bir kimlik doğrulaması eklemek veya iletişimleri SSL olarak kurmak teknik olarak mümkün. Bu ActiveMQ için sahip olacağınız kullanıma bağlı ancak Alfresco ile kullanım için asgari bir yapılandırma olarak, varsayılan kullanıcıların (docbroker'a erişmek için "misafir" ve web konsoluna erişmek için "kullanıcı") en azından kaldırılması gerektiğine inanıyorum. yönetici şifresi değiştirildi:

activemq_admin_pwd="Act1v3MQ_pwd"
activemq_broker_name="`hostname -s`"

# Remove user "user" from the web console
sed -i "/^user:[[:space:]]*.*/d" $ACTIVEMQ_HOME/conf/jetty-realm.properties

# Remove user "guest" from the broker
sed -i "/^guest.*/d" $ACTIVEMQ_HOME/conf/credentials.properties

# Change admin password
sed -i "s/^admin=.*/admin=${activemq_admin_pwd}\n/" $ACTIVEMQ_HOME/conf/users.properties
sed -i "s/^admin.*/admin: ${activemq_admin_pwd}, admin/" $ACTIVEMQ_HOME/conf/jetty-realm.properties
sed -i "s/^activemq.username=.*/activemq.username=admin/" $ACTIVEMQ_HOME/conf/credentials.properties
sed -i "s/^activemq.password=.*/activemq.password=${activemq_admin_pwd}/" $ACTIVEMQ_HOME/conf/credentials.properties

grep -E "brokerName|storeUsage |tempUsage " $ACTIVEMQ_HOME/conf/activemq.xml
    <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}">
                <storeUsage limit="100 gb"/>
                <tempUsage limit="50 gb"/>

# Set broker name & allowed usage
sed -i "s/brokerName=\"[^\"]*\"/brokerName=\"${activemq_broker_name}\"/" $ACTIVEMQ_HOME/conf/activemq.xml
sed -i 's,storeUsage limit="[^"]*",storeUsage limit="10 gb",' $ACTIVEMQ_HOME/conf/activemq.xml
sed -i 's,tempUsage limit="[^"]*",tempUsage limit="5 gb",' $ACTIVEMQ_HOME/conf/activemq.xml

grep -E "brokerName|storeUsage |tempUsage " $ACTIVEMQ_HOME/conf/activemq.xml
    <broker xmlns="http://activemq.apache.org/schema/core" brokerName="mq_n1" dataDirectory="${activemq.data}">
                    <storeUsage limit="10 gb"/>
                    <tempUsage limit="5 gb"/>

chmod -R o-rwx $ACTIVEMQ_HOME
chmod -R o-rwx $ACTIVEMQ_DATA


Yukarıda, broker için belirli bir isim belirledim, bu esas olarak, bazı noktalarda onları farklılaştırmak için birkaç broker görmeyi bekliyorsanız. Ayrıca varsayılan storeUsage ve tempUsage değerlerini de değiştiriyorum, bu temelde nasıl yapıldığını göstermek için, çünkü bu iki parametre ActiveMQ'nun dosya sisteminde kullanabileceği sınırı tanımlar. Varsayılan değerin ActiveMQ’nin Alfresco’daki kullanımı için çok fazla olduğuna inanıyorum, bu yüzden her zaman bunları azaltır veya değer olarak bir yüzde (percentLimit) kullanırım.

Varsayılan yapılandırmayla, ActiveMQ, eğer mevcutsa, "$ACTIVEMQ_DATA" ortam değişkenini kullanan veri dizini için "${activemq.data}" kullanır (aksi takdirde, $ACTIVEMQ_HOME/data olarak ayarlar). Bu ortam değişkenini ayarlamamın nedeni budur, böylece varsayılan yapılandırmayı değiştirmek zorunda kalmadan farklı bir veri klasörü tanımlamak mümkündür. Bu veri klasörü esas olarak ActiveMQ günlüklerini, PID dosyasını ve kalıcılık adaptörü için KahaDB'yi içerecektir.

Son olarak ActiveMQ için bir hizmet oluşturmak ve onu başlatmak da oldukça kolaydır:

cat > activemq.service << EOF
[Unit]
Description=ActiveMQ service
 
[Service]
Type=forking
ExecStart=###ACTIVEMQ_HOME###/bin/activemq start
ExecStop=###ACTIVEMQ_HOME###/bin/activemq stop
Restart=always
User=alfresco
WorkingDirectory=###ACTIVEMQ_DATA###
LimitNOFILE=8192:65536
 
[Install]
WantedBy=multi-user.target
EOF

sed -i "s,###ACTIVEMQ_HOME###,${ACTIVEMQ_HOME}," activemq.service
sed -i "s,###ACTIVEMQ_DATA###,${ACTIVEMQ_DATA}," activemq.service

sudo cp activemq.service /etc/systemd/system/
rm activemq.service

sudo systemctl enable activemq.service
sudo systemctl daemon-reload

sudo systemctl start activemq.service

ActiveMQ istediğiniz gibi kurulduktan sonra, Alfresco'da kayıt olmak çok kolaydır:

cat $CATALINA_HOME/shared/classes/alfresco-global.properties
...
### ActiveMQ
messaging.broker.url=failover:(tcp://mq_n1.domain:61616?daemon=false&dynamicManagement=false&trace=false)?timeout=3000&randomize=false
#messaging.username=
#messaging.password=

Bu blogun başında belirtildiği gibi, ActiveMQ birçok protokolü destekler, böylece istediğiniz kadar çok şey kullanabilirsiniz: TCP, NIO, SSL, NIO SSL, Peer (2 Peer), UDP, Multicast, HTTP, HTTPS, aso ... Bununla ilgili tüm detayları burada bulabilirsiniz.

Alfresco ve ActiveMQ arasına kimlik doğrulama eklemek için, alfresco-global.properties dosyasındaki (yukarıda açıkladığım ikisi) özellikleri etkinleştirmeniz ve ActiveMQ aracı yapılandırmasında uygun kimlik doğrulamasını tanımlamanız gerekir. Alfresco belgelerinde bir örnek var.

içinde Alfresco
Activiti 7 BPM Cloud'a Genel Bakış
Activiti 7 BPM Cloud, bulut ortamlarındaki BPM uygulamaları için ölçeklenebilir ve şeffaf bir çözüm sağlamak üzere oluşturulmuş ilk Bulut Yerel BPM çerçevesidir.