美文网首页
电商架构回顾之一V1.0版本

电商架构回顾之一V1.0版本

作者: masterFan | 来源:发表于2019-11-29 10:09 被阅读0次

前言

这篇文章主要是简单介绍一下,我刚进公司见到的电商V1.0架构。

部署架构图

V1.0电商服务架构.png

电商架构剖析

简介

整个电商架构是基于微服务架构体系搭建,核心组件主要包括SpringCloud Gateway、Consul、Java Application、PHP Application、 Mysql五大部分组成。前端接口业务和后台管理业务独立部署的两套架构,整体部署架构无太大差异,差异主要在前端接口业务入口使用腾讯云SLB进行负载均衡,请求分发;而后台服务独立部署了nginx来进行请求反向代理。

微服务组件

负载均衡

直接使用腾讯云提供的负载均衡SLB集群服务。


网关

服务网关采用了SpringCloud新推出的Gateway组件,Gateway组件是2018年2月发布的,基于SpringBoot 2.0,Spring 5.0,支持非阻塞、异步编程模式。性能上比Netflix ZUUL更优秀(因为ZUUL采用同步阻塞编程模型)。
基于Gateway提供的filter链功能,定制开发了jwt token的接口鉴权、url访问级别控制(如:/pub前缀直接放行、/user需要判断token合法性等)。

为什么会选择Gateway?
究其原因,还是觉得是基于SpringCloud的(易上手),然后采用了非阻塞、异步模型(性能有保障)。But... ,在真实的使用过程中,你会发现一个新出来的东西,未经过长时间实践检验的情况下,会让你踩多少坑。


服务注册/发现

服务注册/发现采用Golang实现的Consul框架,Consul提供了很多特性,例如HTTP API、KV存储、支持多语言、支持多数据中心等。

SpringCloud提供Consul Client的SDK,直接集成到项目后,项目启动过程中就能自动完成服务注册,服务发现同样使用起来非常方便,通过feign就能完成服务调用。

Consul提供两种服务注册的方式,通过HTTP API或者通过JSON配置文件。Java应用通过SDK封装了HTTP API的方式来完成服务注册,Php应用则是通过配置JSON文件的方式完成服务注册的。

Consul服务注册有两种方式:HTTP API & JSON配置文件
方式一:HTTP API

http://{ip}:8500/v1/agent/service/register/:service

方式二:JSON 配置文件

{
    "services": [
            {
                    "id": "serverId",
                    "name": "serverName",
                    "tags": [
                            "primary"
                    ],
                    "address": "127.0.0.1",
                    "port": 9003,
                    "checks": [
                            {
                                    "id": "api-servie",
                                    "name": "Service 'xx' check",
                                    "http": "http://127.0.0.1:9003/public/health",
                                    "method": "GET",
                                    "interval": "10s",
                                    "timeout": "1s"
                            }
                    ]
            }
    ]}

启动Consul增加启动参数-config-dir

nohup ./consul agent -dev -config-dir=/consul-conf/service.json &

为什么会选择Consul?
性能高,微服务大了,能顶住访问量; 保证数据强一致性,不会出现数据不一致情况下服务调用到不可用的节点。还提供KV存储,还能当个简单的配置中心使用。


总结

对业务刚起步,同时又想实践微服务架构的初创公司来说,这套V1.0架构没啥毛病,玩得好好的,但是当用户访问量突然暴增的上来,这套架构就会遇到坑了,这时候技术架构就需要作出了相应的调整了。

相关文章

  • 电商架构回顾之一V1.0版本

    前言 这篇文章主要是简单介绍一下,我刚进公司见到的电商V1.0架构。 部署架构图 电商架构剖析 简介 整个电商架构...

  • 电商产品经理宝典pdf下载与读书思维导图

    文档名称:《电商产品经理宝典》pdf+思维导图 发布日期:2019-10-28 当前版本:v1.0 主要适用:PC...

  • WriteConcern

    版本信息 当前版本 v1.0 版本历史 版本 更新时间 更新人 更新内容 v1.0 2015/10/...

  • 电商网站的商品详情页系统架构

    电商网站的商品详情页系统架构 小型电商网站的商品详情页系统架构 小型电商网站的页面展示采用页面全量静态化的思想。数...

  • 电商库存系统怎么选择?

    电商库存管理一直是困扰着电商运营者的重要问题之一,也是电商网店不能回避的问题之一。如果电商库存管理没有做好,电商网...

  • 电商架构

  • 电商架构

    电商的架构 整体的业务 电商的难点 分布式&集群 高可用&高并发 DevOps 电商的核心业务 分布式基础概念 什...

  • 1. 电商详情页系统架构介绍

    电商详情页架构方案大概分为两种,第一种小型电商,使用页面静态化的方案;第二种大型电商,架构较为复杂,使用异步多级缓...

  • 大数据 Haddoop(二) 架构与原理

    Haddoop架构与原理 Hadoop架构 架构概述 Hadoop V1.0核心: HDFS MapReduce ...

  • 聊聊电商业务架构

    最近电商简直是现在IT届的大热门,所以稍微说说电商的业务架构吧。 很多非电商内部的人员,提到电商就会想到购物流程、...

网友评论

      本文标题:电商架构回顾之一V1.0版本

      本文链接:https://www.haomeiwen.com/subject/nxkmwctx.html