『高級篇』docker之開發課程服務(15)

>原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
>原文鏈接地址:『高級篇』docker之開發課程服務(15)

這次一起編寫課程服務。之前的用戶服務,用戶EdgeSerivce,用戶信息,都已經開發完畢了,開始開發課程服務,對外的是dubbo接口,需要訪問後端的數據庫。源碼:https://github.com/limingios/msA-docker

『高級篇』docker之開發課程服務(15)

開發課程服務模塊

基於dubbo的服務,一般先定義api接口,前面的都是基於thrift的,我們先寫一個thrift的文件,然後根據配置文件升成對應的api,dubbo我們相當於先手寫一個api的模塊。

『高級篇』docker之開發課程服務(15)

稍微複雜

  • 總體思想

    就不在複製代碼了只通過截圖來講述功能,可以參考源碼,本次跟用到了上次springboot集成dubbo的方式。

  1. course-dubbo-service-api 是負責提供接口的服務
  2. course-dubbo-service 是course-dubbo-service-api的實現
  3. course-dubbo-service 需要依賴原始的user-thrift-service-api的原生DTO類 和 user-thrift-service中的方法實現。
  4. course-dubbo-service調用user-thrift-service 是用過thrift的方式完成的調用。因爲user-thrift-service本身就是通過thrift生成對應的java類。

『高級篇』docker之開發課程服務(15)

『高級篇』docker之開發課程服務(15)

  • user-thrift-service 和 user-thrift-service-api
    1. user-thrift-service-api 做了thrift的修改,增加了老師的DTO和ID來獲取用戶的信息,所以需要重新通過thrift命令生成對應的java類
    2. user-thrift-service 實現了新增的通過ID來獲取用戶的信息的接口,並增加了UserMapper
    3. user數據庫中增加了一張關聯表teacher表

『高級篇』docker之開發課程服務(15)

『高級篇』docker之開發課程服務(15)

『高級篇』docker之開發課程服務(15)

『高級篇』docker之開發課程服務(15)

『高級篇』docker之開發課程服務(15)

『高級篇』docker之開發課程服務(15)

  • course-dubbo-service-api 和 course-dubbo-service
    1. course-dubbo-service pom中引入了springboot,mysql的驅動,thrift,springboot-dubbo,user-thrift-service.jar,user-thrift-service-api.jar
    2. course-dubbo-service 中注入thrift微服務的訪問service,獲取教師針對課程的教程信息訪問user-thrift-service的微服務,通過thrift的方式。
    3. application.properties 配置dubbo的配置,數據庫配置,user-thrift-service的地址和端口
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.3.RELEASE</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.idig8</groupId>
    <artifactId>course-dubbo-service</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>io.dubbo.springboot</groupId>
            <artifactId>spring-boot-starter-dubbo</artifactId>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.thrift</groupId>
            <artifactId>libthrift</artifactId>
            <version>0.10.0</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.44</version>
        </dependency>
        <dependency>
            <groupId>com.idig8</groupId>
            <artifactId>course-dubbo-service-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>com.idig8</groupId>
            <artifactId>user-thrift-service</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.idig8</groupId>
            <artifactId>user-thrift-service-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

</project>

『高級篇』docker之開發課程服務(15)

『高級篇』docker之開發課程服務(15)

『高級篇』docker之開發課程服務(15)

『高級篇』docker之開發課程服務(15)

PS:基本的課程開發思路就是這樣,別人有的微服務調用,只實現自己所屬的。

『高級篇』docker之開發課程服務(15)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章