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;
 }
}

 

前端路径

 

posted @ 2022-01-22 11:31  背着泰山找黄河  阅读(1948)  评论(0编辑  收藏  举报