JeecgBoot使用總結-微服務打包上線


jeecgboot使用微服務打包上線總結。

啟動微服務記得先啟動nacos、gateway、以及system。

首先環境設置參考官方說明,未進行測試:http://doc.jeecg.com/2043911

在打包之前需要在jeecg-cloud-module中創建啟動模塊

 

咱們從上往下一次展示以上圖片文件的詳細內容

application啟動類

package org.jeecg;

import org.springframework.beans.factory.annotation.Value;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.util.oConvertUtils;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.Environment;
import org.springframework.scheduling.annotation.EnableScheduling;

import java.net.InetAddress;
import java.net.UnknownHostException;

/**
 * 微服務啟動類(采用此類啟動項目為微服務模式)
 *  注意: 需要先在naocs里面創建配置文件,參考文檔 http://doc.jeecg.com/2043906
 */
@Slf4j
@SpringBootApplication
@EnableFeignClients(basePackages = {"org.jeecg"})
@EnableScheduling
public class JeecgSystemCloudApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(JeecgSystemCloudApplication.class);
    }

    public static void main(String[] args) throws UnknownHostException {
        long startTime = System.currentTimeMillis();    //獲取開始時間
        ConfigurableApplicationContext application = SpringApplication.run(JeecgSystemCloudApplication.class, args);
        Environment env = application.getEnvironment();
        String ip = InetAddress.getLocalHost().getHostAddress();
        String port = env.getProperty("server.port");
        String path = oConvertUtils.getString(env.getProperty("server.servlet.context-path"));
        log.info("\n----------------------------------------------------------\n\t" +
                "Application Jeecg-Boot is running! Access URLs:\n\t" +
                "Local: \t\thttp://localhost:" + port + path + "/doc.html\n" +
                "External: \thttp://" + ip + ":" + port + path + "/doc.html\n" +
                "Swagger文檔: \thttp://" + ip + ":" + port + path + "/doc.html\n" +
                "----------------------------------------------------------");
        System.out.println("第四步=====System系統-啟動成功=====");
        long endTime = System.currentTimeMillis();    //獲取結束時間
        System.out.println("程序運行時間:" + (endTime - startTime)/1000 + "");    //輸出程序運行時間
    }

}

application.yml配置文件

server:
  #微服務端口
  port: 7020
  tomcat:
    connection-timeout: 60000
spring:
  main:
    allow-bean-definition-overriding: true application: name: jeecg-metaverse
  rabbitmq:
    host: 192.168.1.14
    username: guest
    password: guest
    port: 5672
    publisher-confirm: true
    publisher-returns: true
    virtual-host: /
    listener:
      simple:
        acknowledge-mode: manual
        #消費者的最小數量
        concurrency: 1
        #消費者的最大數量
        max-concurrency: 1
        #是否支持重試
        retry:
          enabled: true

Dockerfile,標紅的要注意修改,現在咱們的系統都比較規范,按照這個格式批量修改即可,但是端口號一定不能重復

FROM anapsix/alpine-java:8_server-jre_unlimited

MAINTAINER jeecgos@163.com RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN mkdir -p /jeecg-cloud-metaverse WORKDIR /jeecg-cloud-metaverse EXPOSE 9010 ADD ./target/config ./config ADD ./target/jeecg-cloud-metaverse-start-3.0.jar ./ CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-metaverse-start-3.0.jar

 pom.xml配置文件,標紅的地方記得修改,是哪個微服務模塊,就直接引哪個模塊

<?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>
        <artifactId>jeecg-cloud-module</artifactId>
        <groupId>org.jeecgframework.boot</groupId>
        <version>3.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>jeecg-cloud-metaverse-start</artifactId>
    <description>元宇宙項目微服務啟動</description>

    <dependencies>

        <dependency> <groupId>org.jeecgframework.boot</groupId> <artifactId>jeecg-boot-module-metaverse</artifactId> </dependency>
        <!-- 引入jeecg-boot-starter-cloud依賴 -->
        <dependency>
            <groupId>org.jeecgframework.boot</groupId>
            <artifactId>jeecg-boot-starter-cloud</artifactId>
        </dependency>


        <!--xxl-job定時任務-->
        <dependency>
            <groupId>org.jeecgframework.boot</groupId>
            <artifactId>jeecg-boot-starter-job</artifactId>
        </dependency>
        <!-- 分布式鎖依賴 -->
        <dependency>
            <groupId>org.jeecgframework.boot</groupId>
            <artifactId>jeecg-boot-starter-lock</artifactId>
        </dependency>


    </dependencies>

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.yml</include>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.yml</include>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

restart.sh,docker的重啟腳本,命令看不懂的可以自己查一下,比較簡單,標紅的記得修改,跟上邊dockerfile文件中的要對應上,不然會出錯,切記一定要對應上,端口號以及docker名稱

docker stop cloud_metaverse_start1.0
docker rm cloud_metaverse_start1.0
docker build -t cloud_metaverse_start:1.0 .

docker run -d  --name="cloud_metaverse_start1.0"  -v /root/docker/jar-cloud/cloud_metaverse_start/target/:/usr/local/tomcat/webapps  -p 9010:9010 cloud_metaverse_start:1.0
docker logs -f --tail 20 cloud_metaverse_start1.0

在jeecg-cloud-gateway這個模塊下的pom.xml文件引入該微服務啟動模塊

 

 

然后就是最外層的pom.xml文件了,修改nacos的連接屬性

 

 

 

接下來就可以准備打包了

通過jeecg-boot-parent打包項目

打包的時候要注意了,如果打包過程中報錯了,一定要解決,在Profiles中一定要選擇prod,打包后啟動項目時能夠看到的,而且一定要多次clean,保證已經清除干凈

 

 打包成功后通過Xftp拖過來即可,服務器上各個模塊都已經創建好了,按照規范創建即可

 

 文件結構如下

 

 這個路徑下的Dockerfile就是上邊提到的,還有restart.sh

在target中放jar包

 

 nginx的路徑

nginx的配置文件內容

upstream daadmin_api {
                #ip_hash;
server 172.28.250.58:8888;
        }
server
{
    listen 80;
    listen       443 ssl;
    server_name daadmin.idawa.cn;

ssl_certificate cert/6710862__idawa.cn.pem;  #將domain name.pem替換成您證書的文件名稱。
         ssl_certificate_key cert/6710862__idawa.cn.key; #將domain name.key替換成您證書的密鑰文件名稱。
         ssl_session_timeout 5m;
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用該協議進行配置。
         ssl_prefer_server_ciphers on;

#if ($server_port = 80 ) {return 301 https://$host$request_uri;}

    
server_name_in_redirect off;

proxy_set_header Host $host:$server_port;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header REMOTE-HOST $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    location / {
       index  index.html index.htm;
       root html/fe_daadmin/;
    }

   location ~ ^/(websocket|sys|fanyi|online|digital_assetas|cg_navi|cg_forum|cg_class|knowledge|project|copyright|it_assets|sheets|outsourcing|financial|bigdata|cg_recruit|pipeline|jiaoyu|system|isystem|customer|creative_app) {
        proxy_pass http://daadmin_api; #配置方向代理地址
 }

}

元宇宙nginx,前端訪問路徑http://www.lionworld.com/index.html

upstream yuan_api {
                #ip_hash;
server 172.28.250.58:9999;
        }
server
{
    listen 80;
    listen       443 ssl;
    server_name www.lionworld.com lionworld.com y.idawa.cn yuan.idawa.cn lion.idawa.cn l.idawa.cn;

ssl_certificate cert/6710862__idawa.cn.pem;  #將domain name.pem替換成您證書的文件名稱。
         ssl_certificate_key cert/6710862__idawa.cn.key; #將domain name.key替換成您證書的密鑰文件名稱。
         ssl_session_timeout 5m;
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用該協議進行配置。
         ssl_prefer_server_ciphers on;

#if ($server_port = 80 ) {return 301 https://$host$request_uri;}

    
server_name_in_redirect off;

proxy_set_header Host $host:$server_port;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header REMOTE-HOST $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    location / {
       index  index.html index.htm;
       root html/fe_yuan/;
    }

   location ~ ^/(websocket|sys|fanyi|online|digital_assetas|cg_navi|cg_forum|cg_class|knowledge|project|copyright|it_assets|sheets|outsourcing|financial|bigdata|cg_recruit|pipeline|jiaoyu|system|isystem|customer|creative_app) {
        proxy_pass http://yuan_api; #配置方向代理地址
proxy_set_header Host $host:$server_port;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header REMOTE-HOST $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 }
}

 

前端路徑

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM