您好,登錄后才能下訂單哦!
1.下載安裝包redis-3.2.2.tar.gz,并且進行解壓,解壓后編譯源碼
[root@localhost soft]# tar -zxvf redis-3.2.2.tar.gz
[root@localhost soft]# cd redis-3.2.2
[root@localhost redis-3.2.2]# make
編譯完成后提示
make[1]: Leaving directory `/soft/redis-3.2.2/src'
2.編譯完成后,在src目錄下有四個可執行文件redis-server、
[root@localhost redis-3.2.2]# mkdir /usr/local/redis
[root@localhost redis-3.2.2]# cp redis.conf /usr/local/redis/
[root@localhost redis-3.2.2]# cd src/
[root@localhost src]# cp redis-server /usr/local/redis/
[root@localhost src]# cp redis-benchmark /usr/local/redis/
[root@localhost src]# cp redis-cli /usr/local/redis/
[root@localhost src]# cd /usr/local/redis/
[root@localhost redis]# ls
redis-benchmark #redis性能測試工具
redis-cli #redis命令行操作工具
redis.conf redis配置文件
redis-server #服務器的daemon啟動程序
3.修改配置文件
[root@localhost redis]# vi redis.conf
61 #bind 127.0.0.1 注釋這一行,默認是指至運行自己訪問自己
128 daemonize yes 默認為no,改為yes,默認是不能以守護進程運行
480 requirepass 123456 默認是沒有開啟redis的密碼,設置redis的密碼為123456
4.redis啟動服務
/usr/local/redis/redis-server /usr/local/redis/redis.conf 配置文件已經改寫為守護進程的方式
[root@fanxiaohui redis]# ps -elf | grep redis
5 S root 6524 1 0 80 0 - 33383 ep_pol 00:06 ? 00:00:00 /usr/local/redis/redis-server *:6379
0 S root 6528 3187 0 80 0 - 25814 pipe_w 00:06 pts/1 00:00:00 grep redis
5.客戶端測試一下是否啟動成功,開啟認證功能后redis測試方法必須指定服務器IP地址、端口和密碼
[root@fanxiaohui redis]# redis-cli -h 127.0.0.1 -p 6379 -a 123456
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> get foo
"bar"
127.0.0.1:6379>
可以看到取的值說明成功。
activemq Linux中的部署和安裝
1.下載安裝包apache-activemq-5.14.1-bin.tar.gz,并且進行解壓,解壓后編譯源碼
[root@fanxiaohui soft]# tar -zxvf apache-activemq-5.14.1-bin.tar.gz
[root@fanxiaohui soft]# mv apache-activemq-5.14.1 /usr/local/apache-activemq
[root@fanxiaohui soft]# cd /usr/local/apache-activemq/bin/
2.啟動activemq服務
/usr/local/activemq/bin/activemq start
3.查看端口是否有運行程序
[root@localhost bin]# netstat -anpult | grep 61616
tcp 0 0 :::61616 :::* LISTEN
3576/java
4.完成后添加開啟自啟動
[root@localhost bin]# cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/usr/local/activemq/bin/activemq start
5.apache-activemq調優配置
持久化
ActiveMQ支持持久化,可以將接收到的消息保存到數據庫中,就算ActiveMQ重啟,也照樣能將尚未派發的消息發送出去。
ActiveMQ的持久化機制,對于Queue類型的消息,將存儲在Broker,但是一旦其中一個消費者完成消費,則立即刪除這條消息。
對于Topic類型的消息,即使所有的訂閱者都完成了消費,Broker也不一定會馬上刪除無用消息,而是保留推送歷史,之后會異步清除無用消息。
而每個訂閱者消費到了哪條消息的offset會記錄在Broker,以免下次重復消費。因為消息是順序消費,先進先出,所以只需要記錄上次消息消費到哪里就可以了。
配置持久化的方式,都是修改%ACTIVEMQ_HOME%conf/acticvemq.xml文件。
1。持久化為文件
這個你裝ActiveMQ時默認就是這種,只要你設置消息為持久化就可以了。涉及到的配置和代碼有
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>
2.持久化 為 mysql
[root@fanxiaohui lib]# cd /usr/local/apache-activemq/lib
[root@fanxiaohui soft]# mv mysql-connector-java-5.1.34.jar /usr/local/apache-activemq/lib/
你首先需要把MySql的驅動放到ActiveMQ的Lib目錄下,如mysql-connector-Java-5.1.34.jar。
[root@fanxiaohui soft]# cd /usr/local/apache-activemq/conf/
[root@fanxiaohui conf]# vi activemq.xml
85 <persistenceAdapter>
86 <jdbcPersistenceAdapter dataSource="#mysql-ds" dataDirectory="${activemq.base}/data" createTablesOnStartup="true" useDatabaseLock="false" />
87 </persistenceAdapter>
...............................
...............................
133 <bean id="mysql-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
134 <property name="driverClassName" value="com.mysql.jdbc.Driver"/> #使用的JDBC驅動的完整有效的java 類名
135 <property name="url" value="jdbc:mysql://192.168.23.240:3306/activemqdb?relaxAutoC ommit=true"/> #傳遞給JDBC驅動的用于建立連接的URL
136 <property name="username" value="activemq"/> # 傳遞給JDBC驅動的用于建立連接的用戶名
137 <property name="password" value="activemq.123"/> #傳遞給JDBC驅動的用于建立連接的密碼
138 <property name="poolPreparedStatements" value="true"/> #開啟池的prepared statement 池功能
139 <property name="maxTotal" value="150"/> # 最大活動連接:連接池在同一時間能夠分配的最大活動連接的數量, 如果設置為非正數則表示不限制
140 <property name="minIdle" value="5"/> #最大空閑連接:連接池中容許保持空閑狀態的最大連接數量,超過的空閑連接將被釋放,如果設置為負數表示不限制
141 <property name="maxIdle" value="20"/> #小空閑連接:連接池中容許保持空閑狀態的最小連接數量,負數表示沒有現在
142 <property name="initialSize" value="30"/> #初始化連接:連接池啟動時創建的初始化連接數量
143 <property name="maxWaitMillis" value="1000"/> #最大等待時間:當沒有可用連接時,連接池等待連接被歸還的最大時間(以毫秒計數),超過時間則拋出異常,如果設置為-1表示無限等待
144 <property name="timeBetweenEvictionRunsMillis" value="10000"/> #在空閑連接回收器線程運行期間休眠的時間值,以毫秒為單位.如果設置為非正數,則不運行空閑連接回收器線程
145 <property name="numTestsPerEvictionRun" value="10"/> #在每次空閑連接回收器線程(如果有)運行時檢查的連接數量
146 <property name="minEvictableIdleTimeMillis" value="10000"/> #連接在池中保持空閑而不被空閑連接回收器線程(如果有)回收的最小時間值,單位毫秒
147 <property name="validationQuery" value="SELECT NOW() FROM DUAL"/> #SQL查詢,用來驗證從連接池取出的連接,在將連接返回給調用者之前.如果指定,則查詢必須是一個SQL SELECT并且必須返回至少一行記錄
148 </bean>
從配置中可以看出數據庫的名稱是activemq,密碼為:activemq.123 你需要手動在MySql中增加這個庫。
mysql>
mysql>create database activemqdb;
mysql>grant all on activemqdb.* to "activemq"@"%" identified by "activemq.123";
數據庫配置好后才能啟動activemq服務
[root@fanxiaohui conf]# /usr/local/apache-activemq/bin/activemq start
INFO: Loading '/usr/local/apache-activemq//bin/env'
INFO: Using java '/usr/java/bin/java'
INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
INFO: pidfile created : '/usr/local/apache-activemq//data/activemq.pid' (pid '4123')
[root@fanxiaohui conf]# ps -elf | grep activemq
0 S root 4123 1 40 80 0 - 768127 futex_ 02:03 pts/0 00:00:04 /usr/java/bin/java -Xms64M -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=/usr/local/apache-activemq//conf/login.config -Dcom.sun.management.jmxremote -Djava.awt.headless=true -Djava.io.tmpdir=/usr/local/apache-activemq//tmp -Dactivemq.classpath=/usr/local/apache-activemq//conf:/usr/local/apache-activemq//../lib/: -Dactivemq.home=/usr/local/apache-activemq/ -Dactivemq.base=/usr/local/apache-activemq/ -Dactivemq.conf=/usr/local/apache-activemq//conf -Dactivemq.data=/usr/local/apache-activemq//data -jar /usr/local/apache-activemq//bin/activemq.jar start
再次查看數據庫時出現三張表
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| activemqdb |
| data |
| fanxiaohui |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
8 rows in set (0.00 sec)
mysql> use activemqdb;
Database changed
mysql> show tables;
+----------------------+
| Tables_in_activemqdb |
+----------------------+
| ACTIVEMQ_ACKS |
| ACTIVEMQ_LOCK |
| ACTIVEMQ_MSGS |
+----------------------+
3 rows in set (0.00 sec)
activemq_acks 用于存儲訂閱關系,如果是持久化TOPIC,訂閱者和服務器的訂閱關系在這個表保存
activemq_msgs 用于存儲消息,Queue和Topic都存儲在這個表中
6.測試
配置好后可以登錄監控管理頁面去看隊列情況
http://192.168.23.240:8161/admin
1.添加用戶名和密碼,在conf目錄下找到jetty-realm.properties
cd /usr/local/activemq/conf/
vi jetty-realm.properties
18 # Defines users that can access the web (console, demo, etc.)
19 # username: password [,rolename ...]
20 system: manager,admin 添加這一行,管理員的賬號和密碼
21 admin: admin, admin
22 user: user, user
~
2.修改配置jetty.xml文件
cd /usr/local/activemq/conf/
[root@fanxiaohui conf]# vi jetty.xml
48
49 <bean id="rewriteHandler" class="org.eclipse.jetty.rewrite.handler.RewriteHandler">
50 <property name="rules">
51 <list>
52 <bean id="header" class="org.eclipse.jetty.rewrite.handler.HeaderPatternRule">
53 <property name="pattern" value="*"/>
54 <property name="name" value="X-FRAME-OPTIONS"/>
55 <property name="value" value="SAMEORIGIN"/>
56 </bean>
57 </list>
58 </property>
59 </bean>
刪除以上的行
57 <!-- Enable embedded file server for Blob messages -->
58 <!-- <bean class="org.eclipse.jetty.webapp.WebAppContext"> <property name="contextPath"
59 value="/fileserver" /> <property name="resourceBase" value="${activemq.home}/webapps/fileserver"
60 /> <property name="logUrlOnStart" value="true" /> <property name="parentLoaderPriority"
61 value="true" /> </bean> -->
添加以上的行
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。