『高階篇』docker之APIGateway(17)

weixin_34075268發表於2018-10-21

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

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

11223715-ab0eae4cc43d3072.png

使用springClud做路由轉發功能

  • 新建專案


    11223715-3fc006e97b13795c.png
<?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);
    }
}

11223715-16f837db991b3855.png

梳理思路

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

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

11223715-3407e1c7ac8d7935

相關文章