国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

記一次刪除 RabbitMQ 消息的經歷

zr_hebo / 3585人閱讀

摘要:網頁刪除想要刪除隊列中的消息,是可以通過的網頁來操作的。但是這種方式存在一個問題,就是當消息多的時候點擊,頁面會卡死。在節點恢復正常之前,持久化隊列將不可用。所以這次我想要先清除指定隊列的消息即可。網上搜了一下版本的消息。

前因

在公司最新的項目上,由我們技術總監搭了一套框架,其中有使用RabbitMq來監聽監聽寫事件,這也是我第一次使用RabbitMq。因為在開發的過程中,有些事件會因為代碼的不完善消費失敗,然后就會一直消費,然后一直報錯。當bug修復,把正確的代碼上傳到開發環境,原先遺留的問題消息任然存在,并且會阻塞隊列,讓之后的正常的消息無法讓系統正常的消費。

網頁刪除

想要刪除隊列中的消息,是可以通過RabbitMq的網頁來操作的。登錄上RabbitMQ Management之后,在 Queues 中打開指定的隊列:

然后在下方的 Delete / purge 中點擊 Delete 或者是 purge 都可以達到效果。

但是這種方式存在一個問題,就是當消息多的時候點擊,頁面會卡死。即使沒有卡死也會出現如下對話框:

大概意思是找不到這個持久隊列,主節點已經關閉或者是無法訪問。

現在只是小白階段,然后有點搞不懂,網上也沒有搜索到什么有用的答案。只找到一句話,來自:https://blog.csdn.net/u011973...

如果隊列的主節點不可用,則非鏡像隊列的行為取決于其持久性。在節點恢復正常之前,持久化隊列將不可用。在集群中其他節點上對主節點不可用的持久化隊列進行任何操作都將失敗

沒有深究

重置RabbitMQ

然后我就去網上百度了一下,如何使用命令操作,然后找到了下面的解決方法:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app

執行了一次之后確實是有效的。重啟的RabbitMq,然后里面的消息也確實清空了。

然后我當上述的情況再次發生,需要清空消息,這樣個時候我不想用這樣一看就很粗暴的方式來操作,而且這種方式不僅會清空消息,還會清空所有配置信息。所以這次我想要先清除指定隊列的消息即可。

刪除指定的隊列

然后我找到了這個方法:

sudo rabbitmqctl purge_queue ${queue_name}
或
rabbitmqctl purge_queue ${queue_name}
或
rabbitmqctl -p ${vhostpath} purge_queue ${queue_name}

執行報錯,說是找不到這個命令,給出的信息如下:

Error: could not recognise command
Usage:
rabbitmqctl [-n ] [-q]  [] 

Options:
    -n node
    -q

Default node is "rabbit@server", where server is the local host. On a host 
named "server.example.com", the node name of the RabbitMQ Erlang node will 
usually be rabbit@server (unless RABBITMQ_NODENAME has been set to some 
non-default value at broker startup time). The output of hostname -s is usually 
the correct suffix to use after the "@" sign. See rabbitmq-server(1) for 
details of configuring the RabbitMQ broker.

Quiet output mode is selected with the "-q" flag. Informational messages are 
suppressed when quiet mode is in effect.

Commands:
    stop []
    stop_app
    start_app
    wait 
    reset
    force_reset
    rotate_logs 

    join_cluster  [--ram]
    cluster_status
    change_cluster_node_type disc | ram
    forget_cluster_node [--offline]
    update_cluster_nodes clusternode
    sync_queue queue
    cancel_sync_queue queue
    set_cluster_name name

    add_user  
    delete_user 
    change_password  
    clear_password 
    set_user_tags   ...
    list_users

    add_vhost 
    delete_vhost 
    list_vhosts [ ...]
    set_permissions [-p ]    
    clear_permissions [-p ] 
    list_permissions [-p ]
    list_user_permissions 

    set_parameter [-p ]   
    clear_parameter [-p ]  
    list_parameters [-p ]

    set_policy [-p ] [--priority ] [--apply-to ] 
   
    clear_policy [-p ] 
    list_policies [-p ]

    list_queues [-p ] [ ...]
    list_exchanges [-p ] [ ...]
    list_bindings [-p ] [ ...]
    list_connections [ ...]
    list_channels [ ...]
    list_consumers [-p ]
    status
    environment
    report
    eval 

    close_connection  
    trace_on [-p ]
    trace_off [-p ]
    set_vm_memory_high_watermark 

 must be a member of the list [name, tracing].

The list_queues, list_exchanges and list_bindings commands accept an optional 
virtual host parameter for which to display results. The default value is "/".

 must be a member of the list [name, durable, auto_delete, 
arguments, policy, pid, owner_pid, exclusive_consumer_pid, 
exclusive_consumer_tag, messages_ready, messages_unacknowledged, messages, 
consumers, consumer_utilisation, memory, slave_pids, synchronised_slave_pids, 
status].

 must be a member of the list [name, type, durable, 
auto_delete, internal, arguments, policy].

 must be a member of the list [source_name, source_kind, 
destination_name, destination_kind, routing_key, arguments].

 must be a member of the list [pid, name, port, host, 
peer_port, peer_host, ssl, ssl_protocol, ssl_key_exchange, ssl_cipher, 
ssl_hash, peer_cert_subject, peer_cert_issuer, peer_cert_validity, state, 
channels, protocol, auth_mechanism, user, vhost, timeout, frame_max, 
channel_max, client_properties, recv_oct, recv_cnt, send_oct, send_cnt, 
send_pend].

 must be a member of the list [pid, connection, name, number, 
user, vhost, transactional, confirm, consumer_count, messages_unacknowledged, 
messages_uncommitted, acks_uncommitted, messages_unconfirmed, prefetch_count, 
global_prefetch_count].

實際上使用 rabbitmqctl -help 就能得到這些內容。

可以看的出來,這里面已經 rabbitmqctl 所支持的命令都列了出來。其中并沒有 purge_queue 這個命令。不知道是不是版本問題還是怎么回事。

rabbitmqadmin

然后在這里找到了 rabbitmqadmin 這個東西。官網地址:https://www.rabbitmq.com/mana... 。在上面看到了這么一行文字

Alternatively, you can download the version of rabbitmqadmin which corresponds with the management plugin version 3.7.17 from GitHub.

打開GitHub的鏈接:https://raw.githubusercontent.com/rabbitmq/rabbitmq-management/v3.7.17/bin/rabbitmqadmin 里面好像是 rabbitmqadmin 的代碼。看了一下路徑,v3.7.17。這個應該是要對應自己版本的。

rabbitmqctl status

查看版本:

[root@iZuf635fwy8k6ubk6r9yonZ ~]# rabbitmqctl status
Status of node rabbit@iZuf635fwy8k6ubk6r9yonZ ...
[{pid,3261},
 {running_applications,
     [{rabbitmq_management,"RabbitMQ Management Console","3.3.5"},
      {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.3.5"},
      {webmachine,"webmachine","1.10.3-rmq3.3.5-gite9359c7"},
      {mochiweb,"MochiMedia Web Server","2.7.0-rmq3.3.5-git680dba8"},
      {rabbitmq_management_agent,"RabbitMQ Management Agent","3.3.5"},
      {rabbit,"RabbitMQ","3.3.5"},
      {mnesia,"MNESIA  CXC 138 12","4.11"},
      {os_mon,"CPO  CXC 138 46","2.2.14"},
      {amqp_client,"RabbitMQ AMQP Client","3.3.5"},
      {inets,"INETS  CXC 138 49","5.9.8"},
      {xmerl,"XML parser","1.3.6"},
      {sasl,"SASL  CXC 138 11","2.3.4"},
      {stdlib,"ERTS  CXC 138 10","1.19.4"},
      {kernel,"ERTS  CXC 138 10","2.16.4"}]},
 {os,{unix,linux}},
 {erlang_version,
     "Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [async-threads:30] [hipe] [kernel-poll:true]
"},
 {memory,
     [{total,44920360},
      {connection_procs,944512},
      {queue_procs,911352},
      {plugins,406328},
      {other_proc,13412192},
      {mnesia,200144},
      {mgmt_db,391944},
      {msg_index,95648},
      {other_ets,1174432},
      {binary,2676288},
      {code,20229484},
      {atom,711569},
      {other_system,3766467}]},
 {alarms,[]},
 {listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]},
 {vm_memory_high_watermark,0.4},
 {vm_memory_limit,1654662758},
 {disk_free_limit,50000000},
 {disk_free,16424939520},
 {file_descriptors,
     [{total_limit,924},{total_used,9},{sockets_limit,829},{sockets_used,2}]},
 {processes,[{limit,1048576},{used,396}]},
 {run_queue,0},
 {uptime,3716267}]
...done.

結果發現自己的版本竟然是3.3.5。修改路徑https://raw.githubusercontent.com/rabbitmq/rabbitmq-management/v3.7.17/bin/rabbitmqadminhttps://raw.githubusercontent.com/rabbitmq/rabbitmq-management/v3.3.5/bin/rabbitmqadmin,訪問,顯示并沒有這個頁面。大概是版本太老了。網上搜了一下3.3.5版本的消息。發現這個版本大概是2014年左右的東西,時至今日已經五年過去了,也太老了吧。

本文章一次沒有寫完,在我寫的過程中,項目提交給測試進行部分測試,然后同事在test環境也安裝了一個RabbitMq。我登上去看了一下,嗯,是有 purge_queue 這個命令的。看了一下test的版本,3.6.8。果然還是版本問題。我之前一直操作的是dev服務器的東西,雖然本地也有安裝但是在本地進行簡單的時候還是很好處理的,注釋掉代碼,然后重新運行,消費掉垃圾消息即可。

至于 rabbitmqadmin ,官網上有這么一段話:

Obtaining rabbitmqadmin
With the management plugin installed, browse to http://{hostname}:15672/cli/rabbitmqadmin to download. The tool supports

大概意思就可以通過訪問 http://{hostname}:15672/cli/rabbitmqadmin 來下載 rabbitmqadmin 。沒有深入研究。到此為止,后續可能會更新相關內容。

發布文章的時候發現,過長的思否對過長的url省略的后面的部分,就像是這樣:https://raw.githubusercontent...
。所以在上面就對url稍微處理了一下。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75972.html

相關文章

  • 一次tornado QPS 優化

    摘要:初步分析提升可從兩方面入手,一個是增加并發數,其二是減少平均響應時間。大部分的時間花在系統與數據庫的交互上,到這,便有了一個優化的主題思路最大限度的降低平均響應時間。不要輕易否定一項公認的技術真理,要拿數據說話。 本文最早發表于個人博客:PylixmWiki 應項目的需求,我們使用tornado開發了一個api系統,系統開發完后,在8核16G的虛機上經過壓測qps只有200+。與我們當...

    Doyle 評論0 收藏0
  • 基于RabbitMQMQTT插件搭建MQTT服務,使用MQTTX進行收發測試

    摘要:本文基于的插件,針對進行簡單的測試。包括協議的介紹,的安裝配置開啟插件及基于進行的測試。協議是基于發布訂閱模型的物聯網消息傳遞協議。對傳輸消息有三種服務質量最多一次,這一級別會發生消息丟失或重復,消息發布依賴于底層網絡。 ...

    ymyang 評論0 收藏0
  • 如果連鐵將軍都不再可靠--一次排查使用分布式輪候鎖+SESSION防訂單重復仍然加鎖失效問題經歷

    摘要:盡可能地將數據寫入,例如創建設置的都會將數據立即的寫入再來看看文檔怎么描述的看看這可愛的默認值我們終于知道了當我們不做任何設置時,默認采用的是方式顯而易見,使用方式能最大限度的減少與的交互,而在大多數場景下都是沒有問題的。 0.問題背景 此次問題源于一次挺嚴重的生產事故:客戶的訂單被重復生成了,而出問題的代碼其實很簡單: // .... redisLockUtil.lock(membe...

    econi 評論0 收藏0

發表評論

0條評論

zr_hebo

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<