微服务架构图
第二代微服务架构,kubernetes
高可用集群,全自动DevOps
,
技术架构:
JDK11
MySQL-8.0.25
apache-maven-3.6.3
spring-boot 2.5.1
spring-cloud-2020.0.3
spring-cloud-alibaba 2021.1
架构图
tips: 主要目的减少web服务的的内存占用
JVM参数: -Xms256m -Xmx256m -Xmn100m -Xlog:gc*
- 已封装
BaseController
,用于Controller数据返回
- 已封装
BaseResult
,返回结果封装 ,让接口的输入和输出更加明确
-
重新改造代码生成, 所有接口都可以生成测试文档, 支持在线调试接口, 执行
mvn package
自动出api文档,访问地址改成自己的端口号:http://127.0.0.1:10000/debug-all.html,
基于
Mybatis-Plus
自动生成,支持复杂分页查询, 数据库变动只需要修改实体类即可
-
项目改造完成, 集成: 业务代码自动生成 -> 执行:
mvn package
, 自动输出可调式的高可读性api
文档 -> 分层架构 -> 以最小的代价迎合业务的重大变更 -
已接入
ELK
全家桶
-
整合人人框架,提供:
domain
-->dao
-->service
-->controller
--> 全自动api
文档在线输出, 支持在线调试目的:让今后因业务变动影响数据库的变动只需要码农修改数据库对应的领域模型即可,节省更多的时间
-
微服务计划
进行中......
- 移除
spring-cloud-alibaba 2.2.5.RELEASE
版本中微服务中通过feign
远程调用时使用ribbon
负载均衡的支持, 采用spring-cloud 2020.0.1
的spring cloud loadbalancer
代替
- 下载本项目
git clone https://github.com/Weasley-J/lejing-mall
- 切换工作目录
cd shell
chmod 0777 -vR *.sh && ./run_elk_install.sh
<destination>192.168.40.132:5044</destination>
以上标签值改为你自己的 Logstash
能接受log的主机ip:port
- 终端
- es中的索引数据
本项目的
api
文档输出基于smart-doc和common工程里面我写的一些类完成的,不建议把common工程上传到maven私服上面,这会导致项目执行:
mvn package
的时候不能读取common里面的一些相关类的注释,因为java
最终编译成字节码文件后会把所有注释都清理掉,也就是项目最终的class文件不包含任何注释
文件相对路径:nacos-server/nacos-server-1.4.1/nacos/conf/application.properties
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.40.132:3306/nacos_config?serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&autoReconnect=true&allowMultiQueries=true
db.user.0=root
db.password.0=123456
- 启动
nacos
,进入终端:nacos-server/nacos-server-1.4.1/nacos/run-nacos-standalone.bat
- 启动授权服务
- 启动网关服务
lejing-gateway
- 再启动其他相关服务
使用curl
命令模糊匹配删除,在shell
终端上执行:
#!/usr/bin/env bash
# 全局变量,自行修改
IP="192.168.40.132"
PORT="9200"
USER="elastic"
PWD="123456"
# 删除乐景商城的日志索引库
curl -XDELETE -u ${USER}:${PWD} http://${IP}:${PORT}/lejing-*,renren-fast-*
# 删除kibana的日志索引库
curl -XDELETE -u ${USER}:${PWD} http://${IP}:${PORT}/.monitoring-kibana-*
# 删除logstash的日志索引库
curl -XDELETE -u ${USER}:${PWD} http://${IP}:${PORT}/.monitoring-logstash-*
# 删除es的日志索引库
curl -XDELETE -u ${USER}:${PWD} http://${IP}:${PORT}/.monitoring-es-*
#克隆项目,见lejing-web-frontend/lejing-manage/README.md文件
前端多页面html
使用live-server
运行:
#打开CMD终端
cd lejing-web-frontend/lejing-portal
# npm下载live-server启动门户网站, 指定门户网站的端口8002
npm install -g live-server --registry=https://registry.npm.taobao.org && live-server --port=8002
mybatis-plus
的IPage
分页入参不利于项目的API
文档输出,毕竟我们都不想手写接口文档,如果你喜欢手写接口文档,然后再填入什么RAP
、YApi
里面,我推荐你用回Swagger
。
fatal: unable to access ‘https://github.com/Weasley-J/lejing-mall’: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
在Git Bash终端中输入:
env GIT_SSL_NO_VERIFY=true
windows
netstat -aon | findstr "10000"
tasklist | findstr "1532"
taskkill /f /t /im "yundetectservice.exe"