基于SOA架构的电商网站设计

发布日期:2019-10-09浏览量:1173

1 SOA架构的相关技术概述

1.1 SOA架构

SOA是一种面向服务的分布式架构, 将每个实现特定功能的工程拆分为服务层和表现层。服务层负责处理业务逻辑, 对外提供服务接口。表现层负责处理与前端的交互, 具体业务逻辑只需调用服务层发布的接口。

使用SOA架构具有很多优点。可以将系统拆分为多个独立的模块, 模块之间通过接口通信, 降低了系统各个模块之间的耦合度, 可以通过接口方便地进行各个模块之间功能的调用。可以很方便地对系统进行扩展, 需要扩展系统功能时, 只需新增一个子模块, 然后通过接口与原有模块进行交互即可。可以将每个模块分配给相应的开发人员进行搭建, 方便系统开发任务的分工。

1.2 Dubbo

目前较为流行的SOA架构开发方式是使用Dubbo技术。在SOA架构中, 每个功能模块都会发布服务或调用服务, 那么就需要有一个服务中心对各个服务进行统一的资源调度与治理。Dubbo就是这个服务中心的管理工具。Dubbo对Spring有很好的支持, 只需在Spring配置文件中进行相关的配置即可使用。

Dubbo中主要有服务提供者、服务消费者和注册中心三个角色, 还有一个监控中心对每次服务调用进行监控与统计。服务提供者向注册中心发布自己提供的服务, 服务消费者向注册中心订阅自己所需的服务, 服务中心将服务提供者提供的服务及地址列表给服务消费者, 即实现了服务调度。

在项目中, 服务层工程作为服务提供者, 需要通过配置向注册中心暴露服务的接口。表现层工程作为服务消费者, 需要通过配置从注册中心引用服务接口。注册中心推荐使用Zookeeper, 负责服务的注册与查找。

2 SOA架构电商网站的设计

以B2C模式的图书商城为例, 介绍SOA架构网站开发的设计思路。图书商城项目分为后台系统、前台系统、搜索系统、登录系统。每个子系统实现各自的功能, 运行在各自的服务器上, 互相之间通过接口进行功能调用, 来实现整个网站的功能。

2.1 后台系统

后台系统提供给商家使用, 具有图书分类管理、图书管理、订单管理、投诉管理等功能。

图书商城将不同类目的图书进行分类, 使得用户可以根据图书分类进行图书的查找, 管理员需要对图书的分类进行管理。后台系统提供图书分类的查询、添加、修改、删除功能, 分类名称不可重复。分类与图书是一对多的关系, 每个分类下具有多个图书, 每个图书对应一个分类。在添加图书时需要对所属分类进行指定。

后台系统提供图书的查询、添加、修改、删除功能, 每个图书具有图书名称、作者、价格、图书图片、分类、详细介绍的信息。使用FastDFS作为图片服务器供图书图片的上传下载。

订单管理功能可对所有用户的订单进行查询, 以及对订单状态的管理。

投诉管理功能可对用户的投诉进行查看及处理。

2.2 前台系统

前台系统提供给普通用户使用, 用户可在前台系统中进行注册、浏览图书商品、查看购物车、查看订单、投诉等操作。

用户在未登录时可以注册、浏览图书商品, 在登录之后才可以进行更多的操作。

用户可以查询所有图书或者按分类查询图书, 在登陆之后, 可以将图书添加进购物车或者直接下订单购买。

用户可以对购物车进行查看, 并可将购物车中的图书进行批量地购买或者删除。

在用户对图书进行购买操作之后, 会生成相应的订单, 订单包含图书的基本信息、购买数量、支付金额、订单状态。用户可以支付订单、退款、确认收货或者删除订单, 对订单进行操作之后, 订单的状态也会发生相应的变化。

用户对图书或者服务不满意可以使用投诉功能进行相应的反馈。

前台系统相较于后台系统会有更高的访问量与并发量, 涉及大量数据库操作时会很耗费时间。因此可以使用非关系型数据库Redis作为业务层与数据层之间的缓存。Redis作为非关系型数据库, 比传统的关系型数据库效率要高出很多, 处理大量数据时性能有明显优势。业务层需要数据时首先访问Redis, 如果有数据就直接返回, 如果没有再向关系型数据库中查找数据, 然后返回给业务层并向Redis中添加数据缓存。

2.3 搜索系统

搜索系统提供接口给前台系统, 为用户提供图书查找的服务。搜索功能需要对用户输入的关键词进行复杂的查询, 使用传统的关系型数据库查询方式效率极为低下, 因此需要Solr技术对数据进行快速索引。

Solr是一款实现快速搜索的搜索引擎系统。使用Solr可以高效地对全站的图书信息通过关键词进行查找。在使用前需要为Solr配置中文解析器, 并设置分词方法与图书信息的搜索域。然后将图书信息导入到Solr索引库中, 就可以进行快速搜索。

用户在搜索框中输入关键词开始搜索, 服务端在Solr索引库中根据事先设置的分词以及搜索域进行查找, 有图书信息与之匹配将返回给浏览器显示。

2.4 登录系统

将登陆系统独立出来可以为管理员和用户提供一个统一的接口。用户信息在数据库中有一个字段来标识用户身份。输入用户名密码之后, 服务端会到数据库中进行比对, 如果输入错误, 返回错误信息。如果输入正确, 从数据库中得到用户信息后, 查看用户身份字段的值, 如果是普通用户, 跳转到前台网页并向该服务器传输用户信息保存到Session。如果是管理员用户, 跳转到后台网页并向该服务器传输用户信息保存到Session。

3 结语

本文介绍了在Java平台下进行SOA架构电商网站的开发的基本设计与思路, 从基本原理到实现技术作了具体的阐述。以图书商城为例给出了网站设计的大体方法, 在SOA架构下将系统划分为多个子系统, 每个子系统实现自己的相应功能, 并且服务层与表现层分离实现松散的耦合, 并对每个子系统的功能设计作了具体阐述。


0.2111s