停车系统详细功能说明和安装搭建教程

搭建教程 · 2020-09-02

1.3、为什么要做这个系统

简单明了对比,现在都是聪明人,谁也忽悠不了谁



2、系统介绍

2.1、架构图

2.2、技术体系

开发语言

云端系统: Java

硬件开发: C/C++

开发框架和架构



前端: 【APP】: flutter(原生混合框架,不是web封装,原生应用,一套代码直接生成原生Android和ios应用),既不损失性能,也能降低开发成本。框架官网地址:https://flutterchina.club/



【小程序/h5/公众号】:uni-app(底层框架Vue),一套代码直接生成h5(直接部署公众号),微信小程序,可以打包混合app,一箭三雕,经济又好用,也是市场主流的开发框架之一,框架官网地址:https://uniapp.dcloud.net.cn/



【后台管理】:vue-element-admin,是目前国内外都很火的一套后台管理模板,我们采用的是typeScript版本,框架官网地址:https://panjiachen.github.io/vue-element-admin-site/zh/



服务端: 【java框架】:[springboot2] [dubbo2.7.3] 官网地址:http://dubbo.apache.org/zh-cn/ 【数据库对接】:[mybatis] 【即时通讯IM】:netty4 【数据库】:MySQL(常规业务数据和重要数据存储),Mongodb(存储聊天内容),Redis(缓存高频非实时数据),Elasticsearch(海量数据全文检索和大型数据日志服务) 【负载均衡和转发】:nginx

动态分布式

微服务: 微服务治理框架我们采用了阿里巴巴的Dubbo框架,是目前市场上性能当之无愧的扛把子,每个功能都是一个独立的服务,让我们的应用高可用,提高容灾性,理论上只要你舍得出钱部署服务器,几百万用户真实流量是完全不成问题的。技术支持:www.ngkingyi.cn该框架支持灰度发布,让我们的服务更新迭代永不停机

海量数据优化: 数据库主从模式,微服务框架让主从更方便,数据读写分离,再也不担心高峰期和推广而来的海量并发了

2.3、别人不说的我告诉你



什么是停车场系统



能跟我讲讲这啥原理么?这个流程怎么实现的?我很懵



先说大概流程 车辆进场 --->车牌被摄像头拍摄到,摄像头识别出车牌 --->向云端服务器发送数据(例如车牌号,进场时间,哪个停车场,哪个入口等数据) --->云端服务器接收到数据,记录到数据库 --->车辆在停车场内停了2个小时(假设停车费5元/小时) --->车主办完事了,准备离开停车场,在手机上搜索自己车牌并支付相应停车费 --->车辆出场,到停车场门口时车牌再次没摄像头拍摄到摄像头识别出车牌 --->向云端服务器发送数据(例如车牌号,进场时间,哪个停车场,哪个入口等数据) --->云端服务器接收到数据,记录到数据库,根据现有数据判断该车辆是否已经付费 --->车辆已经付费,匝道自动开启,整个过程很流畅,不需要停车



大概示意图如下

如果我也想搞一套这种系统,我需要准备哪些东西呢?

先买个摄像头,淘宝上就很多,建议买主流品牌的,价格一般在400-800(一般只支持大陆车牌),要做国外的车牌识别话摄像头会在4000-6000左右/个(价格贵在集成的算法多了),我个人推荐几个牌子的相机(臻识,华夏,千熠)

买个道闸,价格800-2000,看你要具体款式,价格不一样,淘宝上也很多,道闸时通用的(例如你有了一个相机,几乎可以对接任何一家道闸)

买个显示屏,当然这个不是必须的,你应该经常可以看到别人停车场门口有个显示屏,买这个纯属为了提高B格

直接配置到我们的系统就行了,就是这么简单

2.4、功能介绍

附近停车场+导航

车位预约

车场服务评价

停车套餐

临时车牌和无牌进出(无需扫码)

远程开闸(支持预约开闸)

显示屏内容在线管理

即时通讯聊天功能/朋友圈(仿微信)

优惠券功能

支付功能

后台管理



3、产品规划

3.1、服务对象

普通单个停车场

可以几个老板合作起来一起用一套系统,成本会低很多,因为正常这种系统的服务器1年价格在3000-4000左右,我们系统是没有任何费用的,服务器自行到阿里云,腾讯云,华为云等平台购买

大型单个停车场

物业公司



集团



个人或公司自己运营平台

3.2、服务模式

安装部署服务

根据我们提供的部署文档自行安装和部署(要求具备服务器运维能力或者开发人员)

系统安装对接硬件服务

我们建议用户自行安装部署,对接硬件,因为我们系统已经进行大量底层封装,正常情况是部署配置即用,大多数问题可以线上免费沟通得到解决

3.3、方向

①:系统会坚持保持定期更新迭代 ②:路边停车后期我们也会陆续加入进来,目前路边停车硬件设备不是很成熟,电子车牌未普及 ③:充电桩整合 ④:物业缴费

4、安装部署

4.1、环境要求

环境要求

【操作系统】:linux,教程只提供Centos7+的安装教程,如果要部署到ubuntu的参考centos教程即可(命令有些差异)

【JAVA环境】:JDK1.8+

【硬件要求】:建议4核,内存不能低于8G

【带宽】:建议2M+,5M为佳

提示

安装过程可能涉及到很多方面的知识,适合以下人员操作 ①:运维人员 ②:开发人员

不具备以上其中一个条件的建议交给自己身边的技术人员进行部署,或者联系我们协助部署

获取服务器信息(*下面我以腾讯云为例进行讲解,技术支持:www.ngkingyi.cn)

①:登录自己服务器商平台的控制台去查看服务器

4.3、安装宝塔和相关基础服务

安装宝塔

使用root用户和其密码连接linux服务器,ssh连接工具有不少(例如:Putty,Xshell,SecureCRTSecureFX_HH),我个人一直使用的是SecureCRTSecureFX_HH破解免费版

设置小技巧

下面我们开始安装宝塔 输入命令:yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh &;& sh install.sh

打开浏览器,登录我们的宝塔

成功登录宝塔画面如下

安装mysql和mongodb以及Redis数据库

4.4、创建数据库和导入数据

创建数据库

创建数据库名为caifeng的数据库,字符编码UTF-8,此操作可以自己在linux命令行操作,也可以在宝塔界面操作,也可以用navicat工具进行操作

导入数据

使用navicat工具连接自己数据库之后,导入如下数据库文件

如果你没有上面的工具,可以用下面的sql文件,使用phpmyAdmin或者其它工具进行sql文件导入到自己线上数据库

4.5、安装JAVA环境

JDK下载地址

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

我下载的版本是1.8的,如下图,如果你下载时候要求登录账号,可以自己注册一个账号然后再进行下载



版本要求

JAVA版本要求1.8+

开始部署java环境

将我们刚刚下载的JDK上传到我们服务器

开始上传

上传完成,我们开始解压压缩包 依次执行如下linux命令: tar -zxvf jdk-8u251-linux-x64.tar.gz

mkdir /usr/local/java

cp -R ./jdk1.8.0_251/* /usr/local/java/

echo -e "export JAVA_HOME=/usr/local/java\n\ export JRE_HOME=${JAVA_HOME}/jre\n\ export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib\n\ export PATH=${JAVA_HOME}/bin:$PATH\n" >> /etc/profile

source /etc/profile



输入命令

java -version

显示下图表示java环境安装成功

4.6、安装zookeeper

下载压缩包

执行如下linux命令 cd ~ wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

解压压缩包 tar -zxvf zookeeper-3.4.14.tar.gz

开始部署zookeeper(下面我均简称zk)

创建zk目录 mkdir /usr/local/zookeeper/

复制zk到指定目录 cd ~ cp -R zookeeper-3.4.14/* /usr/local/zookeeper/

cd /usr/local/zookeeper/conf/

cp zoo_sample.cfg zoo.cfg

启动zk sh /usr/local/zookeeper/bin/zkServer.sh start

启动成功如下:

4.7、安装fastDFS

什么是fastDFS

FastDFS是由国人余庆所开发(技术支持:www.ngkingyi.cn),该项目淘宝也(曾经,现在或继续)使用,其项目地址: https://github.com/happyfish100 FastDFS是一个轻量级的开源分布式文件系统,主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡。 FastDFS是一款类Google FS的开源分布式文件系统,它用纯C语言实现,支持Linux、FreeBSD、AIX等UNIX系统。 FastDFS只能通过专有API对文件进行存取访问,不支持POSIX接口方式,不能mount使用。 准确地讲,Google FS以及FastDFS、mogileFS、 HDFS、TFS等类Google FS都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。

FastDFS的特性

1》分组存储,灵活简洁、对等结构,不存在单点 2》文件ID由FastDFS生成,作为文件访问凭证,FastDFS不需要传统的name server 3》和流行的web server无缝衔接,FastDFS已提供apache和nginx扩展模块 4》大、中、小文件均可以很好支持,支持海量小文件存储 5》 支持多块磁盘,支持单盘数据恢复 6》 支持相同文件内容只保存一份,节省存储空间 7》 存储服务器上可以保存文件附加属性 8》 下载文件支持多线程方式,支持断点续传

fastDFS架构图

fastDFS安装部署

下载相关依赖(依次执行如下命令) cd ~



wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz -O libfastcommonV1.0.7.tar.gz



wget http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz



wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz -O FastDFS.tar.gz



wget http://mirrors.sohu.com/nginx/nginx-1.8.0.tar.gz



yum install -y gcc gcc-c++



yum -y install libevent





下面我们开始部署



tar -zxvf libfastcommonV1.0.7.tar.gz -C /usr/local/



cd /usr/local/libfastcommon-1.0.7/



./make.sh && ./make.sh install



cp /usr/lib64/libfastcommon.so /usr/lib/



安装tracker



cd ~



tar -zxvf FastDFS.tar.gz -C /usr/local/



mv /usr/local/fastdfs-5.05 /usr/local/FastDFS



cd /usr/local/FastDFS/



./make.sh && ./make.sh install



/bin/cp -rf /usr/local/FastDFS/conf/* /etc/fdfs/



cd /etc/fdfs/



cp tracker.conf.sample tracker.conf



sed -i 's/base_path=\/home\/yuqing\/fastdfs/base_path=\/home\/fastdfs/g' tracker.conf



sed -i 's/http.server_port=8080/http.server_port=80/g' tracker.conf



mkdir -p /home/fastdfs



启动tracker



/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart



配置和启动storage



cd /etc/fdfs/



【*小心】:下面部分"这里填你的ip"一定要换填为当前服务器公网ip



sed -i 's/192.168.209.121:22122/这里填你的ip/g' storage.conf



sed -i 's/8888/88/g' storage.conf



sed -i 's/store_path0=\/home\/yuqing\/fastdfs/store_path0=\/home\/fdfs_storage /g' storage.conf



sed -i 's/base_path=\/home\/yuqing\/fastdfs/base_path=\/home\/fastdfs/g' storage.conf



mkdir -p /home/fdfs_storage



通过防火墙开启相关端口



firewall-cmd --zone=public --add-port=22122/tcp --permanent



firewall-cmd --zone=public --add-port=88/tcp --permanent



firewall-cmd --zone=public --add-port=23000/tcp --permanent



firewall-cmd --reload



启动storage



/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart



配置fastdfs-nginx-module



cd ~



tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local



cd /usr/local/fastdfs-nginx-module/src/



sed -i 's/\/usr\/local/\/usr/g' config



cp mod_fastdfs.conf /etc/fdfs/



sed -i 's/base_path=\/tmp/base_path=\/home\/fastdfs/g' /etc/fdfs/mod_fastdfs.conf



sed -i 's/url_have_group_name = false/url_have_group_name = true/g' /etc/fdfs/mod_fastdfs.conf



sed -i 's/tracker_server=tracker:22122/tracker_server=你自己的ip:22122/g' /etc/fdfs/mod_fastdfs.conf



sed -i 's/store_path0=\/home\/yuqing\/fastdfs/store_path0=\/home\/fdfs_storage/g' /etc/fdfs/mod_fastdfs.conf



cp /usr/lib64/libfdfsclient.so /usr/lib/



mkdir -p /var/temp/nginx/client



安装nginx



cd ~



tar -zxvf nginx-1.8.0.tar.gz -C /usr/local/



yum -y install pcre && yum -y install pcre-devel && yum -y install zlib && yum -y install zlib-devel && yum -y install openssl && yum -y install openssl-devel



cd /usr/local/nginx-1.8.0/



./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi --add-module=/usr/local/fastdfs-nginx-module/src



make && make install



cd /usr/local/FastDFS/conf



/bin/cp -rf http.conf mime.types /etc/fdfs/



mkdir /usr/local/nginx/logs



cd /usr/local/nginx/conf/



vim nginx.conf



下面是在Linux下修改文档内容,如果你不懂怎么修改内容请联系我们或者寻找会操作linux命令的技术人员



启动nginx

/usr/local/nginx/sbin/nginx

nginx + fastdfs 的开机自启动 虚拟机每次启动之后都要重新启动一下fastdfs 和 nginx服务,比较麻烦,所以增加开机自启动;

编辑 /etc/rc.d/rc.local 文件,增加启动项;

1、编辑文件

2、增加如下: /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart /usr/local/nginx/sbin/nginx

3、在centos7中, /etc/rc.d/rc.local 文件的权限被降低了,需要给rc.local 文件增加可执行的权限;



4.8、在线云打包

使用前建议

服务器选型 我们部署自动打包的服务器为腾讯云广州区的服务器(广州三区),如果你想在10-15分钟只能快速部署jar和服务到你服务器上,建议你购买此地区的服务器,否则每次打包部署耗时将在50分钟左右,技术支持:www.ngkingyi.cn

开始在线自动打包

声明 我们不会保存你个人或者你企业任何数据,你填入的打包数据只会在对应配置文件进行内容替换,以便能在你自己的服务器上正常运行该服务 在浏览器打开如下网址(*打包配置项中如果ip你要填域名的话请不要带http://或者https://):

http://203.195.208.183:8079/swagger-ui.html#!/2231232447201132517121253/startUsingGET

效果图:



4.9、运行服务

简要描述



如果你已成功在线自动打包,将安装包发到(下载到)你服务器的某个目录 下面的xxxx表示你自己的安装包名称 unzip XXXX.zip mkdir -p /www/java/jar mv XXXX/* /www/java/jar/ mkdir -p /www/java/log cd /www/java wget http://203.195.208.183/base-service.sh 启动基础服务脚本(重启服务器后启动zookeeper,fastDFS,nginx) wget http://203.195.208.183/start.sh 启动(重启)服务脚本 wget http://203.195.208.183/stop.sh 停止服务脚本 sh start.sh启动(重启)服务,如果你哪天想关闭服务,直接执行sh stop.sh就行了,要注意的是这两个命令都要在/www/java目录下执行



开放端口 firewall-cmd --zone=public --add-port=8080-8100/tcp --permanent firewall-cmd --reload 如果你的服务器设置的有安全组,记得去安全组把这些端口也要开放(8080-8100的tcp)

查看服务是否已经启动成功 netstat -lnpt|grep 808*

看到如下图说明运行成功了









【用户基础数据相关】:http://你的服务器ip:8080/swagger-ui.html

【停车场相关】:http://你的服务器ip:8089/swagger-ui.html

【短信】:http://你的服务器ip:8085/swagger-ui.html

【文件上传】:http://你的服务器ip:8088/swagger-ui.html

【支付相关】:http://你的服务器ip:8096/swagger-ui.html



慎用命令 如果你发现你服务起不来,但是内存占用还很高,那试试下面的命令(注意!如果你服务器还有其它Java服务慎用此命令,乖乖重启,再启动我们的服务,因为我们不知道你其它java程序的运行机制) ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9 再使用我们启动基础服务器脚本 sh /www/java/base-service.sh 下面继续启动jar包服务试试吧



文章推荐:

芸众商城独立版源码安装教程及BUG

数据库对比–微擎通用各类数据库结构对比教程

停车系统详细功能说明和安装搭建教程

网狐棋牌搭建JAVA环境变量配置

万能门店独立版详细安装教程

发表评论

搜索

站点地图

欢迎到访网站!技术支持:微小科技

  站点地图