路侧停车道闸停车充电桩开源平台-YunParking: YunParking是一个🔥100%开源🔥的城市级的智慧停车项目,开源功能主要包括路内停车,路外室内停车,共享车位,车位预约,室内导航,反向巡车,收费规则,支付聚合,设备管理,巡查PAD执法、车位推荐查找、会员充值、等级管理、月卡充值、月卡支付、余额支付、区层管理、车主管理、车场管理、第三方云存储、短信...
一、什么是停充一体化?
停充一体化是指将电动汽车的停放与充电设施相结合,为电动汽车提供便捷的充电服务。这种一体化设施通常设置在公共场所、住宅区、商业区等地方,以满足电动汽车的停车和充电需求。
停充一体化与路内停车和路外停车的主要区别在于其设施的设置和管理方式。
- 设施设置:
- 停充一体化设施通常是在专门的停车场或停车区域内建设的,这些区域通常配备有充电设备和停车位,以满足电动汽车的停放和充电需求。
- 路内停车是指车辆停放在道路两侧或路缘石上,而路外停车则是指车辆停放在道路之外的地方,如停车场、停车楼等。
- 管理方式:
- 停充一体化设施通常需要进行专门的管理和维护,包括充电设备的维护、停车位的管理等。这些设施通常由专业的运营商或管理公司负责运营和管理。
- 路内停车和路外停车则通常由政府或相关机构进行管理,包括停车位的规划、收费等。
- 费用:
- 停充一体化设施通常会收取一定的停车和充电费用,这些费用通常根据停车时间、充电量等因素进行计算。
- 路内停车和路外停车的费用则通常根据停车时间和地点进行计算,与充电无关。
总之,停充一体化是一种将电动汽车的停放与充电设施相结合的便捷服务方式,与路内停车和路外停车相比,具有更好的设施设置、管理和服务优势。然而,其建设和运营成本也相对较高,需要政府、企业和个人等多方面的支持和投入。
二、路内停车和路外停车主要区别?
路内停车和路外停车的区别主要体现在停车的位置、法律约束及功能属性上。
- 停车位置:
- 路内停车:指的是在道路红线以内划设的供车辆停放的场地,通常在城市道路两侧或城市公共区域内,如路边划定的停车位。
- 路外停车:指的是在道路红线以外专门开辟兴建的停车场地,如停车场、停车库、停车楼等专门用于停车的设施。
- 法律约束:
- 路内停车:受到《中华人民共和国道路交通安全法》及其实施条例的严格约束。如《中华人民共和国道路交通安全法实施条例》第六十三条详细规定了机动车在道路上临时停车应当遵守的规定,包括在设有禁停标志、标线的路段不得停车,交叉路口、铁路道口、急弯路等特定地点不得停车等。
- 路外停车:一般不受上述道路交通法规的直接约束,但仍需遵守停车场地的相关规定和管理制度。在不影响行人、车辆通行的情况下,城市人民政府有关部门可以在城市道路上施划停车泊位,并规定停车泊位的使用时间。
- 功能属性:
- 路内停车:主要为满足临时停车需求,如上下乘客、装卸货物等,通常不允许长时间停放,以避免影响道路交通。
- 路外停车:主要为满足长时间停车需求,如居民小区停车场、商业区停车场等。这些停车场通常配备有更完善的设施和管理系统,能够提供更安全、便利的停车环境。
主体框架:Spring Cloud、Spring Cloud Alibaba、Spring Boot、Spring Cloud Stream、MyBatis-Plus、Alibaba Druid、Apache Dubbo、Hutool、Lombok等主流技术;
前后端分离:采用主流开发模式-前后端分离框架设计,代码风格精简,面向后端开发工程师,易于理解和上手;
统一接口管理:集成Swagger/Knife4j,可自动生成Api文档;
数据库兼容:支持 MySQL、SQLServer、Oracle、PostgreSQL等主流数据库,支持达梦、人大金仓等国产信创数据库;
国产信创操作系统:支持麒麟服务器操作系统、统信UOS、华为欧拉等国产服务器操作系统部署;
服务注册&发现与调用:使用 Nacos 作为注册中心,实现多配置、分群组、分命名空间、多业务模块的注册和发现功能;
内部调用:集成了 Open Feign 和 Apache Dubbo 两种内部调用模式,并且可以实现无缝切换;
业务熔断:采用 Sentinel 实现业务流量控制、熔断降级、系统负载等多个维度保护服务的稳定性,避免服务之间出现雪崩;
应用监控:利用 Spring Boot Admin 来监控各个服务的运行状态;
链路追踪:基于 SkyWalking 作为项目的全链路性能监控, 从整体维度到局部维度展示各项指标,将跨应用的所有调用链性能信息集中展现,可方便度量整体和局部性能,并且方便找到故障产生的源头,生产上可极大缩短故障排除时间;
用户界面
- 基于 Element-UI 平面化界面设计,精细,更加美观、高端、大气、上档次。
- 无刷新设计,除了进入功能页面和新页面,其它情况下全部采用 Ajax 交互,优化体验和性能。
- 支持一键换肤,系统右上角设置即可快速切换整个UI的风格,不仅仅是色调和样式,布局也可改变。支持自定义扩展项目独有的主题样式风格。
- 优化用户功能操作,大众思维模式,功能清晰,更加贴切和友好。
- 国际化的支持,页面标签国际化,字典菜单国际化,数据国际化。
前端开发
- 采用当前比较流行的 Vue,它的优点很多,大家可自行查阅官网介绍。
- 封装通用组件,实现基本表单控件、树选择,列表选择,文件上传,等等,总之是简化开发。
- 数据模板组件封装,自动完成分页、排序、列宽、多表头、子表、编辑表、流程发起等。
- 支持前后分离应用,方便与手机 API 接口对接,Token 方式授权。
功能及组件
- 工具类 Utils 封装优化,应有尽有,包分类层次分明,独立工具类项目。
- 在线任务调度,界面化管理,可新增,编辑、删除、暂停、恢复、运行一次等操作,支持独立数据源,分布式作业调度,调度日志监控分析查询。
- 代码生成工具操作简化及优化,支持多数据源。
- 在线查询在线人员,强踢在线账号。
整体架构
平台设计灵活可扩展、可移植、可应对高并发需求。同时兼顾本地化、私有云、公有云部署,支持SaaS模式应用。
- 采用前后端分离的模式:前端基于
vue-element-admin
框架定制开发,后端采用Spring Cloud Alibaba
全家桶; - 服务注册&发现与调用:基于
Nacos
来实现的服务注册与发现,使用Open Feign
/Dubbo RPC
来实现服务互调; - 统一授权认证:基于
Spring Security
、Spring OAuth2
、JWT 实现的统一认证服务中心,登录基于 spring security 的标准登录流程。客户端授权支持 oauth2.0 的四种授权模式:授权码模式、简化模式、密码模式、客户端模式,授权流程跟标准的 oauth2 流程一致。web 端采用简化模式(implicit)登录系统,移动端可使用密码模式(password)登录系统。同时还支持基于 Spring Social 的三方账号登录方式,如微信、QQ等。 - 业务熔断:采用
Sentinel
实现业务流量控制、熔断降级、系统负载等多个维度保护服务的稳定性; - 应用监控:利用
Spring Boot Admin
来监控各个服务的运行状态; - 链路调用监控:基于
SkyWalking
作为项目的全链路性能监控, 从整体维度到局部维度展示各项指标,将跨应用的所有调用链性能信息集中展现,可方便度量整体和局部性能,并且方便找到故障产生的源头,生产上可极大缩短故障排除时间; - 灵活的权限控制:基于
RBAC
权限管理,该功能模块下的功能用于维护企业的组织架构信息以及员工信息。主要包含了组织架构管理、部门管理、分级管理员、角色管理、岗位管理、企业通讯录、通信录同步等功能。用户可在此功能模块下维护公司的组织架构信息(组织/部门/角色/岗位)和用户信息,也可以通过第三方应用(钉钉/企业微信)将组织架构信息一键导入到系统中,也可以使用组织架构和员工信息的导入功能将数据导入到系统中; - 支持多租户:简单配置即可转为多租户模式,实现数据隔离,真实达到城市级停车运营,一个城市一套租户数据库隔离管理;
- 统一接口管理:基于
Swagger
拓展的API文档服务,主要提供在平台开发阶段的API文档管理和API调试等功能。
主要技术栈
后端技术栈
- 主框架:Spring Cloud Alibaba + Spring Boot + Spring Framework
- 安全框架:Spring Cloud Security OAuth2+JWT
- 持久层框架:Mybatis-plus、Hibernate Validation、
- 数据库连接池:Alibaba Druid
- JSON序列化:Jackson&FastJSON
- 数据缓存:Redis
- 消息队列: RabbitMQ
- API网关:Spring Cloud Gateway
- 服务注册&发现和配置中心: Nacos
- 服务监控:Spring Boot Admin
- 服务消费:OpenFeign/Dubbo RPC
- 大数据检索框架:Elasticsearch+Canal+Mysql数据同步
- 日志收集:E(Elasticsearch)+L(Logstash)+K(Kibana)
- 负载均衡:Ribbon
- 服务熔断:Sentinel
- 项目构建:Maven
- 分布式事务:Seata
- 链路追踪:Skywalking
- 即时通讯:spring-boot-starter-websocket
- AOP:spring-boot-starter-aop
- 文件服务:阿里云OSS、本地存储、七牛云kodo、MinIO
前端技术栈
- Vue2 全家桶
- Element-ui
技术特色
基于Java主流开源技术构建
平台基于流行的J2EE技术栈,应用稳定的Spring Cloud微服务框架进行构建,主流开源的架构给我们带来了以下优势:
- 广泛的业界支持:流行的开源技术都是广泛使用的,是业界默认的标准。
- 提高开发效率:流行的开源技术会有大量的开发人员提供大量个性的解决方案,能更快速的找到满足需求的各种解决方案。
- 提高平台的技术稳定性:流行的开源技术已经通过大量的业务场景验证,保证了技术的成熟性,提高了平台和稳定性。
- 可维护性:流行的开源技术确保了各种社区的活跃度,可以更好的解决平台维护过程中遇到的问题。
基于微服务架构设计和扩展
城市智慧停车云平台
采用微服务架构设计,平台基础模块的每一个应用功能都使用微服务完成:
- 每个服务都有一个清楚的功能边界
- 每一个后台服务开放REST API,许多服务本身也采用了其它服务提供的API
- 通过 API Gateway来统一API暴露
- 通过 Nacos 配置中心来统一管理平台服务配置
- 每个微服务可以选择独立部署和弹性资源配置
基于
城市智慧停车云平台
开发的应用系统,可以很容易的将业务对象作为基本单元进行纵向拆分,以交互层次作为标准进行横向拆分,从而形成多应用交互的微应用架构体系,有效的实现应用的拆分,实现敏捷开发和部署。
服务无状态
单个微服务节点的性能在大业务量时性能会遇到瓶颈,无法满足对业务系统的要求,
城市智慧停车云平台
服务采用无状态化设计,可以实现水平扩展部署。
前后端分离
提供完整的REST API接口,采用前后端分离技术,可以同时高效的支持移动APP、Web、小程序等应用的开发场景,同时结合Spring Security的OAuth2扩展,采用统一的认证中心,保障REST API的安全性。
架功能说明
统一安全认证中心
基于
Spring Security
、
Spring OAuth2
、
JWT
实现的统一认证服务中心,登录基于 Spring Security 的标准登录流程。客户端授权支持 oauth2.0 的四种授权模式:授权码模式、简化模式、密码模式、客户端模式,授权流程跟标准的 oauth2 流程一致。web 端采用简化模式(implicit)登录系统,移动端可使用密码模式(password)登录系统。同时还支持基于 Spring Social 的第三方账号登录方式,如微信、QQ等。
基于RBAC的权限体系
基于角色的访问控制方法(Role-Based Access Control,简称 RBAC)是目前公认的解决大型企业的统一资源访问控制的有效方法。其显著的两大特征是:
- 减小授权管理的复杂性,降低管理开销;
- 灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。
用于维护企业的组织架构信息以及员工信息。主要包含了组织信息、员工定义、组织架构、企业通讯录、通信录同步等功能。用户可在此功能模块下维护公司的组织架构信息(组织/部门/角色/岗位)和用户信息,也可以通过第三方应用(钉钉/企业微信)将组织架构信息一键导入到系统中,也可以使用组织架构和员工信息的导入功能将数据导入到系统中。
多租户实现
系统平台支持一个实例服务多个用户(Customer),每一个用户被称之为租户(tenant),软件给予租户可以对系统进行部分;支持添加多平台租户流行和租户管理,通过管理租户来实现不同平台之间的数据隔离;如Saas多租户身份验证,每个管理账号有独立数据、可配置子账户,方便多人使用或统一管理。
文件存储
支持本地存储、网络存储(minIO)、Aliyun OSS,Tencent COS等存储方案。
服务高可用
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。
城市智慧停车云平台
整合
Sentinel
以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
Sentinel
同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
版权归原作者 云创智城-yuncitys 所有, 如有侵权,请联系我们删除。