![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
电商系统学习笔记
文章平均质量分 69
hanruikai
aaa
展开
-
电商系统学习笔记之跨服务调用
在第一篇文章架构中提到,分布式是业务逻辑需要多个service协同完成,不同于集群,多个拷贝。既然需要多个service通信,那么service之间通信的方式都有那些:1. Web service 基于SOAP协议,比较笨重,不建议使用2. REST 如果服务较多,调用链比较复杂,虽然可以通过分布式追踪进行分析3. 消息总线(一般适用于异步通信方式)4. 使用dubbo 使用RPC协议进行远...原创 2018-04-18 18:53:40 · 591 阅读 · 0 评论 -
电商系统系统笔记之Http,comet,WebSocket
Http协议的特点1.单工通信,服务器无法推送信息给客户端2.请求-应答模式3 无状态由于以上的http特点,传统模式的 Web 系统以客户端发出请求、服务器端响应的方式工作。这种方式并不能满足很多现实应用的需求,譬如:监控系统:后台硬件热插拔、LED、温度、电压发生变化;即时通信系统:其它用户登录、发送信息;即时报价系统:后台数据库内容发生变化;这些应用都需要服务器能实时地将更新的信息传送到客户...原创 2018-04-27 17:01:43 · 632 阅读 · 1 评论 -
电商系统系统笔记之freemark和velocity,CDN,长连接
1. Velocity和freemark是什么,为什么我们都知道,缓存可以提高查询性能,但是当用户访问量很大时,单纯依靠缓存已经不行了,为什么这么说呢?这是因为我们在访问商品详情的时候由于每款商品都不一样,因此每款商品的详情页都是动态生成的,每查看一次,页面就要重新渲染一次,渲染的过程是消耗时间的,当用户访问量很大时,这便在一定程度上降低了系统性能。那么怎么解决这个问题呢?这便引出了我们今天要学习...原创 2018-04-27 11:02:17 · 1112 阅读 · 0 评论 -
电商系统学习笔记之nginx和负载均衡策略
负载均衡架构图*Nginx工作在第七层,LVS工作在第四层,LVS性能更好原创 2018-05-04 17:02:03 · 530 阅读 · 0 评论 -
电商系统系统笔记之select,poll,epoll深入理解
select poll在IO多路复用模型中,select函数负责监听多个socket(文件描述符FD),如果有任何一个socket就绪,则返回可读。用户进程可以读取数据,又一次调用receFrom。其实如果并发数量不大,利用select/poll/epoll不一定比多线程+阻塞IO性能好当用户process调用select的时候,select会将需要监控的readfds集合拷贝到内核空间(假设监控...原创 2018-05-04 15:10:32 · 416 阅读 · 0 评论 -
电商系统系统笔记之redis应用
1. 商品详情页商品详情页大量信息,第一次读取,放入缓存,以后优先从缓存读取。但是商品信息都设置超时时间,因为对于有些冷门商品,不经常读取,这样可以节省redis空间如果数据放入redis,被修改,则超时时间延长,如果一直没有修改,数据被redis删除。Redis过期机制在Redis中可以使用EXPIRE命令设置一个键的存活时间(ttl: time to live),过了这段时间,该键就会自动被删...原创 2018-04-26 13:47:57 · 1387 阅读 · 0 评论 -
电商系统系统笔记之solrcloud服务应用实战
上文solrcloud中,我们已经可以针对经常搜索的数据,搭建solr搜索服务,通过dubbo暴露服务调用接口。solr建立索引的数据需要与数据库进行同步,我们可以配置同步间隔,原文作者是rest api触发同步的。这也是一个方法,但是实际应用中不可取。1. 配置数据库和solr同步间隔,默认30分钟增量同步,这里我们修改为1分钟##################################...原创 2018-04-26 11:24:05 · 264 阅读 · 0 评论 -
电商系统学习笔记之Netty架构分析
1. 复习NIO在学习Netty之前,先来回顾一下NIO的通信步骤:①创建ServerSocketChannel,为其配置非阻塞模式。②绑定监听,配置TCP参数,录入backlog大小等。③创建一个独立的IO线程,用于轮询多路复用器Selector。④创建Selector,将之前创建的ServerSocketChannel注册到Selector上,并设置监听标识位SelectionKey.OP_A...转载 2018-05-02 18:44:12 · 338 阅读 · 0 评论 -
电商系统学习笔记之redis单线程架构以及IO通信模型
Redis单线程架构CPU不会成为瓶颈,不是计算密集型,是IO密集型场景,所以可以考虑单线程,减少线程间交互,加锁等问题。而且,利用IO多路复用技术,处理连接数过大的场景(大于1000),如果连接数比较小,IO多路复用反而不如多线程+阻塞IO方式。Redis采用的是基于内存的采用的是单进程单线程模型的KV数据库,由C语言编写。官方提供的数据是可以达到100000+的qps。这个数据不比采用单进程多...原创 2018-05-02 18:22:50 · 875 阅读 · 0 评论 -
电商系统学习笔记之重要的hash算法MurmurHash
先看看string的默认hash方法,代码如下 /** * Returns a hash code for this string. The hash code for a * {@code String} object is computed as * <blockquote><pre> * s[0]*31^(n-1) + s[1...原创 2018-05-02 10:37:07 · 4221 阅读 · 0 评论 -
电商系统系统笔记之二数据库连接池
在学习作者的电商架构时,发现作者采用了阿里的数据库连接池,查询我们的项目,并没有采用任何数据库连接池。package com.puhui.flowplatform.entry.config;import javax.sql.DataSource;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.sp...原创 2018-04-13 18:06:10 · 481 阅读 · 0 评论 -
电商系统学习笔记之一系统架构
1.如何解决高并发问题电脑系统架构一般如下所示:传统的系统机构一般是 表现层-业务处-持久层-数据库,如下图所示对于访问量下的系统,没有问题,如果如果访问量大,根本无法支撑。比如如果服务器用tomcat,tomcat支持的最大并发数理论值也就500左右。实际应用中,能到200,300就很不错了。1.1 如果解决访问量大的问题?一般采用负载均衡,进行loadbalance,我们常说的nginx反向...原创 2018-04-13 17:21:26 · 2518 阅读 · 0 评论 -
电商系统学习笔记之分布式存储
如果需要存储大量图片,比如网络相册,配置文件等,如果和应用部署在一起,分布式情况下无法多个服务共享。况且有些服务器对http静态资源支持不好,比如tomcat对动态资源支持比较好,apache适合静态资源访问。需要解决问题1 多个服务共享---建立图片服务器2. 扩容问题----需要支持水平扩展为了解决这两个问题,我们使用FastDFS集群来解决,FastDFS是一个开源的轻量级分布式文件系统,...原创 2018-04-19 11:46:41 · 716 阅读 · 0 评论 -
电商系统系统笔记之分布式搜索solrcloud
前言:笔者曾经搭建过solr单机版服务,其实很多服务都有单机版,master-slave版,cloud版本。redis也是这样。此文不讨论solr的环境搭建,主要是讨论solrcloud的应用场景,原理以及架构设计。1. 什么是solrSolr是以Lucene为基础实现的文本检索应用服务。Solr部署方式有单机方式、多机Master-Slaver方式、Cloud方式。SolrCloud是基于Sol...原创 2018-04-23 15:43:53 · 420 阅读 · 0 评论 -
Spring boot 上传文件java.io.IOException: java.io.FileNotFoundException 异常
spring boot实现文件上传,刚开始同步实现,没有问题,后来耗时太长,改成异步实现,但是异步实现,在上传过程中发现报错,类似下面的堆栈:java.io.IOException:java.io.FileNotFoundException: /var/private/tomcat.273391201583741210.8080/work/Tomcat/localhost/ROOT/tmp/sou...原创 2018-05-18 16:43:47 · 12915 阅读 · 1 评论