Web开发来一发
WalkOffTheEarth
这个作者很懒,什么都没留下…
展开
-
Web开发来一发(十五)Linux IO模式和epoll原理
1原创 2020-03-10 18:01:35 · 176 阅读 · 0 评论 -
Web开发来一发(十五)Redis
1、Redis简介Redis是一个Key-Value存储系统,可以支持String、Hash、List、Set等作为value进行存储,并且支持push/pop、add/remove及取交集并集和差集及更丰富的操作,且保证这些操作的原子性,另外还支持排序。Redis数据是放在内存中的,但会做持久化,周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了maste...原创 2019-05-17 14:06:28 · 186 阅读 · 0 评论 -
JavaWeb开发设计(七)开发模式
常讲到的开发模式包括:瀑布式开发、敏捷开发、极限编程等。传统开发模式都是瀑布式开发,按部就班一步步达成目标,但互联网产品节奏紧凑、业务需求多变,瀑布式开发显得太笨重,于是出现了极限编程、敏捷开发等应对。一、瀑布式开发瀑布式开发是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后...原创 2019-05-19 14:02:53 · 286 阅读 · 0 评论 -
Web开发来一发(十二)Kafka
1、Kafka简介Kafka是一个分布式发布-订阅消息传递系统,常用于日志服务。Kafka基本结构包括Topic、Producer、Broker、Consumer:1)Topic:特定类型的消息流,消息是字节的有效负载;2)Producer:能够发布消息到话题的任何对象;3)Broker:已发布的消息保存在一组服务器中,它们被称为代理(Broker)或Kafka集群;4)C...原创 2019-01-08 12:16:54 · 271 阅读 · 0 评论 -
Web开发来一发(十四)一致性哈希算法
1、问题引入:集群新增机器时,有一部分流量会打到新机器上,如果这些流量的处理依赖之前应该处理的那台机器上的历史数据,那么没做数据同步就会处理失败。有机器宕机时,会出现同样的问题。2、解决思路:每次服务器数量变动时,都先全部停止服务,根据新的路由做数据迁移,然后恢复服务。但显然这样成本很高。3、更好的解决思路:如果服务器数量变动时,根据新的散列算法,可以让旧请求打到原来的服务器,...原创 2019-01-08 16:13:25 · 261 阅读 · 0 评论 -
Web开发来一发(十三)限流
1、限流算法简介每个API接口都是有访问上限的,当访问频率或者并发量超过其承受范围时候,我们就必须考虑限流来保证接口的可用性或者降级可用性。限流的算法是参考水流建立模型的,常用限流算法有两种:漏桶算法和令牌桶算法。漏桶算法:水(请求)先进入到漏桶里,漏桶以一定的速度出水(接口有响应速率),当水流入速度过大会直接溢出(访问频率超过接口响应速率),然后就拒绝请求。可以看出漏桶算法能强行...原创 2019-01-08 12:26:34 · 434 阅读 · 0 评论 -
Web开发来一发(十一)热部署
热部署,是针对Java这种需要编译打包的编程语言来说的,因为像php这些解释型的语言是天然支持热部署的。由于打包部署的过程会中断服务,因此希望升级软件却不需要重新启动应用,以使得服务不中断。当然,在企业应用中,一般应用都有多台机器互通同时工作,对热部署的需求没那么强。那么热部署是怎么实现的呢?先看类加载的过程,Java文件被编译成class字节码后,类加载器读取class字节码,再将类转化...原创 2019-01-08 11:56:00 · 272 阅读 · 0 评论 -
Web开发来一发(十)基本数据结构
简单记录部分常见数据结构:1、二叉树定义:二叉树是每个结点最多有两个子树的树结构。由于其最多只有两个节点,基本结构简单,数学上便于统计和计算。2、二叉堆定义:二叉堆就是父节点都比子节点大或者小的二叉树。二叉堆就是有一定排序的二叉树,插入操作的时间复杂度为O(logn),由于经过排序,查找效率比二叉树高。但左右子树没有经过排序,3、二叉查找树(又称二叉搜索树、二叉排序树)...原创 2019-01-08 11:20:21 · 330 阅读 · 0 评论 -
Web开发来一发(九)Nginx负载均衡算法(转)
参考:http://www.cnblogs.com/lvgg/p/6140584.htmlNginx负载均衡算法主要以下几种方式:1、轮询(默认方式)每个请求按时间顺序逐一分配到不同的后端服务,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响。2、weight轮询权值weight的值越大分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下。或者仅仅为在主从...转载 2019-01-07 17:51:37 · 137 阅读 · 0 评论 -
Web开发来一发(八)消息中间件MQ
蚂蚁金服典型一致性MQ实现:https://yq.aliyun.com/articles/596022一、MQ介绍1、MQ简介消息队列MQ是支持在分布式系统中发送和接受消息的硬件或软件基础设施,是异步RPC的主要手段之一。运用MQ可以实现异步、系统解耦,以此提高系统响应速度。2、MQ的核心概念MQ的核心概念包括Broker、Producer、Consumer、Topic、M...原创 2019-01-07 17:46:04 · 424 阅读 · 0 评论 -
Web开发来一发(三)Servlet基础
1、Servlet简介Sevlet是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。2、Servlet意义为了动态响应请求,服务端最开始用的是CGI(Common Gateway Interface),CGI可以用任意语言编写,只要能响应动态请求就可以,但由于开发CGI需要关注通信、请求处...原创 2018-12-18 23:26:56 · 145 阅读 · 0 评论 -
Web开发来一发(五)Session和Cookie
1、CookieWeb应用程序是使用HTTP协议传输数据的,HTTP协议是无状态的协议,一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。要跟踪该会话,必须引入一种机制。Cookie机制弥补了HTTP无状态的不足。Cookie实际上是一小段的文本信息,客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie,客户...原创 2019-01-01 11:33:31 · 222 阅读 · 1 评论 -
Web开发来一发(四)nio和netty
先看下Doug Lea的介绍很有帮助:http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf1、NIO简介NIO是一种网络编程模型。在网络编程中,socket的核心方法socket.accept()、socket.read()、socket.write()都是同步阻塞的,即处理IO的线程是阻塞的,因此需要用多线程来处理并发请求,但即使这样,这些线程的效率...原创 2019-01-01 09:25:12 · 236 阅读 · 0 评论 -
Web开发来一发(二)Tomcat基础
1、Tomcat简介Tomcat是一个Web应用服务器,同时也是一个Servlet/JSP容器。这里插一句Web服务器和Servlet容器的区别,Web服务器是指处理HTTP请求并响应的服务器,Servlet服务器是指在服务端使用Java作为后端语言动态生成页面的服务器。Tomcat作为Servlet容器,负责处理客户端请求,把请求传送给Servlet,并将Servlet的响应返回给客户端...原创 2018-12-18 22:32:29 · 150 阅读 · 0 评论 -
Web开发来一发(一)web基础
1、web的三个特征用HTML来表达信息 用HTTP协议做通信 用URL实现定位2、web发展历程发布静态的HTML文档 发布静态的多媒体信息 提供浏览器和用户的交互功能(applet等运行在客户端的程序) 提供服务器端与用户的交互(CGI或PHP) 发布web应用和web服务3、HTTP请求过程DNS解析 TCP连接 HTTP请求 响应请求 页面展示4、Sp...原创 2018-12-18 20:31:20 · 103 阅读 · 0 评论 -
Web开发来一发(七)缓存
一、缓存概念1、缓存雪崩可能是因为数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机。解决思路:1)加锁计数(即限制并发的数量,可以用semphore)或者起一定数量的队列来避免缓存失效时大量请求并发到数据库。但这种方式会降低吞吐量。2)分析用户行为,然后失效时间均匀分布。或者在失效时间的基础上再加1~5分钟...原创 2019-01-07 15:17:46 · 144 阅读 · 0 评论 -
Web开发来一发(六)SOA和微服务
1、服务演进架构演进可以看这个图:https://dubbo.apache.org/zh-cn/docs/user/preface/background.html1)单体应用当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。2)垂直应用架构当访问量逐渐增大,单一应用增加机器带来的加...原创 2019-01-07 12:02:03 · 182 阅读 · 0 评论