<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    java學習

    java學習

     

    2021年9月22日

    docker 筆記

    下載的docker鏡像默認存儲路徑是/var/lib/docker .具體的鏡像文件就在containers文件夾中
    docker save -o d:/docker/zen.tar easysoft/zentao:15.5
    docker run -d -p 80:80  \
            -e ADMINER_USER="admin" -e ADMINER_PASSWD="qqzj126" -e MYSQL_ROOT_PASSWORD=qqzj126  \
            -e BIND_ADDRESS="false" \
            -v /opt/data/zbox/:/opt/zbox/ \
            -v /opt/mysqldata:/var/lib/mysql  \
            --name zentao-server \
            easysoft/zentao:15.5
      docker logs -f 

    posted @ 2021-09-22 17:02 楊軍威 閱讀(92) | 評論 (0)編輯 收藏

    2021年6月1日

    后臺運行jar包并輸出日志

    運行命令(注意路徑)

    java -jar /web/share-book.jar > /web/log.txt &
    該命令的意思是:執行share-book.jar這個文件,并且輸出到log.txt文件,&表示后臺運行

    解決更新項目帶來的頻繁重啟操作,創建2個腳本

    start.sh

    #! /bin/bash
    #注意:必須有&讓其后臺執行,否則沒有pid生成   jar包路徑為絕對路徑
    java -jar /web/share-book.jar > /web/log.txt &
     
    # 將jar包啟動對應的pid寫入文件中,為停止時提供pid
    echo $! > /web/pid.txt
    stop.sh

    #! /bin/bash
    PID=$(cat /web/pid.txt)
    kill -9 $PID

    啟動項目:./start.sh

    停止項目:./stop.sh

    posted @ 2021-06-01 13:56 楊軍威 閱讀(2930) | 評論 (0)編輯 收藏

    2021年4月19日

    HADOOP_HOME and hadoop.home.dir are unset

    一.問題描述:windows本地調試Hadoop程序時報錯
    錯誤信息:
    其原因是需要在windows本地搭建Hadoop環境,下載winutils文件,并將hadoop-2.8.4包內的bin文件替換,將下載文件中hadoop.dll放到C:\Windows\System32下
    二.解決過程如下:
    1.下載hadoop,去官網下載對應的hadoop版本,我在linux集群搭建的是hadoop-2.8.4,因此將hadoop-2.8.4下載到windows本地
    https://www.jianshu.com/p/a65a95108620

    posted @ 2021-04-19 09:45 楊軍威 閱讀(562) | 評論 (0)編輯 收藏

    2021年1月14日

    從git倉庫中刪除.idea文件夾

    如果不配置.gitignore的文件,帶push代碼的時候就會把一寫不必要的文件push到遠程倉庫,如.idea文件。如果不小心出現此文件在遠程倉庫可以通過一下步驟delete此文件:

    1.配置.gitignore文件(新建/編輯)

    echo '.idea' >> .gitignore

    2.將.gitignore文件上傳到遠程倉庫

    git pull git add .gitignore git commit -m 'edit .gitignore' git push origin master

    3.刪除git的.idea文件

    git rm --cached -r .idea

    4.同步到遠程倉庫

    git commit -m 'delete .idea' git push origin master

    完成之后就可以發現git倉庫中的.idea文件已經被刪除,而且之后push代碼也不會再把.idea文件上傳。

    PS:我在使用PyCharm編寫python代碼,一般是通過new -> .ignore file -> .gitignore file 自動生成.gitignore文件。
    下面是我自己比較常用的.gitignore文件簡短配置:

    .project .settings/ .prefs .pydevproject .idea/ .idea .DS_Store .cache *.pyc *.html *.xlm

    posted @ 2021-01-14 15:15 楊軍威 閱讀(187) | 評論 (0)編輯 收藏

    2020年12月1日

    GC overhead limit exceeded和java heap space

    1、java heap space  一次申請太大的內存空間
    2、GC overhead limit exceeded   創建太多的對象,gc收集不完

    posted @ 2020-12-01 10:19 楊軍威 閱讀(282) | 評論 (0)編輯 收藏

    2020年11月19日

    緩存一致性和緩存雪崩

         摘要:   閱讀全文

    posted @ 2020-11-19 14:12 楊軍威 閱讀(85) | 評論 (0)編輯 收藏

    2020年11月17日

    linux Tomcat 開機啟動配置

    1、 vim /etc/rc.d/rc.local
    2、添加內容
    export JAVA_HOME=/usr/java/jdk1.8.0_111
    /app/tomcat/bin/startup.sh start
    3、
    chmod 777 /etc/rc.d/rc.local

    posted @ 2020-11-17 10:40 楊軍威 閱讀(132) | 評論 (0)編輯 收藏

    2020年10月30日

    java synchronized 鎖對象

    /**
    * synchronized 放在普通方法上,內置鎖就是當前類的實例
    * @return
    */
    public synchronized int getNext() {
    return value ++;
    }
    /**
    * 修飾靜態方法,內置鎖是當前的Class字節碼對象
    * Sequence.class
    * @return
    */
    public static synchronized int getPrevious() {
    // return value --;
    return 0;
    }

    posted @ 2020-10-30 16:37 楊軍威 閱讀(92) | 評論 (0)編輯 收藏

    2020年8月31日

    canal簡單安裝使用

    1、數據庫配置

    首先使用canal需要修改數據庫配置

    [mysqld] 
    log-bin=mysql-bin # 開啟
    binlog binlog-format=ROW # 選擇 ROW 模式
    server_id=1 # 配置 MySQL replaction 需要定義,不要和 canal 的 slaveId 重復

    創建canal數據庫用戶

    CREATE USER canal IDENTIFIED BY 'canal';  
    GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON
    *.* TO 'canal'@'%';
    FLUSH PRIVILEGES;

     

    2、安裝canal

    下載:https://github.com/alibaba/canal/releases

    解壓(修改版本號):tar zxvf canal.deployer-1.1.4.tar.gz -C ./canal

    配置開放服務器端口:11110、11111、11112

    修改canal配置文件(這里設置了兩個instance,即兩個數據庫):

    vi canal/conf/canal.properties 
    canal.destinations
    = example1,example2

     配置instance:

    cp -R canal/conf/example conf/example1
    mv conf/example conf/example2

    第一個數據庫配置

    vi canal/conf/example1/instance.properties
    canal.instance.master.address
    =32.1.2.140:3306

    第二個數據庫配置

    vi canal/conf/example2/instance.properties
    canal.instance.master.address
    =32.1.2.140:3307

    #如果需要新增一個instance,只需要修改canal.properties文件,并新增一個instance配置即可,無需重啟canal。

    運行:

    sh canal/bin/startup.sh # 查看日志
    cat canal/logs/canal/canal

     

    3、Java使用樣例

    引入pom依賴,需要與安裝的canal版本一致

    復制代碼
    <dependencies>     <dependency>         <groupId>com.alibaba.otter</groupId>         <artifactId>canal.client</artifactId>         <version>1.1.4</version>     </dependency> </dependencies>
    復制代碼

    示例代碼(異步打印兩個數據庫的修改內容):

    復制代碼
    package cn.spicybar.dblog;  import com.alibaba.otter.canal.client.CanalConnector; import com.alibaba.otter.canal.client.CanalConnectors; import com.alibaba.otter.canal.protocol.CanalEntry.Entry; import com.alibaba.otter.canal.protocol.CanalEntry.EntryType; import com.alibaba.otter.canal.protocol.CanalEntry.RowChange; import com.alibaba.otter.canal.protocol.Message;  import java.net.InetSocketAddress; import java.util.List;  public class CanalClient {      public static void main(String[] args) {         new Thread(() -> initConnector("example1")).start();         new Thread(() -> initConnector("example2")).start();     }      private static void initConnector(String destination) {         CanalConnector connector = CanalConnectors.newSingleConnector(new InetSocketAddress("32.1.0.237", 11111), destination, "", "");         try {             connector.connect();             connector.subscribe(".*\\..*");             connector.rollback();             while (true) {                 Message message = connector.getWithoutAck(1000);                 if (message.getId() != -1 && message.getEntries().size() > 0) {                     printEntry(message.getEntries());                 }                 connector.ack(message.getId());             }         } finally {             connector.disconnect();         }     }      private static void printEntry(List<Entry> entries) {         for (Entry entry : entries) {             if (entry.getEntryType() == EntryType.TRANSACTIONBEGIN || entry.getEntryType() == EntryType.TRANSACTIONEND) {                 continue;             }             try {                 RowChange rowChange = RowChange.parseFrom(entry.getStoreValue());                 System.out.println(rowChange.getSql());             } catch (Exception e) {                 throw new RuntimeException("ERROR ## parser error, data:" + entry.toString(), e);             }         }     }

    posted @ 2020-08-31 10:55 楊軍威 閱讀(673) | 評論 (0)編輯 收藏

    2020年8月7日

    java 二分法查詢數據

    public int binarySearch(long value) {
    int middle = 0;
    int low = 0;
    int pow = arr.length;

    while(true) {
    middle = (pow + low) / 2;
    if(arr[middle] == value) {
    return middle;
    } else if(low > pow) {
    return -1;
    } else {
    if(arr[middle] > value) {
    pow = middle - 1;
    } else {
    low = middle + 1;
    }
    }
    }
    }

    posted @ 2020-08-07 11:00 楊軍威 閱讀(140) | 評論 (0)編輯 收藏

    僅列出標題  下一頁

    導航

    統計

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 午夜dj在线观看免费视频| 亚洲视频免费在线看| 四虎影视精品永久免费| 亚洲狠狠婷婷综合久久蜜芽| 最近免费中文字幕4| 亚洲小说图区综合在线| 成人免费视频小说| 亚洲av无码一区二区三区人妖| 卡一卡二卡三在线入口免费| 亚洲中文无码mv| 高清在线亚洲精品国产二区| 一道本不卡免费视频| 亚洲人成在线播放网站| 无码囯产精品一区二区免费| 亚洲国产美女精品久久| 最近中文字幕mv手机免费高清 | 亚洲色大成网站WWW国产| 暖暖免费高清日本中文| 美女被免费视频网站| 亚洲成a人片77777kkkk| 19禁啪啪无遮挡免费网站| 亚洲熟女精品中文字幕| 亚洲av无码成人精品区在线播放| 久99久无码精品视频免费播放| 国产∨亚洲V天堂无码久久久| 100部毛片免费全部播放完整| 亚洲H在线播放在线观看H| 免费国产高清视频| 四虎影视成人永久免费观看视频 | a级精品九九九大片免费看| 精品亚洲aⅴ在线观看| 好男人视频社区精品免费| 人人公开免费超级碰碰碰视频| 久久亚洲国产精品五月天| 妞干网在线免费视频| 中文字幕乱码系列免费| 亚洲ts人妖网站| 亚洲色大成网站www永久一区 | 免费国产在线观看不卡| 久久青草免费91观看| 亚洲av日韩综合一区二区三区|