jpsite-v1环境搭建

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: jpsite-v1环境搭建

著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

技术选型

技术 版本
Spring boot 2.0.6
Swagger2
Spring security 5.0.9
docker 最新
Mysql 5.8
java 8
mybatis-plus 3.0.6
Redis 最新
Vue 2.x
Element-UI

项目介绍

git 地址:==>  jpsiet-v1

  • 集成Swagger API文档自动生成功能,提供丰富的API管理
  • 支持一二级缓存,使得性能到达极致(一级缓存是由 ConcurrentHashMap ,二级缓存使用 redis )
  • session登录成功存储 redis 中,实现 sso单点登录
  • session 并发数,过期时间可随意指定
  • 带有@ResponseBody 的返回 json 格式实现自定义 type 返回格式
  • 所有http请求拦截打印日志
  • 支持开启异步线程配置,处理多任务
  • REST接口开发规范
  • 基于Spring boot构建,配置文件能少则少
  • 基于Spring security 的权限验证
  1. 图形验证码,短信验证码,手机登录,微信登录,QQ登录
  2. 可用配置文件指定哪些 request url 需要验证码校验及验证码类型
  3. 记住我功能
  • 集成xxl-job轻量级分布式任务调度平台
  • 集成Apollo配置中心
  • 集成 actuator 详细的应用监控,包括http,线程栈,内存等信息
  • 集成 docker 的容器化构建,开箱即用
  • 集成Zookeeper
  • 集成 MyBatis-Plus
  1. 指定表名生成对应的 entity, dao, service , impl ,controller 类文件。
  2. 自定义风格包名名称,模块名称,文件名称
  3. 热加载、代码生成、分页、性能分析等功能一应俱全。
  • 集成Spring Data Elastic方便使用ElasticSearch
  • (后续开发)mybatis动态多数据源配置与分布式事务控制
  • (后续开发)动态渲染.docx合同文件协议模板,并生产pdf与快照
  • (后续开发)集成腾讯云电子合同签章
  • (后续开发)集成Spring Cloud Alibaba
  • (后续开发)前端实现在线预览pdf、word、xls、ppt等文件
  • (后续开发)集成自动化测试报告框架Allure
  • (后续开发)使用drools规则引擎的风控系统基础功能
  1. 账号:垃圾注册、撞库、盗号等
  2. 交易:盗刷、恶意占用资源、篡改交易金额等
  3. 活动:薅羊毛
  4. 短信:短信轰炸
  5. 原则上可以动态配置规则

mysql 环境安装

docker pull mysql
docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql
hahadeMacBook-Pro:^ haha$ docker  p s 
CONTAINER ID  IMAGE COMMAND CREATED STATUS  PORTS NAMES 
26368e380cb1  xuxueli/xxl-job-admin "sh -c 'java -jar /a."  17 minute:  es ago  Up 17 minutes 0.0.0.0:8080->8080/tcp  xxl-job-admin 
167823f3f54c  mysql "docker-entrypoint.s..' 18 hours  ago Up About an hour  0.0.0.0:3306->3306/tcp,33060/tcp  mysq1

xxl-job本地docker安装

git clone https://github.com/xuxueli/xxl-job.git

修改配置文件

Spring Boot 属性配置和使用

xxl-job/xxl-job-admin/src/main/resources/application.properties

### xxl-job, datasource
spring.datasource.url=jdbc:mysql://${MYSQL_PORT_3306_TCP_ADDR:MYSQL_PORT_3306_TCP_PORT}/xxl-job?Unicode=true&characterEncoding=UTF-8
spring.datasource.password=root
  • MYSQL_PORT_3306_TCP_ADDR
  • MYSQL_PORT_3306_TCP_PORT

分别是获取系统环境变量配置

调度中心docker镜像构建

可以通过以下命令快速构建调度中心,并启动运行;

mvn clean install package   //maven打包
docker build -t xuxueli/xxl-job-admin ./xxl-job-admin  //构建image
docker run --name xxl-job-admin -p 8089:8080 --link mysql -d xuxueli/xxl-job-admin    // 创建并启动container
docker exec xxl-job-admin env   //查看系统env
hahadeMacBook-Pro:^ haha$ docker  p s 
CONTAINER ID  IMAGE COMMAND CREATED STATUS  PORTS NAMES 
26368e380cb1  xuxueli/xxl-job-admin "sh -c 'java -jar /a."  17 minute:  es ago  Up 17 minutes 0.0.0.0:8080->8080/tcp  xxl-job-admin 
167823f3f54c  mysql "docker-entrypoint.s..' 18 hours  ago Up About an hour  0.0.0.0:3306->3306/tcp,33060/tcp  mysq1

--link后mysql的系统环境变量

docker exec xxl-job-admin env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=26368e380cb1
MYSQL_PORT=tcp://172.17.0.2:3306
MYSQL PORT 3306 TCP=tcp://172.17.0.2:3306 MYSQL_PORT_3306_TCP_ADDR=172.17.0.2 MYSQL PORT 3306 TCP PORT=3306 MYSQL_PORT_3306_TCP_PROT0=tcp
MYSQL_PORT_33060_TCP=tcp://172.17.0.2:33060 MYSQL PORT 33060_TCP ADDR=172.17.0.2 MYSQL PORT 33060 TCP PORT=33060 MYSQL_PORT_33060_TCP_PROT0=tcp MYSQL_NAME=/xxl-job-admin/mysgl
MYSQL ENV MYSQL ROOT PASSWORD=root MYSQL ENV GOSU VERSION=1.7 MYSQL ENV MYSQL MAJOR=8.0
MYSQL_ENV_MYSQL_VERSION=8.0.13-1debian9 LANG=C.UTF-8
JAVA_HOME=/docker-java-home/jre
JAVA VERSION=7u181  

5cf76ebbb3262573a271235500e56e9.png

http://localhost:8089/xxl-job-admin/

apollo配置中心搭建

git clone https://github.com/nobodyiam/apollo-build-scripts.git

创建ApolloPortalDB

通过各种MySQL客户端导入sql/apolloportaldb.sql即可。

创建ApolloConfigDB

通过各种MySQL客户端导入sql/apolloconfigdb.sql即可。

配置数据库连接信息

编辑demo.sh,修改ApolloPortalDB和ApolloConfigDB相关的数据库连接串信息。

# apollo config db info
apollo_config_db_url=jdbc:mysql://${MYSQL_PORT_3306_TCP_ADDR}:${MYSQL_PORT_3306_TCP_PORT}/ApolloConfigDB?characterEncoding=utf8
apollo_config_db_username=root
apollo_config_db_password=root
# apollo portal db info
apollo_portal_db_url=jdbc:mysql://${MYSQL_PORT_3306_TCP_ADDR}:${MYSQL_PORT_3306_TCP_PORT}/ApolloPortalDB?characterEncoding=utf8
apollo_portal_db_username=root
apollo_portal_db_password=root

注意:不要修改demo.sh的其它部分

docker容器化

apollo-build-scripts目录下

build -t apollo-quick-start .  #dockerfile所在目录
docker run --name apollo-admin -p 8070:8070 -p 8080:8080 -p 8090:8090 --link mysql -d apollo-quick-start

启动成功,如果启动失败可以把启动日志copy到宿主机查看

docker cp apollo-admin:/apollo-quick-start/service/apollo-service.log .
docker cp apollo-admin:/apollo-quick-start/portal/apollo-portal.log .

06e45694f3f9a67392a8c227cc68d7e.png

6178dd020255d6334be27f1f7ab2dce.png

因为Eureka的Instance Info IP为docker内部IP,外部无法使用

65a4f02e75f680b8e65640fbce9bb6c.png

所以添加vm启动参数为宿主机ip

eac04cd0d506ab826a60b199f96a0ae.png

源码阅读解惑

/Users/haha/.m2/repository/com/ctrip/framework/apollo/apollo-client/1.0.0/apollo-client-1.0.0-sources.jar!/com/ctrip/framework/apollo/internals/RemoteConfigRepository.java:313
/Users/haha/.m2/repository/com/ctrip/framework/apollo/apollo-client/1.0.0/apollo-client-1.0.0-sources.jar!/com/ctrip/framework/apollo/internals/ConfigServiceLocator.java:64
/Users/haha/.m2/repository/com/ctrip/framework/apollo/apollo-client/1.0.0/apollo-client-1.0.0-sources.jar!/com/ctrip/framework/apollo/internals/ConfigServiceLocator.java:75

http://localhost:8080http://localhost:8070http://localhost:8090



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
11天前
|
关系型数据库 MySQL Linux
docekr环境搭建配置!!!
本文介绍了Docker的安装部署及基本操作,包括使用国内源安装Docker CE、配置Linux内核流量转发、启动第一个容器、初体验Docker玩法、镜像命令、镜像详解、镜像分层结构、镜像实践操作、容器管理实践等内容。通过具体示例,如下载并运行MySQL、Redis、Nginx和WordPress镜像,帮助读者快速掌握Docker的基本使用方法。
37 5
|
5月前
|
IDE Java 关系型数据库
SpringBootWebProject学习1、环境搭建
SpringBootWebProject学习1、环境搭建
40 1
|
6月前
|
NoSQL Dubbo Java
day01—项目介绍与环境搭建
day01—项目介绍与环境搭建
194 0
安装WinGW教程(环境配置)
安装WinGW教程(环境配置)
724 0
|
运维 Kubernetes 应用服务中间件
k8s 基础&环境搭建
k8s 基础&环境搭建
213 0
k8s 基础&环境搭建
|
监控 Java 开发工具
android系统开发环境搭建
Android Studio开发工具介绍、Android SDK和Android开发环境的安装
273 0
android系统开发环境搭建
|
SQL Java 关系型数据库
基本环境搭建
基本环境搭建
|
Web App开发
ReSIProcate环境搭建
1首先下载resiprocate-1.6 2取消resiprocate-1.6目录的只读属性 3然后使用Visual Studio 2008打开resiprocate-1.6下的reSIProcate_9_0.sln解决方案 4 右击reSIProcate_9_0解决方案下的resiprocate,reprosetup,(最好把re开头项目都生成下)项目,选择重新生成,等编译完成后,会在resiprocate-1.6\repro\WinSetup\Debug下生成可执行文件。
1768 0
|
人工智能 数据可视化 数据挖掘
环境搭建| 学习笔记
快速学习环境搭建
133 0
|
Kubernetes Linux Docker
k8s环境搭建入门
linux环境配置及k8s环境配置
543 0