分佈式架構

1 分佈式架構設計

1.1傳統項目架構設計問題

說明:因爲單體項目將全部的模塊都寫到了一塊兒,未來若是其中一個模塊出現了問題,將致使整個項目不能正常的運行.
image.pngjava

1.2分佈式介紹

因爲傳統項目致使各個模塊之間的耦合性較高.因此須要採用分佈式的思想將項目進行拆分.
核心理念: 化整爲零將項目按照某些特定的規則進行拆分.mysql

1.2.1按照功能模塊拆分

image.png

1.2.2按照層級拆分

image.png

2分佈式思想帶來的問題

2.1分佈式思想jar包如何維護?

image.png

2.2分佈式思想中工具api如何管理?

image.png

3 建立父級工程

3.1建立項目 普通maven項目

image.png

3.2編輯pom.xml文件

<!--定義父級工程打包類型-->
<packaging>pom</packaging>

<!--1.引入springBoot 父級項目-->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.4.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<!--2.引入屬性的配置-->
<properties>
    <java.version>1.8</java.version>
    <!--跳過測試類打包-->
    <skipTests>true</skipTests>
</properties>

<!--3.在父級項目中添加jar包文件-->
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!--引入插件lombok 自動的set/get/構造方法插件  -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>

    <!--引入數據庫驅動 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>

    <!--springBoot數據庫鏈接  -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>

    <!--spring整合mybatis-plus -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.2.0</version>
    </dependency>

    <!--springBoot整合JSP添加依賴  -->
    <!--servlet依賴 -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
    </dependency>

    <!--jstl依賴 -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>

    <!--使jsp頁面生效 -->
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
    </dependency>

    <!--支持熱部署 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
    </dependency>

    <!--添加httpClient jar包 -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
    </dependency>

    <!--引入dubbo配置 -->
    <!--<dependency>
        <groupId>com.alibaba.boot</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>0.2.0</version>
    </dependency>-->

    <!--添加Quartz的支持 -->
   <!-- <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-quartz</artifactId>
    </dependency>-->

    <!-- 引入aop支持 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-aop</artifactId>
    </dependency>

    <!--spring整合redis -->
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-redis</artifactId>
    </dependency>
</dependencies>

<!--父級工程只是項目的管理者不會在其中編輯代碼 因此不要添加build-->

</project>web

3.3 編輯工具API項目 jt-common

3.3.1建立項目-普通maven項目

pom.xml文件不用更改
  裏面主要寫一些封裝對象的實體類

3.4建立jt-manage項目

3.4.1編輯pom.文件

<!--指定打包方式-->
<packaging>war</packaging>
<!--指定父級項目-->
<parent>
    <artifactId>jt</artifactId>
    <groupId>com.jt</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

<!--2.添加依賴信息-->
<dependencies>
    <dependency>
        <groupId>com.jt</groupId>
        <artifactId>jt-common</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

<!--3.添加插件-->
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
相關文章
相關標籤/搜索