zoukankan      html  css  js  c++  java
  • springcloud gateway 项目打包部署运行

    新建一个springboot项目然后做了一个小demo跳转到baidu

    pom

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
     4     <modelVersion>4.0.0</modelVersion>
     5     <parent>
     6         <groupId>com.drawnblue</groupId>
     7         <artifactId>pom</artifactId>
     8         <version>0.0.1-SNAPSHOT</version>
     9     </parent>
    10     <groupId>com.drawblue</groupId>
    11     <artifactId>gateway</artifactId>
    12     <version>0.0.1-SNAPSHOT</version>
    13     <name>gateway</name>
    14     <description>Demo project for Spring Boot</description>
    15 
    16     <properties>
    17         <java.version>1.8</java.version>
    18     </properties>
    19 
    20     <dependencies>
    21         <dependency>
    22             <groupId>org.springframework.boot</groupId>
    23             <artifactId>spring-boot-starter</artifactId>
    24         </dependency>
    25 
    26         <dependency>
    27             <groupId>org.springframework.boot</groupId>
    28             <artifactId>spring-boot-starter-test</artifactId>
    29             <scope>test</scope>
    30         </dependency>
    31 <!--        <dependency>
    32             <groupId>org.springframework.boot</groupId>
    33             <artifactId>spring-boot-starter-web</artifactId>
    34         </dependency>-->
    35         <dependency>
    36             <groupId>org.springframework.cloud</groupId>
    37             <artifactId>spring-cloud-starter-gateway</artifactId>
    38             <version>2.1.2.RELEASE</version>
    39         </dependency>
    40         <dependency>
    41             <groupId>org.springframework.cloud</groupId>
    42             <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    43             <version>0.9.0.RELEASE</version>
    44         </dependency>
    45         <dependency>
    46             <groupId>org.springframework.boot</groupId>
    47             <artifactId>spring-boot-starter-actuator</artifactId>
    48         </dependency>
    49     </dependencies>
    50 
    51     <build>
    52         <plugins>
    53             <plugin>
    54                 <groupId>org.springframework.boot</groupId>
    55                 <artifactId>spring-boot-maven-plugin</artifactId>
    56                 <executions>
    57                     <execution>
    58                         <goals>
    59                             <goal>repackage</goal>
    60                         </goals>
    61                     </execution>
    62                 </executions>
    63             </plugin>
    64             <plugin>
    65                 <groupId>org.apache.maven.plugins</groupId>
    66                 <artifactId>maven-assembly-plugin</artifactId>
    67                 <version>2.4</version>
    68                 <executions>
    69                     <execution>
    70                         <id>bundle</id>
    71                         <phase>package</phase>
    72                         <goals>
    73                             <goal>single</goal>
    74                         </goals>
    75                         <configuration>
    76                             <descriptors>
    77                                 <descriptor>${basedir}/src/main/assembly/assembly.xml</descriptor>
    78                             </descriptors>
    79                         </configuration>
    80                     </execution>
    81                 </executions>
    82             </plugin>
    83         </plugins>
    84     </build>
    85 
    86 </project>

    其中项目同其他随笔上的pom项目,由于springcloud gateway 不能在tomcat运行,所以一定要注释掉web依赖

    属性文件:

    spring:
      application:
        name: gateway
      cloud:
        nacos:
          discovery:
            server-addr: 192.168.135.129:8848
        gateway:
          routes:
            - id: test-gateway
              uri: http://www.baidu.com
              predicates:
                - Path=/test/**
              filters:
              - StripPrefix=1
    server:
      port: 8800

    我将该项目注册在nacos上,另外注意

    - StripPrefix=1不加的话就会报错,因为跳转后有前缀导致跳转错误不能跳转到百度
    本项目搞的是个demo,nacos上没有其他服务,所以启动类上可以不加任何注解去发现注册到nacos上的服务
    项目结构如下:

    assembly.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <assembly>
        <!-- 不配置会报错:Assembly ID must be present and non-empty -->
        <id>bin</id>
        <formats>
            <!--压缩文件的类型-->
            <format>tar.gz</format>
        </formats>
        <!--指明打包后是否有分发包的最外层,如果不写,默认是true-->
        <includeBaseDirectory>true</includeBaseDirectory>
        <fileSets>
            <!--需要包含的文件与输出的路径-->
            <fileSet>
                <!--指明要对src/main/assembly/bin文件夹操作-->
                <directory>src/main/assembly/bin</directory>
                <!--指明经过assembly插件打包后bin目录会放置在项目根目录下-->
                <outputDirectory>bin</outputDirectory>
                <!--指明bin目录下所有文件的权限为755-->
                <fileMode>0755</fileMode>
            </fileSet>
            <fileSet>
                <directory>src/main/resources</directory>
                <includes>
                    <include></include>
                </includes>
                <outputDirectory>conf</outputDirectory>
                <fileMode>0644</fileMode>
            </fileSet>
        </fileSets>
        <dependencySets>
            <dependencySet>
                <outputDirectory>lib</outputDirectory>
            </dependencySet>
        </dependencySets>
    </assembly>

    start.sh

    #!/bin/bash
    
    cd `dirname $0`
    BIN_DIR=`pwd`
    cd ..
    DEPLOY_DIR=`pwd`
    SERVER_NAME=gateway
    JAR_File=$DEPLOY_DIR/lib/gateway-0.0.1-SNAPSHOT.jar
    
    echo " "
    
    PIDS=`ps -ef | grep java | grep "$JAR_File" |awk '{print $2}'`
    if [ -n "$PIDS" ]; then
        echo "ERROR: The server $SERVER_NAME already started!"
        echo "PID: $PIDS"
        echo " "
        exit 1
    fi
    
    LOGS_DIR=$DEPLOY_DIR/logs
    
    if [ ! -d $LOGS_DIR ]; then
        mkdir $LOGS_DIR
    fi
    
    STDOUT_FILE=$LOGS_DIR/stdout.log
    
    JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true "
    JAVA_DEBUG_OPTS=""
    if [ "$1" = "debug" ]; then
        JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n "
    fi
    JAVA_JMX_OPTS=""
    if [ "$1" = "jmx" ]; then
        JAVA_JMX_OPTS=" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "
    fi
    JAVA_MEM_OPTS=""
    BITS=`java -version 2>&1 | grep -i 64-bit`
    if [ -n "$BITS" ]; then
        JAVA_MEM_OPTS=" -server -Xmx2g -Xms2g -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "
    else
        JAVA_MEM_OPTS=" -server -Xms1g -Xmx1g -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC "
    fi
    
    echo -e "Starting the server $SERVER_NAME ...c"
    nohup java $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS -jar $JAR_File -Ddubbo.application.logger=slf4j > $STDOUT_FILE 2>&1 &
    
    echo "OK!"
    PIDS=`ps -ef | grep java | grep "$JAR_File" | awk '{print $2}'`
    echo "Server $SERVER_NAME startup, PID: $PIDS"
    echo "STDOUT: $STDOUT_FILE"
    echo " "

    restart.sh

    #!/bin/bash
    cd `dirname $0`
    ./stop.sh
    ./start.sh

    stop.sh

    #!/bin/bash
    
    cd `dirname $0`
    cd ..
    DEPLOY_DIR=`pwd`
    
    SERVER_NAME=gateway
    JAR_File=$DEPLOY_DIR/lib/gateway-0.0.1-SNAPSHOT.jar
    
    echo " "
    
    PIDS=`ps -ef | grep java | grep "$JAR_File" |awk '{print $2}'`
    if [ -z "$PIDS" ]; then
        echo "ERROR: The server $SERVER_NAME does not started!"
        echo " "
        exit 1
    fi
    
    echo -e "Stopping the server $SERVER_NAME ...c"
    for PID in $PIDS ; do
        kill $PID > /dev/null 2>&1
    done
    
    COUNT=0
    while [ $COUNT -lt 1 ]; do    
        echo -e ".c"
        sleep 1
        
        PIDS=`ps -ef | grep java | grep "$JAR_File" |awk '{print $2}'`
        if [ -z "$PIDS" ]; then        
            COUNT=2         
        fi
    done
    
    echo "OK!"
    echo " "

    status.sh

    #!/bin/bash
    
    cd `dirname $0`
    cd ..
    DEPLOY_DIR=`pwd`
    
    SERVER_NAME=gateway
    JAR_File=$DEPLOY_DIR/lib/gateway-0.0.1-SNAPSHOT.jar
    
    echo " "
    
    PIDS=`ps -ef | grep java | grep "$JAR_File" |awk '{print $2}'`
    if [ -n "$PIDS" ]; then
        echo "The server $SERVER_NAME is running!"
        echo "PID: $PIDS"
        echo " "
        exit 1
    fi
    
    if [ -z "$PIDS" ]; then
        echo "The server $SERVER_NAME is stop!"
        echo " "
        exit 1
    fi

    stop.sh

    #!/bin/bash
    
    cd `dirname $0`
    cd ..
    DEPLOY_DIR=`pwd`
    
    SERVER_NAME=gateway
    JAR_File=$DEPLOY_DIR/lib/gateway-0.0.1-SNAPSHOT.jar
    
    echo " "
    
    PIDS=`ps -ef | grep java | grep "$JAR_File" |awk '{print $2}'`
    if [ -z "$PIDS" ]; then
        echo "ERROR: The server $SERVER_NAME does not started!"
        echo " "
        exit 1
    fi
    
    echo -e "Stopping the server $SERVER_NAME ...c"
    for PID in $PIDS ; do
        kill $PID > /dev/null 2>&1
    done
    
    COUNT=0
    while [ $COUNT -lt 1 ]; do    
        echo -e ".c"
        sleep 1
        
        PIDS=`ps -ef | grep java | grep "$JAR_File" |awk '{print $2}'`
        if [ -z "$PIDS" ]; then        
            COUNT=2         
        fi
    done
    
    echo "OK!"
    echo " "

    打包后target目录

    部署项目

    将tar.gz部署到linux上解压,进入bin文件启动,启动后,开放端口,然后再重新加载一下

    注意:启动时候要确保nacos已经启动且端口可以访问

    然后查看nacos

    浏览器中输入:http://192.168.135.130:8800/test,回车

    然后看到跳转至百度页面

     

    
    
  • 相关阅读:
    windows中administrator 和 administrators两个账户的区别
    如何去掉打印网页时自带的网址以及页码等内容
    Oracle左连接,右连接
    oracle服务器本地能够登录但是局域网内其他机器不能访问的解决方法
    错误Name node is in safe mode的解决方法
    oracle数据库中对varchar类型求max的解决方法
    JBoss中配置数据源出现错误:“Failed to register driver for: com.mysql.jdbc.Driver”的解决方法
    学习junit和hamcrest的使用
    Ubuntu10.10如何给用户添加sudo权限
    ORACLE 9i卸载并重新安装
  • 原文地址:https://www.cnblogs.com/xiaoyao-001/p/11425033.html
Copyright © 2011-2022 走看看