Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

打包成SpringBoot jar形式 #2

Open
sky5454 opened this issue Sep 2, 2019 · 4 comments
Open

打包成SpringBoot jar形式 #2

sky5454 opened this issue Sep 2, 2019 · 4 comments
Labels
documentation Improvements or additions to documentation

Comments

@sky5454
Copy link
Owner

sky5454 commented Sep 2, 2019

以使用 Maven 打包并启动为例

mvn package
java -jar target/ms-mcms.jar

登陆 MCMS 后台管理界面,打开"系统管理"--"静态化",这时看日志(会有一条提示模板读取路径的日志)
然后把 wepapp 目录里的文件都复制到 jar 所在目录,以后可能会变,具体路径以日志为准

...............
2019-09-02 11:50:20.780 TRACE 16935 --- [nio-8080-exec-6] n.m.b.d.I.queryModelByRoleId             : <==        Row: 86, 应用设置, 12010000, 84, app/-1/edit.do, 2014-12-18 18:31:59.0, , 0, 0, 1, 84, null
2019-09-02 11:50:20.780 TRACE 16935 --- [nio-8080-exec-6] n.m.b.d.I.queryModelByRoleId             : <==        Row: 5, 角色管理, 01010000, 23, basic/role/index.do, 2014-08-03 09:15:14.0, , 0, 0, 1, 23, null
2019-09-02 11:50:20.780 TRACE 16935 --- [nio-8080-exec-6] n.m.b.d.I.queryModelByRoleId             : <==        Row: 4, 管理员管理, 01020000, 23, basic/manager/index.do, 2014-08-03 09:15:02.0, , 0, 0, 1, 23, null
2019-09-02 11:50:20.780 DEBUG 16935 --- [nio-8080-exec-6] n.m.b.d.I.queryModelByRoleId             : <==      Total: 73
2019-09-02 11:50:21.368 DEBUG 16935 --- [nio-8080-exec-3] n.m.b.d.IAppDao                          : Cache Hit Ratio [net.mingsoft.basic.dao.IAppDao]: 0.7272727272727273
2019-09-02 11:50:21.369 DEBUG 16935 --- [nio-8080-exec-3] n.m.b.a.TemplateAction                   : tempPath:/home/username/IdeaProjects/TEST0/templets/1/jFenKou

上面日志里 TemplateAction : tempPath:/后面 就是模板路径读取位置
这是我的模板路径位置,所以把模板放到这里即可(每个人路径不一样,详见打包后运行的输出日志)

目录结构如图

 $ $ tree -L 3
.
├── api
│   └── ms.people.min.js
├── html
│   └── 1
│       ├── 100
│       ├── 106
│       ├── 150
│       ├── 152
│       ├── 154
│       ├── 19
│       ├── 52
│       ├── 53
│       ├── 59
│       ├── 61
│       ├── 62
│       ├── 93
│       ├── index.html
│       └── m
├── ms-mcms.jar  (这个是以 SpringBoot 方式打包的 JAR)
├── static
│   ├── plugins
│   │   ├── amazeui
│   │   ├── animate
│   │   ├── axios
│   │   ├── banner
│   │   ├── bootstrap
│   │   ├── bootstrap.daterangepicker
│   │   ├── bootstrap.select2
│   │   ├── bootstrap-table
│   │   ├── element-tree-grid
│   │   ├── element-ui
│   │   ├── hammerjs
│   │   ├── iconfont
│   │   ├── jBox
│   │   ├── jquery
│   │   ├── jquery.cookie
│   │   ├── jquery.daterangepicker
│   │   ├── jquery.easyui
│   │   ├── jquery.mobile
│   │   ├── jquery.serializeJSON
│   │   ├── jquery.serializeObject
│   │   ├── jquery.swfupload
│   │   ├── jquery.tmpl
│   │   ├── jquery.touchswipe
│   │   ├── jquery.ui
│   │   ├── jquery.validation
│   │   ├── less
│   │   ├── minireset
│   │   ├── ms
│   │   ├── pickadate
│   │   ├── plupload
│   │   ├── qs
│   │   ├── quill
│   │   ├── seajs
│   │   ├── select2
│   │   ├── sortable
│   │   ├── tmlpjs
│   │   ├── ueditor
│   │   ├── validator
│   │   ├── vue
│   │   ├── VueDraggable
│   │   ├── vue.lazyload
│   │   ├── vue-quill-editor
│   │   ├── vue.waterfall2
│   │   ├── vuex
│   │   └── ztree
│   └── skin
│       └── manager
├── temp
├── templets
│   └── 1
│       ├── company1783
│       ├── default
│       ├── jFenKou
│       └── test
├── upload
│   ├── 1
│   │   └── article
│   ├── app
│   │   └── 1
│   ├── article
│   │   ├── 1
│   │   ├── 1569
│   │   ├── 1572
│   │   ├── 1573
│   │   ├── 1584
│   │   ├── 1585
│   │   ├── 1599
│   │   ├── 1615
│   │   └── 1638
│   ├── editor
│   │   ├── 1
│   │   ├── 1463190514061.jpg
│   │   ├── 1463190540814.jpg
│   │   ├── 1464250011559.jpg
│   │   ├── 1464250043270.jpg
│   │   ├── 1464250099001.jpg
│   │   ├── 1464250137478.jpg
│   │   ├── 1464250177772.jpg
│   │   ├── 1464250218146.jpg
│   │   ├── 1464250462392.jpg
│   │   ├── 1464250471969.jpg
│   │   ├── 1464250490621.jpg
│   │   ├── 1464250506010.jpg
│   │   ├── 1464250700988.jpg
│   │   ├── 1569
│   │   ├── 1573
│   │   ├── 1579
│   │   └── 1580
│   ├── mall
│   │   └── product
│   └── product
│       └── 1
└── WEB-INF
    └── manager
        ├── cms
        └── main.ftl

100 directories, 17 files
@sky5454 sky5454 added the documentation Improvements or additions to documentation label Sep 2, 2019
@sky5454
Copy link
Owner Author

sky5454 commented Sep 2, 2019

目前能确定 htmltempletsupload三个目录是默认从外部读取的,其他未知,暂时没有看那一部分的源码

@sky5454
Copy link
Owner Author

sky5454 commented Sep 2, 2019

如果由模板生成的静态HTML之类的文件不全,可以试着把 “列表”改为“封面”,然后生成栏目文章,然后再改回“列表”生成栏目文章

@sky5454
Copy link
Owner Author

sky5454 commented Sep 9, 2019

另外,如果还是想用 war 包部署方式(不推荐),参阅:
以下未测试,不知道 mcms 有没有把静态资源外置

@sky5454
Copy link
Owner Author

sky5454 commented Sep 9, 2019

如果需要高性能,请使用 jar + NGINX 反向代理 负载均衡 的方式。 (反向代理可以实现将请求分发给其他服务器/springboot 服务,负载均衡用来分担流量压力给各机子/服务)

单机部署:例如可以把静态资源放在 nginx 资源目录下,然后直接访问 html 就是访问 nginx 下的文件了。然后配置反向代理把 API 地址转给 jar (springboot 服务所配置的地址)

总体图示:

A ------> B 代表使用 NGINX 反向代理将符合A地址的请求交给B处理




  1. 单机部署

单 jar + 单个 Nginx 服务器

动态地址 ----> jar(springboot)
静态地址 -----> NGINX (1号,并作为网关)

  1. 小型分布式

单 jar + 多个 Nginx 服务器

动态地址 ----> jar(springboot)
静态地址 -----> NGINX (N 个 NGINX 服务,只处理静态资源)
负载均衡和反向代理 --------- NGINX (另外一个 Nginx 服务,作为网关,使用负载均衡使得 N 个 Nginx 被均匀使用)

这样就可以实现多台机子合理分担流量压力

  1. 大型分布式

多个 jar + 多个 Nginx 服务器

参考2. 小型分布式,然后想办法把 jar 包改成分布式共享的

可能有用的参考:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

1 participant