目录
随着人们生活水平的提高,消费者对于商品和服务的需求也在不断升级,并且当前数字化转型已经成为企业发展的重要趋势,移动互联网的发展使得人们可以随时随地进行购物,这些都为企业打造在线营销平台提供了广阔的发展空间。
接下来的系列文章将介绍本人参与过的在线营销平台,从技术的角度讲解从0到1实战过程,介绍营销平台的微服务群、部署架构、监控系统。
本文主要从业务背景、项目所使用的技术栈作一个整体的介绍。
在线营销平台主要涉及的微服务有:营销中心、商品中心、库存中心、订购中心、用户中心等,本章节简略介绍各个微服务的作用,让各位读者了解业务背景。
营销中心主要用于管理营销活动、营销活动的营销资源、订单的履约等;提供各类营销工具:如商品组合销售、满减、满赠、秒杀、优惠券等,是在线营销平台的核心。
商品中心是商品数据的管理中心,负责管理SKU、商品的属性,商品价格等。
库存中心负责管理商品的库存数据,包括入库、出库等操作,通过库存中心的管理,可以实时掌握到商品的库存情况,并且也可以提供销售分析。
订购中心负责接收、处理和跟踪订单,确保订单的准确性和及时性。并且将需要定时履约等数据订单及时反馈给营销中心。
用户中心用户存储和管理用户的个人信息,单点登录等作用。
项目采用SpringCloud进行开发
(1)使用alibaba的Nacos作为注册中心;nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,支持基于DNS和基于RPC的服务发现。
(2)使用Sentinel进行限流保护;Sentinel是一个分布式系统的流量防卫兵,以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。
(3)使用Feign进行组件间的调用;Feign是一个便捷和灵活的工具,可以帮助开发人员更轻松地编写HTTP客户端并处理与远程服务的交互。
(4)使用gateway作为网关;gateway可以管理和转发请求到不同的微服务,支持基于URL、HTTP方法、请求头等的路由规则。提供多种过滤器,如认证授权、限流熔断、日志监控等。
(5)使用skywalking实现链路追踪;SkyWalking是一个功能强大的分布式系统应用程序性能监视工具,可以帮助开发人员和运维人员更好地了解和管理应用程序的运行状况。
(1)采用Redis作为缓存中间件,存储库存数据、秒杀数据,redis采用集群的模式进行部署;
(2)采用Rocket MQ、Kafka作为消息中间件,Rocket MQ存储订单数据、Kafka用于存储传输日志数据等;
(3)采用Filebeat进行日志采集,并推送到Kafka上;
(4)采用Logstash进行消费Kafka上的日志数据,并将日志推送给ES;
(5)ES用户存储日志数据;
(6)Kibana用于日志数据的展示。
使用Jenkins进行持续集成部署,帮助开发人员自动构建、测试和部署软件,降低开发过程中可能出现的问题和风险。和Git、Docker集成,实现了从源代码管理到构建、测试、部署的全流程自动化,可以快速发现问题并进行修复,提高软件开发的效率和质量。
系统采用K8S进行部署,K8S是开源的容器编排系统,用于自动化容器化应用程序的部署、扩展和管理。K8s提供了一种容器化的应用程序运行环境,使得开发人员可以轻松地构建、测试和部署应用,无需担心底层基础设施的复杂性。
监控系统采用Prometheus和Grafana以及在gateway上的一些接口调用次数、业务系统监控等组成。Prometheus和Grafana是一套开源的监控和报警系统,Prometheus单机每秒可以采集千万各指标数据,Grafana是一个开源的度量分析和可视化套件,能够从Prometheus等数据源抓取数据,并进行深入的分析和可视化。总的来说,Prometheus和Grafana是一套功能强大的监控和可视化解决方案,可以帮助开发人员更好地了解和管理应用程序的运行情况。
本文简略介绍了在线营销平台的业务背景、主要的微服务以及项目中用到的技术栈,在后续系列文章中,将从技术架构、微服务的具体实现、中间件的使用、持续集成、部署、监控以及数据库的优化等方面进行介绍。