其中,重点标识的为本项目的主要开发内容。
平台采用微服务体系架构。
支持应用客户端类型:PC,移动端,自动售卖机,微信公众号,微信小程序。
服务网关是平台服务统一入口。
应用服务承载业务逻辑。公共服务为与应用无关的可复用服务。
基础设施作为分布式框架为平台提供企业级特性。
数据层提供满足应用对事务性,大数据,持久性,缓存方面的不同需求。
平台对外提供的开放接口(ZOS:ZDBOpen Service)可以连接企业ERP(前置系统)和第三方平台(如WMS),数据推送服务可选。
应用服务逻辑结构:
以下描述应用服务的以下方面:
l 服务依赖:主要是Spring Cloud的若干组件
l 服务特性实现:安全性,日志,监控
Spring Cloud作为快速开发分布式系统的工具集合,是平台服务的基础。
Spring Cloud Eureka提供服务注册和发现
Spring Cloud Config提供集中的服务配置的存储和访问,配置的修改通过Spring Cloud Bus更新到集群的所有节点
Spring Cloud Zuul作为服务网关,把请求路由到服务提供者实例
Spring Cloud Ribbon提供客户端负载均衡,结合HTTP客户端Feign使用
Spring Cloud Security为服务提供安全控制,Spring Cloud Security OAuth2用于OAuth2.0授权服务
Spring Cloud Hystrix采用熔断机制避免依赖服务延迟或失败导致服务雪崩
Spring Cloud Bus用于配置变更通知,也可用于服务之间通信,采用RabbitMQ作为通道
Spring Cloud Sleuth用于服务日志收集
身份验证采用JWT,是无状态,分布式的Web认证标准,OAuth2.0定义了基于Token的授权模式。
ElasticSearch提供分布式搜索服务,支持从内存,数据库,文件系统搜索。
Logtash提供日志收集功能,可直接输出到Nagios监控系统或HBase数据库。
Redis作为缓存数据库使用,可为ElasticSearch使用。
HBase作为大数据的存储数据库。
RabbitMQ作为Spring Cloud Bus的通道,也用于数据同步的事件队列。
Kibana是对Logtash和ElasticSearch的数据进行分析的Web接口。
Xebo_mod是把xebo服务RESTful接口化模块,作为Apache http server的模块加载,整合xebo服务。
应用服务以Docker镜像部署。
Kubernetes是容器集群管理系统,提供应用部署、维护、扩展机制等功能,利用Kubernetes管理跨机器运行容器化的应用,
数据中心系统结构:
HBase数据库作为数据中心的存储,基于HDFS.
YARN是集群资源管理系统。
MapReduce负责离线计算,Spark提供实时计算能力,Spark ML提供机器学习能力。
ElasticSearch提供分布式搜索服务,访问HBase的数据。
Spring Cloud 提供大数据应用服务的注册,发现,路由等支持。
RabbitMQ作为数据变更的事件队列,数据同步服务更新到HBase.
sqoop是初始迁移数据到HBase的工具。
Zookeeper协调集群多个实例的处理。
大数据应用服务可按需要扩展。
处理逻辑如下图:
通过服务网关提供RESTful的大数据应用接口。