更新基本系統
在安裝任何軟件包之前,建議您使用以下命令更新軟件包和存儲庫。
yum -y update
更新系統后,進一步安裝Erlang。
安裝Erlang
RabbitMQ是用Erlang語言編寫的,在本教程中我們將安裝最新版本的Erlang到服務器中。 Erlang在默認的YUM存儲庫中不可用,因此您將需要安裝EPEL存儲庫。 運行以下命令相同。
yum -y install epel-release
yum -y update
現在使用以下命令安裝Erlang。
yum -y install erlang socat
您現在可以使用以下命令檢查Erlang版本。
erl -version
您將得到以下輸出。
[root@liptan-pc ~]# erl -version Erlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 5.10.4
要切換到Erlang shell,可以鍵入以下命令。
erl
shell將更改,您將得到以下輸出。
Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false] Eshell V5.10.4 (abort with ^G) 1>
您可以通過按ctrl + C兩次退出shell。 Erlang現在安裝在系統上,現在可以繼續安裝RabbitMQ。
RabbitMQ為預編譯並可以直接安裝的企業Linux系統提供RPM軟件包。 唯一需要的依賴是將Erlang安裝到系統中。 我們已經安裝了Erlang,我們可以進一步下載RabbitMQ。 通過運行下載Erlang RPM軟件包。
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
如果你沒有安裝wget ,可以運行yum -y install wget 。 您可以隨時找到最新版本的RabbitMQ下載頁面的鏈接。
通過運行導入GPG密鑰:
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
運行RPM安裝RPM包:
rpm -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpm
RabbitMQ現已安裝在您的系統上。
開始RabbitMQ
您可以通過運行以下命令啟動RabbitMQ服務器進程。
systemctl start rabbitmq-server
要在引導時自動啟動RabbitMQ,請運行以下命令。
systemctl enable rabbitmq-server
要檢查RabbitMQ服務器的狀態,請運行:
systemctl status rabbitmq-server
啟動RabbitMQ Web管理控制台,方法是運行:
rabbitmq-plugins enable rabbitmq_management
通過運行以下命令,將RabbitMQ文件的所有權提供給RabbitMQ用戶:
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
現在,您將需要為RabbitMQ Web管理控制台創建管理用戶。 運行以下命令相同。
rabbitmqctl add_user admin StrongPassword
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
將管理員更改為管理員用戶的首選用戶名。 確保將StrongPassword更改為非常強大的密碼。
要訪問RabbitMQ的管理面板,請使用您最喜愛的Web瀏覽器並打開以下URL。
http://Your_Server_IP:15672/
#guest 用戶默認只能本地登錄 可修改配置其他服務器可登錄
cd /etc/rabbitmq/ vi rabbitmq.config
添加配置:
[{rabbit, [{loopback_users, []}]}].
保存配置后重啟服務:
service rabbitmq-server stop service rabbitmq-server start
注意:記得開放 15672 5672 端口。
原文:https://www.howtoing.com/how-to-install-rabbitmq-server-on-centos-7/
springboot 整合配置
pom:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
<version>2.5.5</version>
</dependency>
yml:
rabbitmq:
host: 127.0.0.1
username: name
password: password
virtual-host: test
template:
exchange: exchange.name
publisher-confirm-type: none
消息序列化轉換配置(消息可通過實體傳遞):
@Bean
public MessageConverter getMessageConverter(){
return new Jackson2JsonMessageConverter();
}
消費者注解配置:
@Component
public class RabbitCustomer {
private ObjectMapper mapper=new ObjectMapper();
@RabbitListener(bindings = @QueueBinding(
value = @Queue(value = "ppg.rb.queue", durable = "true"),
exchange = @Exchange(
value = "ppg.rb.exchange",
ignoreDeclarationExceptions = "true",
type = ExchangeTypes.TOPIC
),
key = {"ppg.key.#"}))
public void listen(ListenBaseModel model) throws Exception {
System.out.println("接收到消息:"+mapper.writeValueAsString(model));
}
}