java秒杀项目练习一-云环境快速搭建

java秒杀项目练习一-云环境快速搭建

fork大神项目的来练习,自己搭建在线环境,用来学习代码。本项目地址: GitHub - luozijing/miaoShaPractice at dev

云环境地址:登录

进行账号注册(随便注册体验)体验秒杀功能

云环境docker搭建

本人购买的是tx云 2c4g轻量服务器,1200G流量,使用体验来说一般,唯一的好处就是便宜,一年差不多70左右,三年使用期限,对于小型开发项目还是够用的。安装的操作的系统的自带的docker的CentOS7.6-Docker20,在管理容器方面较为方便。服务器使用过程中注意流量的控制,监控流量防止某些部分程序一直偷流量,超出流量后是要计费的,费用0.8/G。

搭建的开发环境的话使用的是Docker Compose部署SpringBoot应用,Docker Compose云环境中自带,很方便的就直接准备镜像了。

镜像文件可以到github项目空间去下载。

直接在docker环境中运行以下命令运行应用环境,redis的配置文件记得放在对应目录下

docker-compose -f docker-compose-env.yml up -d

常用的docker命令有如下,也可以使用云管理平台管理容器

docker container ls #查看容器
docker start gitlab #运行容器
docker exec -it gitlab /bin/bash #进入容器
docker ps -l #查看已经启动的容器, -l 是显示最新创建的容器包括所有状态
docker rm 5e9b198b3dcb      # 删除nginx容器
docker logs mysql #查看mysql日志
docker inspect #查看镜像详情
docker rmi imageId #删除镜像
docker images #查看镜像
docker ps -a #查看所有容器

应用构建

刷下应用的sql,然后clone下代码,打包下项目,配置docker 镜像地址,和需要打包镜像的模块,本项目中需要打包的是web模块,其他的是公共包。maven pom.xml配置如下:

  <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>${docker.maven.plugin.version}</version>
                <executions>
                    <execution>
                        <id>build-image</id>
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <imageName>miaosha1/${project.artifactId}:${project.version}</imageName>
                    <dockerHost>${docker.host}</dockerHost>
                    <baseImage>java:8</baseImage>
                    <entryPoint>["java", "-jar", "-Dspring.profiles.active=prod","/${project.build.finalName}.jar"]
                    </entryPoint>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

应用打包后的docker.yml配置也在项目中可以找到,启动后应用即可访问。

构建中的问题

解决zookeeper 防火墙状态下启动容器

firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --zone=public --add-port=3888/tcp --permanent
firewall-cmd --zone=public --add-port=9080/tcp --permanent
重启docker 网络状态发生改变

连不上docker 客户端,尝试将环境的防火墙关闭,并编辑docker 文件,开启相应端口,重启docker。打完镜像后记得打开防火墙,以及关闭对应端口。

vi /usr/lib/systemd/system/docker.service
#修改为
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

解决mysal外部访问数据乱码

 docker exec -it mysql mysql -u root -p'root'
SET NAMES 'utf8';

mysql 密码兼容问题,网上很多都是'root'@'localhost',外网连接正确的是

ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY 'xx';

​​​​​​​

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值