springboot 2.0 + springcloud alibaba 整合gateway(一)基礎(chǔ)引入

前言:

springcloud gateway本身就是一個很優(yōu)秀的路由網(wǎng)關(guān)板鬓,alibaba本身也對這個網(wǎng)關(guān)支持的很好计福,只需要把原來的eureka的配置換成nacos的就可以了,但由于這個地方我沒有打算用netfilx的hystrix箱吕,所以我把原本hystrix的一些斷路器配置去掉了,打算后期用Sentinel 替換。

代碼配置

首先在pom文件中加入gateway以及nacos的配置

<?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>com.gitee.simons.cloud</groupId>
        <artifactId>simons-cloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <artifactId>simons-gateway</artifactId>
    <name>${project.artifactId} [web]</name>
    <packaging>jar</packaging>

    <properties>
        <start-class>com.gitee.simons.gateway.GatewayApplication</start-class>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>

        <!--swagger相關(guān) -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>com.gitee.simons.cloud</groupId>
            <artifactId>simons-base</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>

    <profiles>
        <profile>
            <id>spring-boot</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-maven-plugin</artifactId>
                        <version>${spring-boot.version}</version>
                        <configuration>
                            <mainClass>${start-class}</mainClass>
                        </configuration>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>repackage</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>


    </profiles>


    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <!--解決持續(xù)集成無法找到main類 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>${start-class}</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

由于gateway要做swagger的路由分發(fā)所以這邊加入了swagger的配置较性,如果不用swagger的朋友可以不加入,還是這個simons base也是一樣结胀,因為里面有一些基礎(chǔ)的工具類會在攔截器里面用到所以引入赞咙,普通的只是小demo的話可以這兩個配置去掉。

配置文件的話也是一樣在糟港,nacos服務(wù)發(fā)現(xiàn)的基礎(chǔ)上加上gateway的路由配置即可
routes里面配置里面:

id:設(shè)置成對應(yīng)服務(wù)的applicationname

uri: 其中l(wèi)b => 就是loadbalance負(fù)載均衡的意思攀操,就是說uri里面有這個nacos的那么就去找服務(wù)名為nacos的進(jìn)行負(fù)載均衡

predicates:說明下面的信息依附于上面服務(wù)上,path對應(yīng)的就是說要做路由的地址路徑

filters: 這個是gateway的自定義過濾器的配置在后面的篇章會說到這個東西的詳細(xì)配置

spring:
  application:
    name: gateway
  main:
    banner-mode: "off" #on or off
  profiles:
    active: deve
  http:
    encoding:
      charset: UTF-8
      enabled: true
      force: true
  servlet:
    multipart:
      max-file-size: 100MB
      max-request-size: 100MB
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
    gateway:
      discovery:
        locator:
          enabled: true
      routes:
      - id: nacos
        uri: lb://nacos
        predicates:
        - Path=/nacos/**
        filters:
        - StripPrefix=1
#        - JwtCheck=true
server:
  port: 2001


management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: ALWAYS
package com.gitee.simons.gateway;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
import org.springframework.cloud.client.loadbalancer.LoadBalancerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;

/**
 * @author jsm
 */
@EnableDiscoveryClient
@SpringBootApplication
@ComponentScan("com.gitee")
public class GatewayApplication {

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

    @Bean
    LoadBalancerInterceptor loadBalancerInterceptor(LoadBalancerClient loadBalance) {
        return new LoadBalancerInterceptor(loadBalance);
    }

}

只要上面三個配置里面配好了對與基本的路由來說就已經(jīng)足夠了那么把第一張的nacos 的測試項目中的test接口跑起來測試一下


image.png

當(dāng)我們在開啟相同的服務(wù)的時候秸抚,多次請求路由速和,會實現(xiàn)負(fù)載均衡的操作


image.png

image.png

ok完成

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市耸别,隨后出現(xiàn)的幾起案子健芭,更是在濱河造成了極大的恐慌县钥,老刑警劉巖秀姐,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異若贮,居然都是意外死亡省有,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門谴麦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蠢沿,“玉大人,你說我怎么就攤上這事匾效∠象埃” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長野宜。 經(jīng)常有香客問我扫步,道長,這世上最難降的妖魔是什么匈子? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任河胎,我火速辦了婚禮,結(jié)果婚禮上虎敦,老公的妹妹穿的比我還像新娘游岳。我一直安慰自己,他們只是感情好其徙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布胚迫。 她就那樣靜靜地躺著,像睡著了一般擂橘。 火紅的嫁衣襯著肌膚如雪晌区。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天通贞,我揣著相機(jī)與錄音朗若,去河邊找鬼。 笑死昌罩,一個胖子當(dāng)著我的面吹牛哭懈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播茎用,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼遣总,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了轨功?” 一聲冷哼從身側(cè)響起旭斥,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎古涧,沒想到半個月后垂券,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡羡滑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年菇爪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柒昏。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡凳宙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出职祷,到底是詐尸還是另有隱情氏涩,我是刑警寧澤届囚,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站是尖,受9級特大地震影響奖亚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜析砸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一昔字、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧首繁,春花似錦作郭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至胁塞,卻和暖如春咏尝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背啸罢。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工编检, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人扰才。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓允懂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親衩匣。 傳聞我的和親對象是個殘疾皇子蕾总,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容