JAVA开发与运维(JavaWeb测试环境搭建)
Posted 茅河野人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA开发与运维(JavaWeb测试环境搭建)相关的知识,希望对你有一定的参考价值。
本例子测试环境搭建在腾讯云平台之上。
系统架构:
微服务+Eureka+Apollo+gateWay+redis+rocketMq+OSS+spark+ETL+mysql+pgsql+clickHouse+SLB.
首先需要申请的云资源。
业务用途 | CPU | MEM | Disk | 数量 | 云产品 | 规格 | |
服务器 | 应用服务(部署微服务) | 4核 | 8G | 500G | 1 | CVM | S6.LARGE8 |
数据调度及抽取 | 4核 | 8G | 500G | 1 | CVM | S6.LARGE8 | |
spark数据分析 | 4核 | 16G | 500G | 1 | CVM | S6.LARGE16 | |
中间件 | 缓存服务Redis | 8G | 1 | Redis | 标准版8G单副本 | ||
分布式消息服务RocketMQ | 4核 | 8G | 1 | RocketMQ | Topic 容量 150 Group 容量 1500 虚拟集群 TPS 上限 4000 | ||
数据库 | pgsql存储小程序端用户数据 | 4核 | 8G | 500G SSD | 1 | PGSQL | 双机高可用 |
业务中台MySQL | 4核 | 8G | 500G SSD | 1 | MySQL | 基础型单节点 | |
数据中台MySQL | 4核 | 8G | 500G SSD | 1 | MySQL | 基础型单节点 | |
clickhouse数据分析 | 4核 | 16G | 500G SSD | 1 | ClickHouse | 标准型4c16g单节点 | |
存储 | 对象存储OSS | 500G | 1 | COS | |||
其他(按需填写) | SLB负载均衡 | 1 | CLB | 内网 | |||
资源申请下来后进行环境安装,通过在线安装的方式。
1.1服务器资源
操作系统版本:Linux CentOS 7.6
JAVA环境:openjdk version "1.8.0_312"
数据库:MYSQL8.0 或PostgreSQL 12.8
1.2 yum准备
1.2.1 更新yum
yum update yum
1.2.2 安装yum工具
yum -y install yum-utils
1.2.3 查看yum版本
yum --version
版本为3.4.3或之后的最新版本即可
1.2.4 安装telnet工具
yum install telnet.*
1.3 JAVA部署
JAVA安装命令:
yum install java-1.8.0-openjdk.x86_64
查看JAVA版本: java -version
1.4 docker环境及部署
1.4.1 版本
Client: Docker Engine – Community version: 20.10.12
Server: Docker Engine – Community version: 20.10.12
1.4.2 部署
1.用yum拉取阿里云镜像:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2. yum安装:
yum install docker-ce
3.查看docker版本:
docker version
4.启动docker:
systemctl start docker
5.设置docker开机自启
systemctl enable docker
1.4.3 文件夹
1.在系统的/home路径下创建一个命名为“docker”的文件夹,用于存放docker相关文件。
2.在/home/docker路径下创建两个文件夹“script”和“apps”,用于存放脚本文件与镜像文件。
1.4.4 docker常用命令
1.查看docker镜像: docker images
2.查看docker正在运行容器: docker ps
3.查看docker里的容器: docker ps -a
1.5 nginx部署
端口需要:80
1.5.1 docker部署nginx
docker pull nginx:latest
1.5.2 脚本文件
在/home/docker/script路径下创建一个脚本文件“nginx.sh”,内容为:
docker run -d \\
--name nginx \\
--net=host \\
-v /home/docker/apps/nginx/www:/usr/share/nginx/html \\
-v /home/docker/apps/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \\
-v /home/docker/apps/nginx/logs:/var/log/nginx \\
-v /home/docker/apps/nginx/conf.d:/etc/nginx/conf.d \\
-v /home/docker/apps/nginx/cert:/etc/nginx/cert \\
nginx
(注意:以上内容需注意linux中的特殊字符,可用vim编辑文件,去掉特殊字符,否则运行脚本文件时会报错;cert为安全证书相关,不需要时可以去掉)
1.5.3 nginx文件
1.在/home/docker/apps路径下创建“nginx”文件夹
2.在/home/docker/apps/nginx路径下分别创建“www”、 “logs”、 “conf”、 “conf.d”四个文件夹;”www”文件夹用于存放前端代码,“logs”文件夹用于存放日志,“conf”文件夹用于存放nginx总配置文件,“conf.d”用于存放项目配置文件;如需安全证书相关,还要创建“cert”文件夹。
3.nginx总配置文件:
在/home/docker/apps/nginx/conf路径下创建“nginx.conf”文件,作为nginx的总配置文件,内容为:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events
worker_connections 1024;
http
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
client_max_body_size 1024m;
include /etc/nginx/conf.d/*.conf;
4.项目配置分文件
在/home/dokcer/apps/nginx/conf.d路径下创建“xxx.conf”文件,“xxx”为项目名,内容为:
#server
#
## 80端口是http正常访问的接口
#listen 80;
#server_name XXX.com;
## 在这里,我做了https全加密处理,在访问http的时候自动跳转到https
#rewrite ^(.*) https://$server_name$1 permanent;
#
server
# listen 自定义监听端口
listen 80;
#定义使用 访问域名
server_name localhost;
# 如需域名则配置如下
# 把80换成侦听443端口,这个是ssl访问端口
# listen 443 ssl;
# ssl_certificate /etc/nginx/cert/安全证书文件名;
# ssl_certificate_key /etc/nginx/cert/安全私钥文件名;
location /
root /var/nginx/html/xxx;
index index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = /404.html
root error;
1.5.4 运行nginx
1.通过脚本文件nginx.sh运行,脚本文件的运行需授予权限,在文件目录下命令:
chmod 755 nginx.sh
2.运行脚本命令:./nginx.sh
1.5.5 nginx常用命令
1.启动: docker start nginx
2.重启: docker restart nginx
3.停止: docker stop nginx
1.5.6 nginx配置免密ssl私钥
1.拿到安全证书(.crt)、私钥(.key)和密码后,将安全证书和私钥放在/home/docker/apps/nginx/cert 路径下。
2.在cert文件夹内输入命令: openssl rsa -in 私钥文件名.key -out 要生成的免密私钥文件名.key
例: openssl rsa -in privkey2021.key -out privkey2021_unsecure.key
1.6 注册中心eureka部署
端口需要:8761
1.6.1 准备
部署注册中心eureka,使用docker部署。在/home/docker/apps路径下创建“eureka”文件夹,并存放一个ctg-eureka.jar的镜像文件和构建镜像的Dockerfile文本文件。eureka.jar文件可使用别的服务器同目录下的ctg-eureka.jar文件。
Dockerfile文件的内容:
FROM java:8
VOLUME /tmp
ADD ctg-eureka.jar ctg-eureka.jar
EXPOSE 8761
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/ctg-eureka.jar"]
1.6.2 脚本文件
在/home/docker/script路径下创建一个脚本文件“eureka.sh”,内容为:
docker run -p 8761:8761 --name ctg-eureka -d ctg-eureka
1.6.3 docker加载eureka镜像
在/home/dokcer/apps/eureka路径下执行命令:
docker build -t ctg-eureka .
(注意最后有个“.”符号)
1.6.4 运行eureka
1.通过脚本文件eureka.sh运行,脚本文件的运行需授予权限,在文件目录下命令:
chmod 755 eureka.sh
2.运行脚本命令:./eureka.sh
1.6.5 eureka常用命令
1.启动: docker start ctg-eureka
2.重启: docker restart ctg-eureka
3.停止: docker stop ctg-eureka
1.7 配置中心Apollo部署
端口需要: 8070,8080,8090
1.7.1 准备工作
Apllo的部署需要Mysql数据库,需要5.6.5以上版本。
1.7.2 创建数据库
Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB,我们把数据库、表的创建和样例数据都分别准备了sql文件,只需要导入数据库即可。
执行两个sql文件
sql/apolloportaldb.sql
sql/apolloconfigdb.sql
会创建两个数据库
sql文件可在官网:Quick Start · apolloconfig/apollo Wiki · GitHub 下载
1.7.3 脚本文件
1.在/home/docker/script路径下创建“apollo”文件夹
2.在/home/docker/script/apollo路径下创建“apollo-portal.sh”脚本文件,内容为:
docker run -d \\
--name apollo-portal \\
--net=host \\
-v /tmp/logs:/opt/logs \\
-e SPRING_DATASOURCE_URL=
"jdbc:mysql://数据库地址/ctg_apollo_portal_test?characterEncoding=utf8" \\
-e SPRING_DATASOURCE_USERNAME=数据库账号\\
-e SPRING_DATASOURCE_PASSWORD=数据库密码\\
-e APOLLO_PORTAL_ENVS=test \\
-e TEST_META=http://服务器ip地址:8080 \\
apolloconfig/apollo-portal:1.9.1
3.在/home/docker/script/apollo路径下创建“apollo-config.sh”脚本文件,内容为:
docker run -d \\
--name apollo-configservice \\
--net=host \\
-v /tmp/logs:/opt/logs \\
-e SPRING_DATASOURCE_URL=
"jdbc:mysql://数据库地址/ctg_apollo_config_test?characterEncoding=utf8" \\
-e SPRING_DATASOURCE_USERNAME=数据库账号\\
-e SPRING_DATASOURCE_PASSWORD=数据库密码\\
apolloconfig/apollo-configservice:1.9.1
4. 在/home/docker/script/apollo路径下创建“apollo-admin.sh”脚本文件,内容为:
docker run -d \\
--name apollo-adminservice \\
--net=host \\
-v /tmp/logs:/opt/logs \\
-e SPRING_DATASOURCE_URL=
"jdbc:mysql://数据库地址/ctg_apollo_config_test?characterEncoding=utf8" \\
-e SPRING_DATASOURCE_USERNAME=数据库账号\\
-e SPRING_DATASOURCE_PASSWORD=数据库密码\\
apolloconfig/apollo-adminservice:1.9.1
1.7.4 docker拉取apollo
命令:
1.docker pull apolloconfig/apollo-configservice:1.9.1
2.docker pull apolloconfig/apollo-adminservice:1.9.1
3.docker pull apolloconfig/apollo-portal:1.9.1
1.7.5 运行apollo
在/home/docker/script/apollo路径下运行指令
1. chmod 755 apollo-portal.sh
2. chmod 755 apollo-config.sh
3. chmod 755 apollo-admin.sh
执行运行命令
1. ./ apollo-portal.sh
2. ./ apollo-config.sh
3. ./ apollo-admin.sh
1.7.6 使用Apollo配置中心
访问服务器IP:8070可以进行访问,默认的用户名是apollo,密码是admin。
Docker前后端分离项目部署与运维集群环境搭建课程高清完整资源
分享好课,有需要的加qq:44069908)Docker前后端分离项目部署与运维集群环境搭建课程高清完整网课资源
学习是一种人生需求和一种态度。只有不断学习,及时“充电”,才能做到“百毒不侵”。
有能力的客户可以去官网购买,支持原作~
-----课程介绍----
Docker前后端分离项目部署与运维集群环境搭建课程高清好课,低价分享
精品好课,你需要的我刚好有,并且愿意分享给您,需要此课程的同学记得联系我们哦,更有海量学习资源与你分享~
知识就是力量,知识改变命运!
不信任的,别加~~~
-----以下忽略,为内容填充-----
呜呜呜。 弱化一开,刘邦在大招下传了过来,再加上瑶的控制,可怜的小鲁班在自家塔里被强势击杀。 而且事后想来这件事情很不可思议。 “刘邦好兄弟,快传我!”姜健道。” “呵呵。 【全部】鲁班:???我招你惹你们了,为什么要这样对我! 见对面鲁班崩溃的心情,直播间里的粉丝们都笑了起来。” “凑不要脸!” “娱乐主播给爷爬!” “下饭下饭下饭下饭。 姜健并没有在直播里带货,一般都是在每条更新的短视频里挂链接。”姜健在直播间里道。 “666。 昨天晚上打完直播,姜健本来想着退出游戏的,刚好在聊天世界的频道里看到有人发了一条消息。” 姜健已经出了一双布甲鞋,和一件红莲斗篷,再预购一件黑切,现在的装备虽然还没有成型,不过对付一个脆皮鲁班还是轻轻松松。 “鲁班挂机了。” 直播间的粉丝们此时也惊讶了,没想到可以这么玩哪吒。 “这个账号不想玩了,200出,要的联系我。 “666。 【全部】鲁班:?为什么要这样搞我。 而且事后想来这件事情很不可思议。” 姜健这边的优势也打开了,鲁班发育不起来,一直被针对,局势开始一边倒。 “兄弟们,我说我是一个技术主播不过分吧。
以上是关于JAVA开发与运维(JavaWeb测试环境搭建)的主要内容,如果未能解决你的问题,请参考以下文章
最详细的JavaWeb开发基础之java环境搭建(Windows版)
Java架构师成长之道之RabbitMQ开发与运维-基础篇(CSDN版)
使用华为云软件开发平台devcloud和应用管理与运维平台servicestage实现持续集成(CI)持续部署(CD)
使用华为云软件开发平台devcloud和应用管理与运维平台servicestage实现持续集成(CI)持续部署(CD)