五种电商模式

1、B2B模式:商家与商家建立商业关系,例如:阿里巴巴;

2、B2C模式:商家对消费者进行产品销售或服务,例如:京东;

3、C2B模式:消费者对企业提出需求,企业按需生产(不常见);

4、C2C模式:用户之间进行自由交易,例如:闲鱼;

5、O2O模式:线上消费,线下服务,例如:美团。

微服务

概念:拒绝大型单体应用,把一个单独的应用程序开发为一套小服务,每个小服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API。比如:订单服务,商品服务......

集群&分布式&节点

集群是个物理形态,它是将几台服务器集中在一起,实现同一业务;

分布式是个工作方式,它是将不同的业务分布在不同的地方;

分布式中的每一个节点,都可以做集群,而集群并不一定就是分布式的。

节点:分布式中的某一个服务。

远程调用

概念:在分布式系统中,各个服务可能处于不同的主机,但是服务之间不可避免地需要相互调用(例如:订单服务需要调用商品服务)。

Spring Cloud中使用HTTP(兼容性,跨平台性) + JSON(通用数据格式)实现远程调用。

负载均衡

为了使每一个服务器都不要太忙或者太闲,提高网站的健壮性。

常见的负载均衡算法:

1. 轮询:按顺序往后依次选择;

2. 最小连接:优先选择连接数最少(最闲)的服务器;

3. 散列:绑定IP,同一个IP的请求,始终发给同一台服务器。

服务注册/发现

服务上线,到注册中心进行注册。

调用服务时,先到注册中心,发现需要的服务,才进行调用,避免调用不可用的服务。

配置中心

用来集中管理微服务的配置信息,对于经常需要变更的配置,通过配置中心管理,实现自动更新配置信息。

服务熔断/降级

背景:一个服务不可用,可能会导致整个系统宕机。

服务熔断

设置服务的超时,当服务经常失败,达到某个阈值时,开启断路保护机制,不再调用该服务。

服务降级

当系统处于高峰期时,让非核心业务降级运行,不处理或简单处理。

API网关

请求统一认证,负载均衡,限流流控......

服务流程

1. 客户端:手机、电脑;

2. Nginx:反向代理,保证服务器安全;

3. 网关:动态处理请求,路由到相应的服务;

        3.1 负载均衡Ribbon

        3.2 熔断降级Sentinel

        3.3 认证授权:OAuth2.0认证中心,Spring Security安全中心

        3.4 限流Sentinel

4. 利用Feign实现服务之间的相互调用;

5. Redis缓存

6.MySQL持久化

7. RabbitMQ:服务解耦,可靠消息最终一致性

8. ElasticSearch:全文检索

9. 图片、视频资源存储:阿里云OSS

10. 日志收集:ELK、LogStash,存储到ElasticSearch,利用Kibana可视化查看日志

11. Nacos注册中心,配置中心

12. 服务调用链信息,Sleuth+Zipkin,聚合信息:Prometheus,Grafana可视化展示,AlterManager收集实时报警信息(邮件、短信)

13. K8S集成Docker服务,以Docker容器运行服务

业务服务

商品服务、支付服务、优惠服务、用户服务、仓储服务、秒杀服务、订单服务、检索服务、中央认证服务、购物车服务;后台管理。

第三方服务:物流、短信、金融、身份认证。