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 [alfresco@mq_n1 ~]$ grep "ACTIVEMQ" ~/.profile export ACTIVEMQ_HOME=/opt/activemq export ACTIVEMQ_DATA=$ACTIVEMQ_HOME/data [alfresco@mq_n1 ~]$ source ~/.profile [alfresco@mq_n1 ~]$ echo $ACTIVEMQ_DATA /opt/activemq/data [alfresco@mq_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.