[Java技能樹] 軟件架構(SOA+微服務)

  • SOAmysql

    • 概念: 是一種粗粒度、鬆耦合服務架構,各服務間均須要基於ESB(Enterprise Service Bus,企業服務總線)進行消息通訊
  • 微服務nginx

    • 概念: 它是SOA的細粒度體現。將單體架構系統按照業務進行垂直切分紅獨立的服務,並獨立部署、運行; 各服務間一般是基於RESTful API(同步)和消息隊列(MQ,異步)進行通訊。
    • 框架工具sql

      • Spring Boot, Spring Cloud
      • Docker 容器docker

        • 主要解決的問題: 一、經過鏡像的方式將應用和運行環境一塊兒打包部署,能作到開發、測試、線上環境保持一致二、做爲一種新的虛擬化技術,下降了傳統虛擬化技術帶來的成本
        • Docker的安裝: yum -y install docker
        • 相關概念:centos

          - 鏡像: 鏡像是一個只讀的文件系統,包括應用文件、環境文件。它一般包含堆疊在彼此之上的聯合分層文件系統。 一個Docker容器中每每有多個不一樣的鏡像。鏡像沒有狀態而且始終不會發生更改。
          - 自定義鏡像, 及其兩種方式
              - 經過Dockerfile文件快速建立鏡像, 編寫Dockerfile文件,而後執行docker build命令建立鏡像
              - 使用docker commit 命令從容器建立一個新的鏡像 
          - 倉庫
              - 本地鏡像倉庫
              - 遠程鏡像倉庫
          - 容器
              - Docker 容器是Docker鏡像的運行時實例。Docker 容器中包含Docker 鏡像執行環境一組標準指令此概念借用自船運集裝箱,它們定義了在全球運送貨物的標準。Docker 定義了交付軟件的標準。
        • 經常使用命令:bash

          - 登陸Docker 鏡像倉庫: docker login [OPTIONS] [SERVER]
          - 搜索遠程倉庫鏡像,如docker search centos表示搜索與centos相關的鏡像: docker search [OPTIONS] TERM 
          - 從遠程倉庫拉取鏡像到本地,默認tag(版本號)是latest: docker pull [OPTIONS] NAME[:TAG|@DIGEST]
              - OPTIONS: -a :拉取全部 tagged 鏡像
              - 如:docker pull centos表示拉取最新的centos鏡像到本地
          - docker rmi [OPTIONS] 鏡像ID/倉庫名:鏡像名
              - 刪除本地倉庫中的鏡像
              - OPTIONS: -f:強制刪除
          - docker run [OPTIONS] [鏡像ID/倉庫名:鏡像名] 
              - 包含兩步操做: 一、將鏡像放到容器中二、啓動容器,至關於docker start
              - OPTIONS: 1)-i:以交互模式運行,一般與 -t 一塊兒使用簡寫爲-it2)-d:之後臺程序運行,並返回容器ID3)-p:指定端口映射,宿主機端口:容器端口4)--name:爲容器指定一個名稱
              - docker run -it 鏡像ID/倉庫名:鏡像名 /bin/bash能夠進入docker容器中的命令行模式 exit 或 Ctrl+D 命令退出並銷燬當前docker容器Ctrl+P,Ctrl+Q也可退出,且不會銷燬docker容器
              - 端口映射
                  - 命令格式: docker run -p 宿主機端口:容器端口docker run -P
                  - -p:指定映射端口 -P:隨機映射端口
                      - 1)使用 -P 標記時,Docker 會隨機映射一個 49000~49900 的端口到內部容器開放的網絡端口; 2)-p則能夠指定要映射的IP和端口,可是在一個指定端口上只能夠綁定一個容器。支持的格式有 hostPort:containerPort、ip:hostPort:containerPort、 ip::containerPort。
                      - 如:docker run -p 80:80 --name mynginx -p 80:80:將容器的80端口映射到主機的80端口 --name mynginx:將容器命名爲mynginx
              - 如建立並啓動mysql容器: docker run --name mysql -p 3306:3306 -v /var/lib/mysql/:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.7其中 --name 指定容器以mysql命名, -p 指定端口映射,-v 指定掛載宿主機目錄,-e 指定環境變量,-d 指定鏡像
          - docker start/stop/restart <容器名或ID> 
              - 啓動, 中止, 重啓(至關於中止+啓動)
          - docker rm <容器名或ID>
              - 刪除指定的容器,該容器必須已經中止運行
          - docker commit <容器名或ID>
              - 使用容器建立鏡像
          - docker push [倉庫名:鏡像名]
              - 將本地鏡像推送至遠程倉庫
          - docker ps [OPTIONS] 
              - 查看容器
              - 如: docker ps:查看正在運行的容器docker ps -a:查看全部的容器,包括已經中止的
          - docker images [OPTIONS] [REPOSITORY[:TAG]]
              - 查看本地有哪些鏡像
          - docker logs <容器名或ID>
              - 查看容器日誌
          - docker port <容器名或ID>
              - 查看容器端口映射狀況
          - docker exec -it <容器名或ID> bash
              - 以交互模式進入正在運行的容器,輸入 exit 則退出
相關文章
相關標籤/搜索