主頁 >  其他 > Linux、Windows安裝ActiveMQ

Linux、Windows安裝ActiveMQ

2021-11-07 07:19:51 其他

Linux、Windows安裝ActiveMQ

  • 一、下載
  • 二、Linux安裝
    • 2.1、下載方式
    • 2.2、測驗
    • 2.3、配置
  • 三、Windows安裝
  • 四、ActiveMQ集群
    • 4.1、為什么使用集群
    • 4.2、Master Slave 部署(主從)
      • 4.2.1、Share storage master slave(共享存盤)
      • 4.2.2、Replicated LevelDB Store(使用ZooKeeper協調多個Broker)
      • 4.2.3、KahaDB

一、下載

下載地址:https://activemq.apache.org/components/classic/download/

選擇相應的系統版本
在這里插入圖片描述

二、Linux安裝

2.1、下載方式

  • 下載tar.gz包到本地,然后上傳到服務器
  • 通過wget下載

安裝路徑:/opt/home/mq

## 下載
wget https://dlcdn.apache.org/activemq/5.16.3/apache-activemq-5.16.3-bin.tar.gz


## 復制到其它服務器
scp -r /opt/home/mq/apache-activemq-5.16.3-bin.tar.gz root@192.168.0.5:/opt/home/mq/

## 解壓
tar -zxvf apache-activemq-5.16.3-bin.tar.gz

## 切換到apache-activemq-5.16.3/bin/目錄下
cd apache-activemq-5.16.3/bin/

## 啟動
./activemq start

## 停止
./activemq stop

## 重啟
./activemq restart

## 查看狀態
./activemq status


## 檢查埠是否使用
netstat -lnp | grep 8161
netstat -lnp | grep 61616

2.2、測驗

瀏覽器訪問:http://192.168.0.3:8161/
在這里插入圖片描述
發現無法訪問此網站,防火墻放行埠也無法訪問

2.3、配置

這是因為 Activemq 默認只能當前服務器訪問,如果需要外部訪問,需要修改jetty.xml檔案

## 修改apache-activemq-5.16.3/conf/jetty.xml檔案
vim /opt/home/mq/apache-activemq-5.16.3/conf/jetty.xml

## 找到id為jettyPort的bean 將其中的127.0.0.1 改為 0.0.0.0
<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
    <!-- the default port number for the web console -->
    <property name="host" value="0.0.0.0"/>
    <property name="port" value="8161"/>
</bean>

## 重啟ActiveMQ
./activemq restart

再通過瀏覽器訪問:http://192.168.0.3:8161/
默認用戶名/密碼:admin/admin
在這里插入圖片描述

三、Windows安裝

下載解壓后,進入bin\win64下,雙擊activemq.bat,啟動
在這里插入圖片描述
訪問:http://127.0.0.1:8161
選擇Manage ActiveMQ broker(管理ActiveMQ代理),輸入賬號和密碼登陸,
默認用戶名/密碼:admin/admin

在這里插入圖片描述

在這里插入圖片描述

四、ActiveMQ集群

集群分為兩種方式:

  • 偽集群:集群節點都搭在一臺機器上

  • 真集群:集群節點分布在多臺機器上

4.1、為什么使用集群

  • 實作高可用,以排除單點故障引起的服務中斷,

  • 實作負載均衡,以提升效率為更多的客戶提供服務,

4.2、Master Slave 部署(主從)

通過部署多個broker實體,選舉產生一個master和多個slave,master宕機后由slave接管服務來達到高可用性,Master-Slave的方式雖然能解決多服務熱備的高可用問題,但無法解決負載均衡和分布式的問題,Broker Cluster的部署方式剛好可以解決負載均衡的問題,一般兩者結合使用,

這里主要介紹2種配置方案

  • Shared File System Master slave 模式
  • JDBC Store Master Slave 模式

4.2.1、Share storage master slave(共享存盤)

此模式中Master和Slave的資料是共享的(相當于共享同一個資料庫),當master失效后,slave會自動接管服務,無需手動進行資料的copy與同步,因為master存盤資料之后,這些資料在任何時候對slave都是可見的,
master與slave之間,通過共享檔案的“排他鎖”或者分布式排他鎖(ZooKeeper)來決定Broker的狀態與角色,獲取鎖權限的Broker作為master,其它的Broker則作為slave,如果master失效,它必將失去鎖權限,那么其它的slave將通過鎖競爭來選舉新master,沒有獲取鎖權限的Broker作為slave,并等待鎖的釋放(間歇性嘗試獲取鎖),

1、Shared File System Master Slave模式(只適合單臺主機部署,不適合多臺主機部署)

這種方式是最常用的模式,架構簡單,可靠實用,我們只需要一個SAN檔案系統即可,使用檔案系統來共享資料檔案,多個Broker共享同一個檔案系統,

<!-- 
	假設在本地啟動兩個broker,組態檔activemq.xml 里面的持久化檔案目錄都設定成同一個即可,  
	這里默認使用的kahaDB ,你也可以用levelDB,不推薦AMQDB  
-->
<persistenceAdapter>  
     <kahaDB directory=/opt/home/mq/apache-activemq-5.16.3/data/shared_kahadb" />  
</persistenceAdapter>

2、JDBC Store Master Slave模式(適合多臺主機部署)
資料存盤用的是資料庫(MySQL/Oracle等),相對于日志檔案而言,JDBC Store通常認為是低效的,配置如下

<broker brokerName="broker-locahost-0">  
	...
    <persistenceAdapter>
		 <!--  這個是可以自動生成表結構的-->
		<jdbcPersistenceAdapter dataSource="#mysql-ds" /> 
    </persistenceAdapter>
</broker>  
 <!-- 配置jdbc資料庫連接 -->
<bean id="mysql-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
	<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
	<property name="url" value="jdbc:mysql://192.168.0.3:3306/activemq?relaxAutoCommit=true"/>
	<property name="username" value="root"/>
	<property name="password" value="root"/>
	<property name="poolPreparedStatements" value="true"/>
</bean>

<bean id="mysql-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
	<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
	<property name="url" value="jdbc:mysql://123.57.80.91:3306/activemq?relaxAutoCommit=true"/>
	<property name="username" value="root"/>
	<property name="password" value="Java_521"/>
	<property name="poolPreparedStatements" value="true"/>
</bean>

下載 mysql-connector-java-5.1.47.jar放到/opt/home/mq/apache-activemq-5.16.3/lib目錄下
新建activemq資料庫,

-- 如果存在資料庫洗掉
DROP DATABASE IF EXISTS `activemq`;
-- 創建資料庫
CREATE DATABASE `activemq` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';

-- 使用activemq資料庫
USE activemq;

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for activemq_acks
-- ----------------------------
DROP TABLE IF EXISTS `activemq_acks`;
CREATE TABLE `activemq_acks`  (
  `CONTAINER` varchar(250) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
  `SUB_DEST` varchar(250) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,
  `CLIENT_ID` varchar(250) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
  `SUB_NAME` varchar(250) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
  `SELECTOR` varchar(250) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,
  `LAST_ACKED_ID` bigint(20) NULL DEFAULT NULL,
  `PRIORITY` bigint(20) NOT NULL DEFAULT 5,
  `XID` varchar(250) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,
  PRIMARY KEY (`CONTAINER`, `CLIENT_ID`, `SUB_NAME`, `PRIORITY`) USING BTREE,
  INDEX `ACTIVEMQ_ACKS_XIDX`(`XID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of activemq_acks
-- ----------------------------

-- ----------------------------
-- Table structure for activemq_lock
-- ----------------------------
DROP TABLE IF EXISTS `activemq_lock`;
CREATE TABLE `activemq_lock`  (
  `ID` bigint(20) NOT NULL,
  `TIME` bigint(20) NULL DEFAULT NULL,
  `BROKER_NAME` varchar(250) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,
  PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of activemq_lock
-- ----------------------------
INSERT INTO `activemq_lock` VALUES (1, NULL, NULL);

-- ----------------------------
-- Table structure for activemq_msgs
-- ----------------------------
DROP TABLE IF EXISTS `activemq_msgs`;
CREATE TABLE `activemq_msgs`  (
  `ID` bigint(20) NOT NULL,
  `CONTAINER` varchar(250) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
  `MSGID_PROD` varchar(250) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,
  `MSGID_SEQ` bigint(20) NULL DEFAULT NULL,
  `EXPIRATION` bigint(20) NULL DEFAULT NULL,
  `MSG` blob NULL,
  `PRIORITY` bigint(20) NULL DEFAULT NULL,
  `XID` varchar(250) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,
  PRIMARY KEY (`ID`) USING BTREE,
  INDEX `ACTIVEMQ_MSGS_MIDX`(`MSGID_PROD`, `MSGID_SEQ`) USING BTREE,
  INDEX `ACTIVEMQ_MSGS_CIDX`(`CONTAINER`) USING BTREE,
  INDEX `ACTIVEMQ_MSGS_EIDX`(`EXPIRATION`) USING BTREE,
  INDEX `ACTIVEMQ_MSGS_PIDX`(`PRIORITY`) USING BTREE,
  INDEX `ACTIVEMQ_MSGS_XIDX`(`XID`) USING BTREE,
  INDEX `ACTIVEMQ_MSGS_IIDX`(`ID`, `XID`, `CONTAINER`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of activemq_msgs
-- ----------------------------

SET FOREIGN_KEY_CHECKS = 1;

資料表說明:

ACTIVEMQ_MSGS
-- 訊息表,預設表名ACTIVEMQ_MSGS,Queue和Topic都存在里面
-- ID:自增的資料庫主鍵
-- CONTAINER:訊息的Destination
-- MSGID_PROD:訊息發送者的主鍵
-- MSG_SEQ:是發送訊息的順序,MSGID_PROD+MSG_SEQ可以組成JMS的MessageID
-- EXPIRATION:訊息的過期時間,存盤的是從1970-01-01到現在的毫秒數
-- MSG:訊息本體的Java序列化物件的二進制資料
-- PRIORITY:優先級,從0-9,數值越大優先級越高

ACTIVEMQ_ACKS
-- 用于存盤訂閱關系,如果是持久化Topic,訂閱者和服務器的訂閱關系在這個表保存
-- CONTAINER: 訊息的Destination
-- SUB_DEST: 如果是使用Static集群, 這個欄位會有集群其他系統的資訊
-- CLIENT_ID : 每個訂閱者都必須有一個唯一的客戶端ID用以區分
-- SUB_NAME: 訂閱者名稱
-- SELECTOR: 選擇器,可以選擇只消費滿足條件的訊息, 條件可以用自定義屬性實作, 可支持多屬性AND和OR操作
-- LAST_ACKED_ID: 記錄消費過的ID
-- ACTIVEMQ_ACKS表存盤訂閱的訊息和最后一個持久訂閱接收的訊息ID

ACTIVEMQ_LOCK
-- 在集群環境中才有用, 只有一個Broker可以獲得訊息, 稱為Master Broker, 其他的只能作為備份等待Master Broker不可用, 才可能成為下一個Master Broker, 這個表用于記錄哪個Broker是當前的Master Broker.

啟動activemq,如果啟動報錯,嘗試將資料庫編碼改為latin1 或者ASCII

./activemq start

測驗代碼

public class Producer {
    private static final String ACTIVEMQ_URL = "failover:(tcp://192.168.0.3:61616,tcp://192.168.0.4:61616,tcp://192.168.0.5:61616)?randomize=true";
    private static final String ACTIVEMQ_QUEUE_NAME = "queue-test";

    public static void main(String[] args) throws JMSException {
        ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(ACTIVEMQ_URL);
        Connection connection = activeMQConnectionFactory.createConnection();
        connection.start();
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Queue queue = session.createQueue(ACTIVEMQ_QUEUE_NAME);
        MessageProducer producer = session.createProducer(queue);
        for (int i = 0; i < 10; i++) {
            TextMessage textMessage = session.createTextMessage("***發送訊息順序: " + i + "***發送訊息優先級:" + i);
            textMessage.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, 5000L);//設定延遲時間
           // producer.send(textMessage);
            producer.send(queue, textMessage);
        }
        System.out.println("訊息發送完成");
        producer.close();
        session.close();
        connection.close();
    }
}
public class Consumer {
    private static final String ACTIVEMQ_URL = "failover:(tcp://192.168.0.3:61616,tcp://192.168.0.4:61616,tcp://192.168.0.5:61616)?randomize=true";
    private static final String ACTIVEMQ_QUEUE_NAME = "queue-test";

    public static void main(String[] args) throws JMSException, IOException {
        ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(ACTIVEMQ_URL);
        Connection connection = activeMQConnectionFactory.createConnection();
        connection.start();
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Queue queue = session.createQueue(ACTIVEMQ_QUEUE_NAME);
        MessageConsumer consumer = session.createConsumer(queue);
        consumer.setMessageListener(new MessageListener() {
            @Override
            public void onMessage(Message message) {
                if (message instanceof TextMessage) {
                    try {
                        TextMessage textMessage = (TextMessage) message;
                        String messageText = textMessage.getText();
                        System.out.println("***消費者接收訊息: " + messageText);
                    } catch (JMSException e) {
                        e.printStackTrace();
                    }

                }
            }
        });

        //保證控制臺不滅
        System.in.read();
    }
}

4.2.2、Replicated LevelDB Store(使用ZooKeeper協調多個Broker)

基于復制的LevelDB Store模式是ActiveMQ 5.9以后新增的特性,這是ActiveMQ全力打造的HA存盤引擎, 一般都使用這種方式,由于利用zk 進行配置管理,可以方便監控,同時配置也相對簡單,

使用ZooKeeper(集群)注冊所有的ActiveMQ Broker,只有其中的一個Broker可以對外提供服務(也就是Master節點),其他的Broker處于待機狀態,被視為Slave,如果Master因故障而不能提供服務,則利用ZooKeeper的內部選舉機制會從Slave中選舉出一個Broker充當Master節點,繼續對外提供服務,

由于基于ZooKeeper(通常ZooKeeper集群至少需要3個實體,才能保證ZooKeeper本身的高可用性),所以Broker最低需要3個,
警告

Warning
The LevelDB store has been deprecated and is no longer supported or recommended for use. The recommended store is KahaDB
意思是:
LevelDB存盤已被棄用,不再支持或建議使用,推薦的使用KahaDB
參考:http://activemq.apache.org/replicated-leveldb-store.html

4.2.3、KahaDB

KahaDB 是一個基于檔案的持久性資料庫,它位于使用它的訊息代理本地,它已針對快速持久性進行了優化,它是自ActiveMQ 5.4以來的默認存盤機制,KahaDB 使用更少的檔案描述符并提供比其前身AMQ 訊息存盤更快的恢復,
配置

<broker brokerName="broker">
    <persistenceAdapter>
      <kahaDB directory="activemq-data" journalMaxFileLength="32mb"/>
    </persistenceAdapter>
 </broker>

KahaDB 屬性

屬性默認注釋
archiveCorruptedIndexfalse如果true,啟動時發現的損壞索引將被存檔(不洗掉),
archiveDataLogsfalse如果true, 會將訊息資料日志移動到存檔目錄而不是將其洗掉,
checkForCorruptJournalFilesfalse如果true,將在啟動時檢查損壞的日志檔案并嘗試恢復它們,
checkpointInterval5000檢查點日志之前的時間(毫秒),
checksumJournalFilestrue為日志檔案創建校驗和,需要存在校驗和才能使持久性配接器能夠檢測損壞的日志檔案,ActiveMQ 5.9.0之前:默認為false.
cleanupInterval30000確定哪些日志檔案(如果有)可以從訊息存盤中洗掉的連續檢查之間的間隔(以毫秒為單位),符合條件的期刊檔案是指沒有未完成的參考文獻,
compactAcksAfterNoGC10ActiveMQ 5.14.0 開始:當啟用確認壓縮功能時,此值控制必須完成多少存盤 GC 回圈,并且在觸發壓縮邏輯以可能將分布在日志檔案中的舊確認壓縮到新日志之前沒有其他檔案被清理檔案,設定的值越低,壓縮可能發生得越快,如果它經常運行,這可能會影響性能,
compactAcksIgnoresStoreGrowthfalseActiveMQ 5.14.0 開始:當啟用確認壓縮功能時,此值控制壓縮是在存盤仍在增長時運行還是僅在存盤停止增長時才運行(由于空閑或達到存盤限制),如果啟用壓縮,無論商店是否仍有空間或處于活動狀態,都會運行壓縮,這會降低整體性能但會更快地回收空間,
concurrentStoreAndDispatchQueuestrue允許將 Queue 訊息分派給感興趣的客戶端,以與訊息存盤同時發生,
concurrentStoreAndDispatchTopicsfalse允許將 Topic 訊息分派給感興趣的客戶端,與訊息存盤同時發生,不建議啟用此屬性,
directoryactivemq-data用于存盤訊息存盤資料和日志檔案的目錄的路徑,
directoryArchivenull定義將資料日志移動到的目錄,當它們包含的所有訊息都已被使用時,
enableAckCompactiontrueActiveMQ 5.14.0 開始:此設定控制存盤是否對僅包含訊息確認的舊日志日志檔案執行定期壓縮,通過將這些較舊的確認壓縮到新的日志日志檔案中,可以洗掉較舊的檔案以釋放空間并允許訊息存盤繼續運行而不會達到存盤大小限制,
enableIndexWriteAsyncfalse如果true,則索引異步更新,
enableJournalDiskSyncstrue確保每個日志寫入后跟一個磁盤同步(JMS 持久性要求),自ActiveMQ 5.14.0 起,此屬性已棄用,從ActiveMQ 5.14.0 開始:請參閱journalDiskSyncStrategy
ignoreMissingJournalfilesfalse如果true,則忽略丟失日志檔案的報告,
indexCacheSize10000記憶體中快取的索引頁數,
indexDirectoryActiveMQ 5.10.0 開始:如果設定,則配置 KahaDB 索引檔案(db.datadb.redo)的存盤位置,如果未設定,則索引檔案存盤在directory屬性指定的目錄中 ,
indexWriteBatchSize1000批量寫入的索引數,
journalDiskSyncInterval1000何時執行磁盤同步的時間間隔(毫秒) journalDiskSyncStrategy=periodic,僅當自上次磁盤同步后日志發生寫入或日志滾動到新日志檔案時,才會執行同步,
journalDiskSyncStrategyalwaysActiveMQ 5.14.0 開始:此設定配置磁盤同步策略,可用同步策略的串列是(按照降低安全性和提高性能的順序):always確保每個日志寫入后跟一個磁盤同步(JMS 持久性要求),這是最安全的選項,但也是最慢的,因為它需要在每次寫入訊息后進行同步,這相當于已棄用的屬性 enableJournalDiskSyncs=trueperiodic磁盤將按設定的時間間隔(如果發生寫入)而不是在每次日志寫入后同步,這將減少磁盤上的負載并提高吞吐量,滾動到新的日志檔案時,磁盤也將同步,默認間隔為 1 秒,默認間隔提供了非常好的性能,同時比 never磁盤同步,因為資料丟失被限制為最多 1 秒的價值,請參閱journalDiskSyncInterval更改磁盤同步的頻率,never永遠不會顯式呼叫同步,由作業系統重繪到磁盤,這相當于設定了 deprecated 屬性enableJournalDiskSyncs=false,這是最快的選項,但最不安全,因為無法保證資料何時重繪到磁盤,因此,訊息丟失可能會在代理失敗時發生,
journalMaxFileLength32mb設定訊息資料日志最大大小的提示,
maxAsyncJobs10000將排隊等待存盤的異步訊息的最大數量(應與并發 MessageProducers 的數量相同),
preallocationScopeentire_journalActiveMQ 5.14.0 開始:此設定配置日志資料檔案的預分配方式,默認策略在第一次使用時使用 appender 執行緒預分配日志檔案, entire_journal_async將在單獨的執行緒中提前使用預分配,none禁用預分配,在 SSD 上,使用 entire_journal_async可避免在首次使用時延遲等待預分配的寫入,注意:在 HDD 上,額外的磁盤執行緒爭用會產生負面影響,因此使用默認值,
preallocationStrategysparse_fileActiveMQ 5.12.0 開始:此設定配置代理將如何在需要新日志檔案時嘗試預分配日志檔案,sparse_file- 設定檔案長度,但不填充任何資料,os_kernel_copy- 將預分配委托給作業系統,zeros - 每個預分配的日志檔案只包含0x00整個內容,
storeOpenWireVersion11確定編組到 KahaDB 日志的 OpenWire 命令的版本,ActiveMQ 5.12.0之前:默認值為6. 代理的某些功能取決于存盤在來自較新協議修訂版的 OpenWire 命令中的資訊,如果存盤版本設定為較低的值,這些功能可能無法正常作業,來自高于 5.9.0 的代理版本的 KahaDB 存盤在許多情況下仍可由代理讀取,但會導致代理繼續使用舊的存盤版本,這意味著新功能可能無法按預期作業,對于在ActiveMQ 5.9.0之前的版本中創建的 KahaDB 存盤,必須手動設定storeOpenWireVersion="6"以便無錯誤地啟動代理,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/350778.html

標籤:其他

上一篇:java核心知識點總結篇-JVM篇

下一篇:Mac M1 使用Docker 創建fastDfs 容器

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more