Java開發技術大雜燴(一)之Redis、Jmeter、MySQL的那些事

cmazxiaoma發表於2018-06-18

###前言

畢業答辯告一段落,接下來好好努力工作。

###Redis遇到的一些問題

DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to 'no', and then restarting the server. 3) If you started the server manually just for testing, restart it with the '--protected-mode no' option. 4) Setup a bind address or an authentication password. NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.
複製程式碼

這是redis的保護機制,連線redis只能是127.0.0.1這個ip,我們遠端連線是拒絕的。所以我們需要在redis.conf進行如下配置。

  • 1.配置protected-mode no,禁用redis預設保護機制。

    image.png

  • 2.配置daemonize yes,讓redis後臺啟動。

    image.png

  • 3.註釋掉bind 127.0.0.1這行程式碼

    image.png

  • 4.然後通過指定配置檔案啟動方式啟動redis。

redis-server redis.conf
複製程式碼
  • 5.通過telnet 111.230.11.184 6379,發現遠端登入成功。
    image.png

###Jmeter遇到的一些問題

  • 1.設定Jmeter在linux上環境變數,vim /etc/profile,進行如下配置,然後source /etc/profile儲存配置讓其生效。
export JMETER_HOME=/usr/local/apache-jmeter-4.0
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH
複製程式碼

###MySQL遇到的問題


  • 1.當我在做秒殺商品壓測的時候,發現會頻繁的訪問資料庫。於是將資料來源連線池中的spring.datasource.druid.inital-size(初始化連線)設定為500,spring.datasource.druid.min.idle(最小空閒連線,連線池容許保持空閒狀態的最小連線,低於這個數量將會建立新的連線)設定為500,spring.datasource.druid.max-active(最大活動連線,連線池在同一時間能夠分配的最大活動連線的數量)設定為1000。然後看輸出臺丟擲了Data source rejected establishment of connection, message from server: "Too many connections"。這是由於太多的連線數量超過了mysql預設的連線數,我們只需要在/etc/my.cnf新增如下配置(初始化連線數設定的過大,會導致應用啟動變得很慢):
max_connections=1000 所有使用者連線數的最大值
max_user_connections=520 單一使用者連線數的最大值
wait_timeout=60  60s後關閉空閒連線,對正在工作的連線不受影響
複製程式碼
  • 3.學習Linux命令:netstat -anp|grep 8086,檢視佔用8086埠的程式的pid。
  • 4.學習Linux命令 :cat /var/log/mysqld.log|grep ERROR,檢視mysqld.log日誌檔案中ERROR級別的日誌內容。
  • 5.學習Linux命令:mysql -uroot -p,登入mysql。SHOW VARIABLES LIKE "%max%connec%",檢視引數配置。
    image.png
  • 6.當我在linux下,登入mysql後,輸入show databases,發現沒有反應。百度後,發現必須要在每行命令結尾加上 \g。
    image.png
    image.png
  • 7.學習Linux命令:cat /proc/meminfo,檢視linux伺服器當前可用記憶體。真正可用的記憶體=MemFree+Buffers+Cached
    image.png

###尾言

mayday

相關文章