Cómo especificar jdk para RocketMQ1: Introducción a RocketMQ RocketMQ es un middleware de mensajes distribuido en modo cola con las siguientes características: 1. Capaz de garantizar un orden estricto de los mensajes 2. Proporciona extracción de mensajes enriquecida modo 3. Escalabilidad eficiente a nivel de usuario 4. Mecanismo de suscripción de mensajes en tiempo real 5. Capacidad de apilamiento de cientos de millones de mensajes 2: Instalar RocketMQ Descargar el código fuente Primero obtenemos el código fuente de RocketMQ de githup, la última versión es 3.5. 8, la dirección de descarga es: o wget/alibaba/RocketMQ/archive/v3.5.8.tar.gz. Tenga en cuenta: lo que descargamos en este momento es el código fuente, que no se puede usar después de descomprimirlo directamente, por lo que debe compilarse antes de poder usarse. Compile el código fuente Antes de compilar el código fuente, necesitamos instalar el JDK. Si ya está instalado, omita aquí. Si aún no ha instalado el JDK, consulte este artículo (Instalación del JDK en Linux). Luego también necesitamos instalar Maven. La instalación de Maven es relativamente simple. Solo necesita descomprimirlo directamente en la columna de instalación de la descarga oficial y luego configurar las variables de entorno. A continuación, descomprimimos el código fuente de RockeMQ que acabamos de descargar en la carpeta /usr/local/rockemq-source. Como se muestra en la figura siguiente, hay un Install.sh en el código fuente. Ejecute shinstall.sh. Una vez completada la compilación, solo necesitamos el contenido de la carpeta alibaba-rocketmq en el directorio de destino y mover el contenido de la carpeta alibaba-rocketmq a /usr/local/rocketmq. Si no desea compilar, puede descargar la versión compilada de rocketmq (rocketmq3.5.8) desde aquí. Configurar variables de entorno A continuación necesitamos configurar las variables de entorno. Ingrese el siguiente comando en la terminal: vi/etc/profile y agregue las siguientes dos oraciones al final del archivo: exportrocketmq=/usr/local/rocketmqexportPATH=$PATH:$rocketmq/bin. A continuación hacemos efectivas las variables configuradas: source/etc/profile. A continuación, iniciamos RocketMQ, que compilamos poco antes. Antes de iniciar RocketMQ, debemos cambiar el tamaño de la memoria de inicio de RocketMQ (ignore esto si su sistema tiene mucha memoria). Ingresemos /usr/local/rocketmq/bin e ingresemos el siguiente comando en la terminal para modificar el tamaño de la memoria de mqnamesrv: virunserver.sh. Después de la modificación, como se muestra en la siguiente figura: A continuación, modifique el tamaño de la memoria del agente: virunbroker.sh: Inicie mqnameserver e ingrese /usr/local/rocketmq/bin, ingrese el siguiente comando: nohupshmqnamesrv>~/logs/rocketmqlogs/ nombresrv.log2>&1&. Tenga en cuenta que el último & no debería faltar. Inicie mqbroker e ingrese /usr/local/rocketmq/bin, ingrese el siguiente comando: nohupshmqbroker-nlocalhost:9876 autoCreateTopicEnable=true>~/logs/rocketmqlogs/broker.log2>&1&. Nota: localhost se puede reemplazar con la IP donde se acaba de iniciar mqnamesrv. El último & no puede faltar. Podemos usar el comando psaux|grepjava para verificar el estado de inicio. En este punto, la instalación de rocketmq está completa.
Cuatro: un pequeño ejemplo de un productor RocketMQ: [java]viewplaincopypackagecom.zkn.newlearn.rocketmq;importcom.alibaba.rocketmq.client.exception.MQBrokerException;importcom.alibaba.rocketmq.client.exception.MQBrokerException;importcom.alibaba.rocketmq .client.exception.MQBrokerException;importcom.alibaba.rocketmq.client.exception.MQMQMQBrokerException;importcom.alibaba.rocketmq.client.exception.MQClientException;importcom.alibaba.rocketmq.client.producer.importcom.alibaba.rocketmq.client.producer .DefaultMQProducer;importcom.alibaba.rocketmq.client.producer.SendResult;importcom.alibaba.rocketmq.common.message.MQClientException;importcom.alibaba.rocketmq.remoting.exception.RemotingException;importjava.util.concurrent.TimeUnit;/** *Createdbyzknon2016/10/27.* /publicclassProducerTest01{publicstaticvoidmain(String[]args){/***La aplicación crea un Productor y la aplicación mantiene este objeto. Este objeto se puede configurar como un objeto global o un singleton. *Nota: ProducerGroupName requiere que la aplicación garantice su unicidad para garantizar la unicidad de ProducerGroup* El concepto de ProducerGroup se utiliza para enviar mensajes ordinarios, lo cual no es muy útil, pero es más crítico enviar mensajes de transacciones distribuidas, * porque el servidor volverá a comprobar Cualquier productor en el grupo * // DefaultMQProducerproducer = newDefaultMQProducer("ProducerGroupName");//producer.setNamesrvAddr("192.168.180.1:9876");producer.setNamesrvAddr("192.168.180.133:9876");producer.setInstanceName ( "Productor");/***Antes de usar el objeto Productor, debe inicializarse llamando a start y solo se puede inicializar una vez* Nota: recuerde que no se puede llamar al método start cada vez que se envía un mensaje* /try {producer.start();}catch(MQClientExceptione){e.printStackTrace();}for(inti=0;i<100;i++){try/****El siguiente código muestra que el Productor El objeto se puede enviar. Múltiples temas, múltiples mensajes etiquetados. *Nota: El método de envío se llama sincrónicamente, por lo que siempre que no se produzca ninguna excepción, se marcará como exitoso.