『高階篇』docker之APIGateway(17)
原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
原文連結地址:『高階篇』docker之APIGateway(17)
這次說最後一個模組APIGateway,他的功能就是將我們客戶端的請求統一的轉發到使用者和課程的EdgeService上面,ApiGetway我們使用springClud來實現。原始碼:https://github.com/limingios/msA-docker
使用springClud做路由轉發功能
-
新建專案
<?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);
}
}
梳理思路
所有的業務開發完畢,zuul 就是可以幫助我們做路由和轉發的工作。所有的請求幫你做中轉。雖然業務非常簡單,但是框架都能實現。業務也不是這次學習微服務的重點。在整個開發過程中主要想讓各位老鐵體會到微服務,不同的RPC的通訊方式,沒有使用過dubbo和thrift的可以瞭解下如何的使用。還搞了誇語言的業務通訊,用python寫了一個message訊息服務,用java做客戶端呼叫python,這裡面的java模組我們使用的springboot,來進入一個切入點,能感受到開發和配置模式的統一,最後我們使用zuul作為服務閘道器,完成了服務路由,可以注意到所有服務的開發都是使用了相對簡單的模型和功能,並沒有大而全的角色存在,因為這次主要就是說的針對不太瞭解微服務的老鐵,只為你們開啟一個微服務的大門。
PS:就像跟陌生人交朋友,不可能上來直接詳細的自我介紹,一般都是先聊點其他的,或者從大家都感興趣的一個話題作為切入點,一點點增加彼此的瞭解,其實學習也是一樣的,一個新的功能一定會有新的功能和特性,我們必須從一個點入手,先用起來後,在一點點的瞭解,就像這個zuul,只用到他的服務路由,下次我們們就通過這些微服務為基礎進行docker話,讓老鐵知道一個非docker的專案如何執行在一個docker上面。需要關心的點是什麼上面。然後我們在本地吧這些服務都執行起來。最後我們把他交給服務編排框架,看它是怎麼排程管理容器的。
相關文章
- 『高階篇』docker之CICD(終結篇)(44)Docker
- 『高階篇』docker之瞭解kubernetes(31)Docker
- 『高階篇』docker之gitlab和jenkins安裝(42)DockerGitlabJenkins
- 『高階篇』docker之開發課程服務(15)Docker
- 『高階篇』docker之微服務間如何通訊(六)Docker微服務
- 『高階篇』docker之Mesos叢集架構圖(23)Docker架構
- 『高階篇』docker之開發使用者服務(12)Docker
- 『高階篇』docker之kubernetes搭建叢集新增認證授權(上)(38)Docker
- SpringBoot高階篇MongoDB之如何新增文件Spring BootMongoDB
- 『高階篇』docker容器來說微服務導學(一)Docker微服務
- 『高階篇』docker之服務編排三大平臺揚帆起航(21)Docker
- Angular 17+ 高階教程 – LibraryAngular
- Angular 17+ 高階教程 – AnimationAngular
- Jenkins 使用指南 之 高階應用篇Jenkins
- Devops 開發運維高階篇之Jenkins+Docker+SpringCloud微服務持續整合(上)dev運維JenkinsDockerSpringGCCloud微服務
- Angular Material 17+ 高階教程 – OverlayAngular
- Angular Material 17+ 高階教程 – ObserversAngularServer
- Devops 開發運維高階篇之容器管理dev運維
- SpringBoot高階篇MongoDB之修改基本使用姿勢Spring BootMongoDB
- nginx高階篇rewriteNginx
- 【狂神說】Docker(三) - 高階進階Docker
- APIGateway 簡介APIGateway
- Angular Material 17+ 高階教程 – Material RippleAngular
- Angular 17+ 高階教程 – 學以致用Angular
- SpringBoot高階篇MongoDB之基本環境搭建與使用Spring BootMongoDB
- MySQL 高階特性篇教程MySql
- MySQL高階篇筆記MySql筆記
- Go語言高階資料型別之指標篇Go資料型別指標
- Kotlin——高階篇(五):集合之常用操作符彙總Kotlin
- Docker初探之Windows篇DockerWindows
- Docker 運維高階應用管理Docker運維
- 《Java 高階篇》八:新特性Java
- MySQL 優化一(高階篇)MySql優化
- MySQL 優化(二)(高階篇)MySql優化
- Angular Material 17+ 高階教程 – CDK Accessibility の FocusAngular
- Kotlin——高階篇(二):高階函式詳解與標準的高階函式使用Kotlin函式
- Maven 高階篇之構建多模組專案的方法Maven
- 《前端之路》之 JavaScript 高階技巧、高階函式(一)前端JavaScript函式