『高級篇』docker之APIGateway(17)

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

這次說最後一個模塊APIGateway,他的功能就是將我們客戶端的請求統一的轉發到用戶和課程的EdgeService上面,ApiGetway我們使用springClud來實現。源碼:https://github.com/limingios/msA-docker

『高級篇』docker之APIGateway(17)

使用springClud做路由轉發功能

  • 新建項目
    『高級篇』docker之APIGateway(17)
<?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>api-gateway-zuul</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>
            <version>1.3.5.RELEASE</version>
        </dependency>

    </dependencies>
</project>
server.port=8080

zuul.routes.course.path=/course/**
zuul.routes.course.url=http://127.0.0.1:8081/course/

zuul.routes.user.path=/user/**
zuul.routes.user.url=http://127.0.0.1:8082/user/
package com.idig8.zuul;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

/**
 * Created by liming
 */
@SpringBootApplication
@EnableZuulProxy
public class ServiceApplication {

    public static void main(String args[]) {
        SpringApplication.run(ServiceApplication.class, args);
    }
}

『高級篇』docker之APIGateway(17)

梳理思路

所有的業務開發完畢,zuul 就是可以幫助我們做路由和轉發的工作。所有的請求幫你做中轉。雖然業務非常簡單,但是框架都能實現。業務也不是這次學習微服務的重點。在整個開發過程中主要想讓各位老鐵體會到微服務,不同的RPC的通信方式,沒有使用過dubbo和thrift的可以瞭解下如何的使用。還搞了誇語言的業務通信,用python寫了一個message消息服務,用java做客戶端調用python,這裏面的java模塊我們使用的springboot,來進入一個切入點,能感受到開發和配置模式的統一,最後我們使用zuul作爲服務網關,完成了服務路由,可以注意到所有服務的開發都是使用了相對簡單的模型和功能,並沒有大而全的角色存在,因爲這次主要就是說的針對不太瞭解微服務的老鐵,只爲你們打開一個微服務的大門。

PS:就像跟陌生人交朋友,不可能上來直接詳細的自我介紹,一般都是先聊點其他的,或者從大家都感興趣的一個話題作爲切入點,一點點增加彼此的瞭解,其實學習也是一樣的,一個新的功能一定會有新的功能和特性,我們必須從一個點入手,先用起來後,在一點點的瞭解,就像這個zuul,只用到他的服務路由,下次咱們就通過這些微服務爲基礎進行docker話,讓老鐵知道一個非docker的項目如何運行在一個docker上面。需要關心的點是什麼上面。然後我們在本地吧這些服務都運行起來。最後我們把他交給服務編排框架,看它是怎麼調度管理容器的。

『高級篇』docker之APIGateway(17)

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