五种电商模式
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容器运行服务
业务服务
商品服务、支付服务、优惠服务、用户服务、仓储服务、秒杀服务、订单服务、检索服务、中央认证服务、购物车服务;后台管理。
第三方服务:物流、短信、金融、身份认证。