服务器端

求超大文件上传方案( jsp )

。_饼干妹妹 提交于 2020-01-10 16:25:45
1 背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出、还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工、挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通过浏览器上传至服务器,做一层中转便可以实现,但当这份文件非常大到了10GB级别,我们就需要思考另一种形式的技术方案了,也就是本文要阐述的方案。 技术要求主要有以下几方面: 支持超大数据量、10G级别以上 稳定性:除网络异常情况100%成功 准确性:数据无丢失,读写准确性100% 效率:1G文件分钟级、10G文件小时级 体验:实时进度感知、网络异常断点续传、定制字符特殊处理 2 文件上传选型 文件上传至ODPS基本思路是先文件上传至某中转区域存储,然后同步至ODPS,根据存储介质可以分为两类,一类是应用服务器磁盘,另一类类是中间介质,OSS作为阿里云推荐的海量、安全低成本云存储服务,并且有丰富的API支持,成为中间介质的首选。而文件上传至OSS又分为web直传和sdk上传两种方案,因此上传方案有如下三种,详细优缺点对比如下: 蚂蚁的文本上传功能演进过程中对第一种、第二种方案均有实践,缺点比较明显,如上表所述,不满足业务需求,因此大文件上传终极方案是方案三。 3 整体方案 以下是方案三的整体过程示意图。 请求步骤如下: 用户向应用服务器取到上传policy和回调设置。

SpringCloud深入学习(三)——Ribbon介绍和使用详解

倾然丶 夕夏残阳落幕 提交于 2020-01-10 15:19:23
一、ribbon简介 Ribbon 是一个客户端负载均衡的组件,Netflix 开源的,其主要功能就是实现客户端的负载均衡。 Ribbon 客户端组件提供了一系列完善的配置项,如连接超时、重试等配置。简单来说,Ribbon是一个客户端负载均衡器,我们可以在配置文件中列出负载均衡后面所有的机器, Ribbon会自动的帮助你基于某种规则(轮询,随机等)去连接这些机器 ,我们也可以使用自定义Ribbon实现自己的负载均衡算法。 为什么说Ribbon是客户端的负载均衡组件? 自己的理解: 客户端和服务器端这两个概念是相互的,客户端请求服务器端,服务器端处理数据返回客户端等。 在微服务中,涉及到负载均衡操作,往往需要一个服务A去负载均衡其他的服务B,此时的服务A则可以理解为客户端。 二、Ribbon 的各种负载均衡策略配置 2.1、依赖的引入 一般情况下,我们采取 Ribbon 做客户端的负载均衡操作时,都需要引入下列依赖: < dependency > < groupId > org.springframework.cloud </ groupId > < artifactId > spring-cloud-starter-netflix-ribbon </ artifactId > </ dependency > [注:] 但是,在我们客户端(子服务)引入依赖中,我们使用了 eureka

Session和Cookie的区别

南笙酒味 提交于 2020-01-10 13:13:24
session原理: session是保存在服务器端,理论上是没有是没有限制,只要你的内存够大 浏览器第一次访问服务器时会创建一个session对象并返回一个JSESSIONID=ID的值, 创建一个Cookie对象key为JSSIONID,value为ID的值,将这个Cookie写回浏览器 浏览器在第二次访问服务器的时候携带Cookie信息JSESSIONID=ID的值,如果该JSESSIONID的session已经销毁, 那么会重新创建一个新的session再返回一个新的JSESSIONID通过Cookie返回到浏览器 针对一个web项目,一个浏览器是共享一个session,就算有两个web项目部署在同一个服务器上,针对两个项目的session是不同的 如:你在tomcat上同时部署了两个web项目,分别是web1、web2。当你在一个浏览器上同时访问web1时创建的session是A1,访问web2时创建的session是A2。 后面你再多次访问web1使用的session还是A1,多次访问web2时使用session就是A2 session是基于Cookie技术实现,重启浏览器后再次访问原有的连接依然会创建一个新的session, 因为Cookie在关闭浏览器后就会消失,但是原来服务器的Session还在,只有等到了销毁的时间会自动销毁 如果浏览器端禁用了Cookie

请求转发和重定向的区别

戏子无情 提交于 2020-01-10 11:12:22
在java中实现页面跳转一般有两种方式,一种是请求转发,一种是重定向,那么这两者有什么区别呢? 一、请求转发 请求转发一般是这样的一个过程:客户端发送请求到服务器端,服务器端经过匹配的servlet,并执行,当这个servlet执行完之后,调用getRequestDispacther()方法,把请求转发给指定的页面,整个流程都是在服务器端完成的,而且是在同一个请求里面完成的,因此servlet和页面共享的是同一个request,在servlet里面放的所有东西,在页面中都能取出来,整个过程是一个请求,一个响应。 如果以现实生活中的例子来举例,那么以拿快递来举例是比较好的。比如,A有快递到了,但是没有时间,那么A让B帮忙取快递,但是B答应了,想去取得时候B也没有时间,就让C取,C取好快递之后,交给A。 二、重定向 重定向一般是这样的过程:客户端发送请求到服务器端,服务器端经过匹配的servlet,并执行,前面这个步骤是和请求转发一样,处理完之后调用了sendRedirect()方法,这个方法是response的方法,所以调用这个方法会向客户端返回这个响应,客户端会再次发送一个请求,去访问指定页面,紧接着客户端受到这个请求后,立刻发出一个新的请求,去请求访问页面。 上面过程中含有两个请求,这两个请求互不干扰,相互独立,在前面request里面setAttribute()的任何东西

转发和重定向的区别与联系

时间秒杀一切 提交于 2020-01-10 09:42:00
作为一名Java Web开发的程序员,在使用Servlet/JSP的时候,我们必须要知道实现页面跳转的两种方式的区别和联系:即转发和重定向的区别。 什么是转发 客户首先发送一个请求到服务器端,服务器端发现匹配的Servlet,并指定它去执行。当这个Servlet执行完之后,它要调用getRequestDispacther()方法,把请求转发给指定的JSP,整个流程都是在服务器端完成的,而且是在同一个请求里面完成的,因此Servlet和JSP共享的是同一个Request,在Servlet里面放的所有东西,在JSP中都能取出来,因此,JSP能把结果getAttribute()出来,getAttribute()出来后执行完把结果返回给客户端。整个过程是一个请求,一个响应。 request.getRequestDispatcher("/yanggb.jsp").forword(request, response); 什么是重定向 客户首先发送一个请求到服务器端,服务器端发现匹配的Servlet,并指定它去执行。当这个Servlet执行完之后,它就会调用sendRedirect()方法,立即向客户端返回这个响应,响应告诉客户端你必须要再发送一个请求,去访问JSP。紧接着客户端收到这个请求后,就会立刻发出一个新的请求,去请求JSP,这里的两个请求互不干扰,相互独立。这就意味着

iOS RSA公钥加密数据 服务端接受PHP私钥解密 反过服务端公钥加密数据 iOS端私钥解密数据

扶醉桌前 提交于 2020-01-10 01:56:36
*/ /*--> */ */ /*--> */ 加密传输的数据,采用 RSA算法,RSA是一种非对称算法,算法需要一对密钥,使用其中一个加密,需要使用另外一个才能解密。有可私钥可以直接生产公钥。 iOS SDK并不支持私钥加密,公钥解密。可以通过OPENSSL第三方库解决。 使用openssl命令行生成密钥对 openssl req -x509 - out public_key.der -outform der - new -newkey rsa: 1024 -keyout private_key.pem 根据提示,填入私钥的密码(代码中需要用到),签名证书的组织名、邮件等信息之后,就会生成包含有公钥的证书文件public_key.der合私钥文件private_key.pem。 public_key.der文件用于分发到iOS客户端进行公钥加解密,而private_key.pem文件留在服务器端供php使用。当然,为了在服务器端进行加解密测试,那么我们还可以生成一个服务器端PHP使用的pem公钥文件: openssl rsa - in private_key.pem -pubout - out public_key.pem 上面这个命令就会根据输入的私钥文件生成pem格式的公钥文件了。从这里也可以看到,根据私钥,我们是可以生成相对应的公钥的,这也就是为什么我们要把公钥放在客户端

SQLServer服务的运行与登录

为君一笑 提交于 2020-01-08 21:04:06
文章目录 1 数据库服务的打开 1.1 关于客户端、服务器端的说明 1.2 数据库服务打开和关闭的方式 2 登录到数据库服务器 2.1 使用windows登录方式登录服务器 2.2 使用SQLServer方式登录服务器 1 数据库服务的打开 在我们使用DBMS客户端之前必须首先打开数据库服务SQL Server(默认实例名为MSSQLServer), 运行在服务器端的应用程序主要是用来提供数据的存储、处理和事物等。 1.1 关于客户端、服务器端的说明 客户端: 数据库管理系统(DBMS),应用程序。 服务器端: 安装的数据库服务,数据库管理的核心程序。 两者关系: 客户端和服务器端可以安装的时候完全分离开,一个服务器可以被若干个客户端连接为其提供服务。 1.2 数据库服务打开和关闭的方式 在操作系统的服务中启动和关闭:在cmd中输入 services.msc ,找打SQL Server服务即可进行打开或者关闭。 在运行窗口中使用启动和关闭服务的命令: net start mssqlserver 或者 net stop mssqlserver 进行服务的打开或者关闭,上面的名称为默认实例的名称。 通过 SQL Server Configuration Manager启动和停止 。 2 登录到数据库服务器 服务器名称: 默认实例可以用.或者localhost代替。 命名实例需要采用.

HTTP的工作原理和通信

时光毁灭记忆、已成空白 提交于 2020-01-08 10:44:55
工作原理: HTTP是一个无状态的协议。无状态是指客户机(Web浏览器)和服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息.HTTP遵循请求(Request)/应答(Response)模型。客户机(浏览器)向服务器发送请求,服务器处理请求并返回适当的应答。所有HTTP连接都被构造成一套请求和应答。 通信过程: 1 ) 、地址解析, 如用客户端浏览器请求这个页面:http://localhost.com:8080/index.htm 从中分解出协议名、主机名、端口、对象路径等部分,对于我们的这个地址,解析得到的结果如下: 协议名:http 主机名:localhost.com 端口:8080 对象路径:/index.htm 在这一步,需要域名系统DNS解析域名localhost.com,得主机的IP地址。 2)、封装HTTP请求数据包 把以上部分结合本机自己的信息,封装成一个HTTP请求数据包 3)封装成TCP包,建立TCP连接(TCP的三次握手) 在HTTP工作开始之前,客户机(Web浏览器)首先要通过网络与服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络

cookie 和session 的区别详解

房东的猫 提交于 2020-01-08 06:40:04
这些都是基础知识,不过有必要做深入了解。先简单介绍一下。 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie 里的内容来判断使用者,送出特定的网页内容给你。 Cookie 的使用很普遍,许多有提供个人化服务的网站,都是利用 Cookie 来辨认使用者,以方便送出使用者量身定做的内容,像是 Web 接口的免费 email 网站,都要用到 Cookie。 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。 同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制 来达到保存标识的目的,但实际上它还有其他选择。 cookie机制。正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示 浏览器按照指示生成相应的cookie。然而纯粹的客户端脚本如JavaScript或者VBScript也可以生成cookie。而cookie的使用 是由浏览器按照一定的原则在后台自动发送给服务器的

cookie 和session 的区别详解

狂风中的少年 提交于 2020-01-08 04:33:41
这些都是基础知识,不过有必要做深入了解。先简单介绍一下。 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie 里的内容来判断使用者,送出特定的网页内容给你。 Cookie 的使用很普遍,许多有提供个人化服务的网站,都是利用 Cookie 来辨认使用者,以方便送出使用者量身定做的内容,像是 Web 接口的免费 email 网站,都要用到 Cookie。 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。 同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制 来达到保存标识的目的,但实际上它还有其他选择。 cookie机制。正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示 浏览器按照指示生成相应的cookie。然而纯粹的客户端脚本如JavaScript或者VBScript也可以生成cookie。而cookie的使用 是由浏览器按照一定的原则在后台自动发送给服务器的