Future程序员Java学习笔记

基于RPC的电商平台内部SOA架构设计

2017-03-20  本文已影响841人  xtg

我们公司涉足电商多年,以前根据业务转型或拓展单独开发过多个类型的电商平台,目前面临旧平台资源无法整合,拓展新业务发开新平台又要重新再写一些逻辑相似的业务代码。所以我们内部急需这样一个整合所有基础服务的内部SOA平台。本博文就是我在架构这个平台的经验分享。

一、电商类的内部SOA平台需要做什么

首先,SOA即面向服务的架构,绝大多数电商平台不外乎用户、商品、订单等基础服务,以及一些发送短信、验证码等通用工具类服务。那么这个内部SOA平台的作用就是整合这些资源,由他向上层平台提供服务,同时可以让用户、商品、订单等数据在所有平台内共享。


基于内部SOA平台的电商平台结构

通过这个SOA平台可以将业务分割,交由不同的部门管理维护,其次拓展的新业务可以做到快速开发上线。例如A平台仅需实现自己业务A独特的需求即可,用户、商品、订单等服务可以调用SOA平台的。

二、基于RPC的电商平台内部SOA架构及组件选型

下图是我初步设计的SOA平台架构图以及一些组件的选择


SOA平台的架构图
1. RPC框架的选择

RPC即远程过程调用,通俗一点就是跨进程跨主机的通信协议,用在SOA平台与上层业务平台之间的通信。
其实传统的webservice、rest服务都是RPC的一种。但是这些基于HTTP+JSON/XML的通信方式效率不高。但是由于他们的通用性以及易开发的特性使得他们更适合对外第三方接口的开发。
作为对内的SOA平台,肯定追求更加高效的通信方式。这类的RPC框架很多,比如阿里的Dubbo、低调庞大的Zeroc ICE、目前很火的Facebook的thrift等。

2. 分布式服务发现注册协调

类似zookeeper这样的组件还有etcd、Consul,以后有机会在尝试了。

3. 数据持久化
4. 消息队列

消息队列可以做异步处理、解耦、流量削锋、日志转发。

5. 日志分析监控
6. 持续集成

因此整体架构如前面架构图所示,各个组件都相对独立而且都是比较成熟的组件,不至于对某个组件依赖太重而被牵制,以后有更好的组件也方便替换。

7. 开发语言

其实开发语言很随意的,thrift支持多种语言开发server端。


欢迎来我的个人博客逛逛: https://blog.52xtg.com

上一篇下一篇

猜你喜欢

热点阅读