传统型:一般情况下传统型的项目如下:客户端发送请求到服务器端,然后将数据存入数据库的同时,再将访问频次较高的数据存入redis等缓存数据库中。只适用于中小型的项目
多服务型(微服务):
将一个比较大的服务拆分成若干个独立的服务程序,比如一个商品服务可以分为订单服务、广告服务、评论服务。这样做的优势是服务独立,缓解服务器访问压力,各个服务之间可以用不同的语言实现,分工明确。缺点:一旦有某个服务宕机,商品服务就会报错。排查起来较麻烦。所以在商品服务端一般会存放一份订单、广告、评论的聚合数据。
以下是商品服务与各个子服务之前的流程图:
用户 -> nginx(consul做client负载均衡)-> client(商品)-> 通过consul发现商品服务信息->client通过rpc与服务通信