• 关于

    重复请求怎么看配置

    的搜索结果

问题

Nginx性能为什么如此吊

Nginx性能为什么如此吊,Nginx性能为什么如此吊,Nginx性能为什么如此吊 (重要的事情说三遍)的性能为什么如此吊!!!         最近几年,web架构拥抱解耦的...
小柒2012 2019-12-01 21:20:47 15038 浏览量 回答数 3

回答

我又来自己解决问题了... 起初我就怀疑是因为我springmvc拦截了所有/请求的关系,所以我新建了一个项目,controller是以.do为结尾的拦截,果然这次没有出现任何问题,成功静态化. 这个和以前我使用AOP的时候出现的一个小问题有点像,就是当时把满足get*的方法都拦截了,结果出现了tomcat启动报错,把外延缩小以后,成功启动.说明在以所以get开头的方法里包含到了spring启动的方法.所以在/拦截里可能也发生了这样的错误需要看一下你的View是怎么写的,AbstractTemplateView的renderMergedOutputModel()要求model中的springMacroRequestContext应该由他自己添加,确认下是否有占用或有重复调用,实在不行debug一下,看看哪些地方往Model添加了这个的属性 断点下来发现在被拦截进入这个类的时候就已经存在了,按照配置来看exposeSpringMacroHelpers这个属性应该就是对应这个问题的,因为allowSessionOverride解决了Cannotexposesessionattribute'xxx'becauseofanexistingmodelobjectofthesamename这个异常, freemarker这玩意太恐怖了,崩一堆错误出来,然后页面布局就撑爆了。错误的第一句很明显。。。不好意思anexistingmodelobjectofthesamenameatorg.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel,我以为他有用呢,不过这个问题没遇到过。第一个只截取了部分..很不错的功能哦,帮忙一块加入 springrain吧 下面 request.getRequestDispatcher(requestHTML).forward(request,response);还是会再次进入这个viewer。当第二次执行 exposeModelAsRequestAttributes(model,request); 的时候spring觉得这是不安全的,就报错了 我也发现这个问题了。那要怎么解决呢~
爱吃鱼的程序员 2020-06-23 11:58:02 0 浏览量 回答数 0

问题

[精品问答]Java一百问第一期

java之父高斯林,Java的缔造者。 而Java发展至今,使用者已占领市场七成。 动心者仍在观望,使用者“爱恨交加” 以下是为每一个java使用者整理的灵魂百问,大部分都是踩坑经验...
问问小秘 2019-12-01 21:51:20 791 浏览量 回答数 1

问题

程序员报错QA大分享(1)

程序员报错QA征集第一弹来了哦~包含QA分享一期征集的部分内容,链接附带解决方案,可收藏哦~ npm install安装依赖一直报错?报错https://developer.aliyun.com/ask/301...
问问小秘 2020-06-18 15:46:14 1684 浏览量 回答数 2

回答

00根本不大,没有达到tomcat的极限的,所以看你业务的。。业务代码有问题,50个不也照样跑满么######的确,代码问题。######一台tomcat 通常分配500个请求的,你可以用nginx 做代理转发,后端起多个tomcat######回复 @-Jacen- : 我测试出来windows 下没很大差别######昨天问了一个朋友,说windows下apache比nginx性能高。是这样吗?######超时时间太长了,你这样直接就把服务器拖死了######你说的超时时间是指connectionTimeout 还是keepAliveTimeout###### 如何定义高并发? 上线前酝酿一下最高的并发请求数,针对请求数做2/8法则, 压力测试单台容器能支撑多久... 最后建议搞集群把...分担压力. ######nginx在前面,毕竟tomcat并不是为大并发设计的!还有,你的每个请求运行逻辑不要太复杂,不要占用过长时间######500台手机在线,真正的并发约为20-40%之间,一台tomcat完全可以抗的住,修改tomcat的连接数同时看下OS的文件打开数限制,另外开始压缩,最好前面用nginx反向代理######回复 @Eric_林 : 嗯,都不熟悉,到处乱搞。######回复 @-Jacen- : 都差不多,看你哪个更熟悉######windows作为服务器,用apache还是nginx更好?######你这一个processTime  这么久? 最长的半个小时,一台tomcat   请求多了 你不挂 谁挂 ######回复 @-Jacen- : 悲观锁:一旦你数据库处理稍微久 并发量上来 会导致链接不够用,然后任务被拒绝。 乐观锁:会导致很多无效的mysql操作,同样会消耗很多资源。 所以要具体业务场景及根据系统可预想的并发量进行具体分析,一种比较好的方式是用redis协助来做乐观锁,还有一种就是redis的原子性操作是一种更好的方式,再或者用redis的lua方式。反正就是具体业务要具体分析,哈哈哈哈哈######回复 @Ambitor : 为了防止多线程重复都数据库,加了个synchronized锁,结果一段时间就挂了,后来去掉,就好了。现在有个思路通过数据库悲观锁或者乐观锁解决。######回复 @-Jacen- : 还有如果你都是长连接的话,那你可能就要用集群了######回复 @-Jacen- : 我觉得线程5000个是多了,然后空闲存活时间只有60秒。但是JDK的线程池的创建策略是任务队列排不下了再新建线程的,所以如果你的应用规模没达到每秒上百的并发(注意,我说的是并发,不是同时在线) 应该不是问题,所以这个地方问题 应该是你的业务逻辑代码有问题?仔细研究下你们代码是不是有某些问题?不然一个请求怎么这么久。######就是不清楚为啥这个time会这么久。求指点######你搞这么大的线程,线程切换估计都浪费很多cpu了######负载均衡呢######建议前面加nginx( 配置比apache简单),后面改成多个tomcat。
kun坤 2020-06-14 15:40:34 0 浏览量 回答数 0

回答

500根本不大,没有达到tomcat的极限的,所以看你业务的。。业务代码有问题,50个不也照样跑满么######的确,代码问题。######一台tomcat 通常分配500个请求的,你可以用nginx 做代理转发,后端起多个tomcat######回复 @-Jacen- : 我测试出来windows 下没很大差别######昨天问了一个朋友,说windows下apache比nginx性能高。是这样吗?######超时时间太长了,你这样直接就把服务器拖死了######你说的超时时间是指connectionTimeout 还是keepAliveTimeout###### 如何定义高并发? 上线前酝酿一下最高的并发请求数,针对请求数做2/8法则, 压力测试单台容器能支撑多久... 最后建议搞集群把...分担压力. ######nginx在前面,毕竟tomcat并不是为大并发设计的!还有,你的每个请求运行逻辑不要太复杂,不要占用过长时间######500台手机在线,真正的并发约为20-40%之间,一台tomcat完全可以抗的住,修改tomcat的连接数同时看下OS的文件打开数限制,另外开始压缩,最好前面用nginx反向代理######回复 @Eric_林 : 嗯,都不熟悉,到处乱搞。######回复 @-Jacen- : 都差不多,看你哪个更熟悉######windows作为服务器,用apache还是nginx更好?######你这一个processTime  这么久? 最长的半个小时,一台tomcat   请求多了 你不挂 谁挂 ######回复 @-Jacen- : 悲观锁:一旦你数据库处理稍微久 并发量上来 会导致链接不够用,然后任务被拒绝。 乐观锁:会导致很多无效的mysql操作,同样会消耗很多资源。 所以要具体业务场景及根据系统可预想的并发量进行具体分析,一种比较好的方式是用redis协助来做乐观锁,还有一种就是redis的原子性操作是一种更好的方式,再或者用redis的lua方式。反正就是具体业务要具体分析,哈哈哈哈哈######回复 @Ambitor : 为了防止多线程重复都数据库,加了个synchronized锁,结果一段时间就挂了,后来去掉,就好了。现在有个思路通过数据库悲观锁或者乐观锁解决。######回复 @-Jacen- : 还有如果你都是长连接的话,那你可能就要用集群了######回复 @-Jacen- : 我觉得线程5000个是多了,然后空闲存活时间只有60秒。但是JDK的线程池的创建策略是任务队列排不下了再新建线程的,所以如果你的应用规模没达到每秒上百的并发(注意,我说的是并发,不是同时在线) 应该不是问题,所以这个地方问题 应该是你的业务逻辑代码有问题?仔细研究下你们代码是不是有某些问题?不然一个请求怎么这么久。######就是不清楚为啥这个time会这么久。求指点######你搞这么大的线程,线程切换估计都浪费很多cpu了######负载均衡呢######建议前面加nginx( 配置比apache简单),后面改成多个tomcat。
kun坤 2020-06-02 15:01:27 0 浏览量 回答数 0

回答

"500根本不大,没有达到tomcat的极限的,所以看你业务的。。业务代码有问题,50个不也照样跑满么######的确,代码问题。######一台tomcat 通常分配500个请求的,你可以用nginx 做代理转发,后端起多个tomcat######回复 <a href=""http://my.oschina.net/295117485"" class=""referer"" target=""_blank"">@-Jacen- : 我测试出来windows 下没很大差别######昨天问了一个朋友,说windows下apache比nginx性能高。是这样吗?######超时时间太长了,你这样直接就把服务器拖死了######你说的超时时间是指connectionTimeout 还是keepAliveTimeout###### 如何定义高并发? 上线前酝酿一下最高的并发请求数,针对请求数做2/8法则, 压力测试单台容器能支撑多久... 最后建议搞集群把...分担压力. ######nginx在前面,毕竟tomcat并不是为大并发设计的!还有,你的每个请求运行逻辑不要太复杂,不要占用过长时间######500台手机在线,真正的并发约为20-40%之间,一台tomcat完全可以抗的住,修改tomcat的连接数同时看下OS的文件打开数限制,另外开始压缩,最好前面用nginx反向代理######回复 @Eric_林 : 嗯,都不熟悉,到处乱搞。######回复 @-Jacen- : 都差不多,看你哪个更熟悉######windows作为服务器,用apache还是nginx更好?######你这一个processTime  这么久? 最长的半个小时,一台tomcat   请求多了 你不挂 谁挂 ######回复 @-Jacen- : 悲观锁:一旦你数据库处理稍微久 并发量上来 会导致链接不够用,然后任务被拒绝。 乐观锁:会导致很多无效的mysql操作,同样会消耗很多资源。 所以要具体业务场景及根据系统可预想的并发量进行具体分析,一种比较好的方式是用redis协助来做乐观锁,还有一种就是redis的原子性操作是一种更好的方式,再或者用redis的lua方式。反正就是具体业务要具体分析,哈哈哈哈哈######回复 @Ambitor : 为了防止多线程重复都数据库,加了个synchronized锁,结果一段时间就挂了,后来去掉,就好了。现在有个思路通过数据库悲观锁或者乐观锁解决。######回复 @-Jacen- : 还有如果你都是长连接的话,那你可能就要用集群了######回复 @-Jacen- : 我觉得线程5000个是多了,然后空闲存活时间只有60秒。但是JDK的线程池的创建策略是任务队列排不下了再新建线程的,所以如果你的应用规模没达到每秒上百的并发(注意,我说的是并发,不是同时在线) 应该不是问题,所以这个地方问题 应该是你的业务逻辑代码有问题?仔细研究下你们代码是不是有某些问题?不然一个请求怎么这么久。######就是不清楚为啥这个time会这么久。求指点######你搞这么大的线程,线程切换估计都浪费很多cpu了######负载均衡呢######建议前面加nginx( 配置比apache简单),后面改成多个tomcat。"
montos 2020-06-03 22:31:00 0 浏览量 回答数 0

问题

API常见错误码表上线-就帮你到这里了

为了方便您在使用阿里云产品时查找报错原因,并了解怎么解决报错,阿里云对错误码表进行了优化。 本文档列出了您在使用 API 过程中可能遇到的报错信息以及其描述和推荐的解决方法。 下面咱们就来看看这个表ÿ...
仙游 2019-12-01 21:00:08 5576 浏览量 回答数 1

问题

zookeeper 都有哪些使用场景?【Java问答学堂】56期

面试题 zookeeper 都有哪些使用场景? 面试官心理分析 现在聊的 topic 是分布式系统,面试官跟你聊完了 dubbo 相关的一些问题之后,已经确认你对分布式服务框架/RPC框架基本...
剑曼红尘 2020-07-13 21:37:59 75 浏览量 回答数 1

问题

荆门开诊断证明-scc

(微)电〗【186-6605-3854〗号【精品问答】Java技术1000问(1) 问问小秘 2019-11-15 11:24:15 9099 为了方便Java开发者快速找到相关技术问题和答案,开发...
游客5k2abgdj3m2ti 2019-12-01 22:09:00 1 浏览量 回答数 0

问题

Vue面试题汇总【精品问答】

是一套用于构建用户界面的渐进式JavaScript框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,方便与第三方库或既有项目整合。 从0到1自己构架一个vue项目...
问问小秘 2020-05-25 18:02:28 20475 浏览量 回答数 4

回答

在开始谈我对架构本质的理解之前,先谈谈对今天技术沙龙主题的个人见解,千万级规模的网站感觉数量级是非常大的,对这个数量级我们战略上 要重 视 它 , 战术上又 要 藐 视 它。先举个例子感受一下千万级到底是什么数量级?现在很流行的优步(Uber),从媒体公布的信息看,它每天接单量平均在百万左右, 假如每天有10个小时的服务时间,平均QPS只有30左右。对于一个后台服务器,单机的平均QPS可以到达800-1000,单独看写的业务量很简单 。为什么我们又不能说轻视它?第一,我们看它的数据存储,每天一百万的话,一年数据量的规模是多少?其次,刚才说的订单量,每一个订单要推送给附近的司机、司机要并发抢单,后面业务场景的访问量往往是前者的上百倍,轻松就超过上亿级别了。 今天我想从架构的本质谈起之后,希望大家理解在做一些建构设计的时候,它的出发点以及它解决的问题是什么。 架构,刚开始的解释是我从知乎上看到的。什么是架构?有人讲, 说架构并不是一 个很 悬 乎的 东西 , 实际 上就是一个架子 , 放一些 业务 和算法,跟我们的生活中的晾衣架很像。更抽象一点,说架构其 实 是 对 我 们 重复性业务 的抽象和我 们 未来 业务 拓展的前瞻,强调过去的经验和你对整个行业的预见。 我们要想做一个架构的话需要哪些能力?我觉得最重要的是架构师一个最重要的能力就是你要有 战 略分解能力。这个怎么来看呢: 第一,你必须要有抽象的能力,抽象的能力最基本就是去重,去重在整个架构中体现在方方面面,从定义一个函数,到定义一个类,到提供的一个服务,以及模板,背后都是要去重提高可复用率。 第二, 分类能力。做软件需要做对象的解耦,要定义对象的属性和方法,做分布式系统的时候要做服务的拆分和模块化,要定义服务的接口和规范。 第三, 算法(性能),它的价值体现在提升系统的性能,所有性能的提升,最终都会落到CPU,内存,IO和网络这4大块上。 这一页PPT举了一些例子来更深入的理解常见技术背后的架构理念。 第一个例子,在分布式系统我们会做 MySQL分 库 分表,我们要从不同的库和表中读取数据,这样的抽象最直观就是使用模板,因为绝大多数SQL语义是相同的,除了路由到哪个库哪个表,如果不使用Proxy中间件,模板就是性价比最高的方法。 第二看一下加速网络的CDN,它是做速度方面的性能提升,刚才我们也提到从CPU、内存、IO、网络四个方面来考虑,CDN本质上一个是做网络智能调度优化,另一个是多级缓存优化。 第三个看一下服务化,刚才已经提到了,各个大网站转型过程中一定会做服务化,其实它就是做抽象和做服务的拆分。第四个看一下消息队列,本质上还是做分类,只不过不是两个边际清晰的类,而是把两个边际不清晰的子系统通过队列解构并且异步化。新浪微博整体架构是什么样的 接下我们看一下微博整体架构,到一定量级的系统整个架构都会变成三层,客户端包括WEB、安卓和IOS,这里就不说了。接着还都会有一个接口层, 有三个主要作用: 第一个作用,要做 安全隔离,因为前端节点都是直接和用户交互,需要防范各种恶意攻击; 第二个还充当着一个 流量控制的作用,大家知道,在2014年春节的时候,微信红包,每分钟8亿多次的请求,其实真正到它后台的请求量,只有十万左右的数量级(这里的数据可能不准),剩余的流量在接口层就被挡住了; 第三,我们看对 PC 端和移 动 端的需求不一样的,所以我们可以进行拆分。接口层之后是后台,可以看到微博后台有三大块: 一个是 平台服 务, 第二, 搜索, 第三, 大数据。到了后台的各种服务其实都是处理的数据。 像平台的业务部门,做的就是 数据存储和读 取,对搜索来说做的是 数据的 检 索,对大数据来说是做的数据的 挖掘。微博其实和淘宝是很类似 微博其实和淘宝是很类似的。一般来说,第一代架构,基本上能支撑到用户到 百万 级别,到第二代架构基本能支撑到 千万 级别都没什么问题,当业务规模到 亿级别时,需要第三代的架构。 从 LAMP 的架构到面向服 务 的架构,有几个地方是非常难的,首先不可能在第一代基础上通过简单的修修补补满足用户量快速增长的,同时线上业务又不能停, 这是我们常说的 在 飞 机上 换 引擎的 问题。前两天我有一个朋友问我,说他在内部推行服务化的时候,把一个模块服务化做完了,其他部门就是不接。我建议在做服务化的时候,首先更多是偏向业务的梳理,同时要找准一个很好的切入点,既有架构和服务化上的提升,业务方也要有收益,比如提升性能或者降低维护成本同时升级过程要平滑,建议开始从原子化服务切入,比如基础的用户服务, 基础的短消息服务,基础的推送服务。 第二,就是可 以做无状 态 服 务,后面会详细讲,还有数据量大了后需要做数据Sharding,后面会将。 第三代 架构 要解决的 问题,就是用户量和业务趋于稳步增加(相对爆发期的指数级增长),更多考虑技术框架的稳定性, 提升系统整体的性能,降低成本,还有对整个系统监控的完善和升级。 大型网站的系统架构是如何演变的 我们通过通过数据看一下它的挑战,PV是在10亿级别,QPS在百万,数据量在千亿级别。我们可用性,就是SLA要求4个9,接口响应最多不能超过150毫秒,线上所有的故障必须得在5分钟内解决完。如果说5分钟没处理呢?那会影响你年终的绩效考核。2015年微博DAU已经过亿。我们系统有上百个微服务,每周会有两次的常规上线和不限次数的紧急上线。我们的挑战都一样,就是数据量,bigger and bigger,用户体验是faster and faster,业务是more and more。互联网业务更多是产品体验驱动, 技 术 在 产 品 体验上最有效的贡献 , 就是你的性能 越来越好 。 每次降低加载一个页面的时间,都可以间接的降低这个页面上用户的流失率。微博的技术挑战和正交分解法解析架构 下面看一下 第三代的 架构 图 以及 我 们 怎么用正交分解法 阐 述。 我们可以看到我们从两个维度,横轴和纵轴可以看到。 一个 维 度 是 水平的 分层 拆分,第二从垂直的维度会做拆分。水平的维度从接口层、到服务层到数据存储层。垂直怎么拆分,会用业务架构、技术架构、监控平台、服务治理等等来处理。我相信到第二代的时候很多架构已经有了业务架构和技术架构的拆分。我们看一下, 接口层有feed、用户关系、通讯接口;服务层,SOA里有基层服务、原子服务和组合服务,在微博我们只有原子服务和组合服务。原子服务不依赖于任何其他服务,组合服务由几个原子服务和自己的业务逻辑构建而成 ,资源层负责海量数据的存储(后面例子会详细讲)。技 术框架解决 独立于 业务 的海量高并发场景下的技术难题,由众多的技术组件共同构建而成 。在接口层,微博使用JERSY框架,帮助你做参数的解析,参数的验证,序列化和反序列化;资源层,主要是缓存、DB相关的各类组件,比如Cache组件和对象库组件。监 控平台和服 务 治理 , 完成系统服务的像素级监控,对分布式系统做提前诊断、预警以及治理。包含了SLA规则的制定、服务监控、服务调用链监控、流量监控、错误异常监控、线上灰度发布上线系统、线上扩容缩容调度系统等。 下面我们讲一下常见的设计原则。 第一个,首先是系统架构三个利器: 一个, 我 们 RPC 服 务组 件 (这里不讲了), 第二个,我们 消息中 间 件 。消息中间件起的作用:可以把两个模块之间的交互异步化,其次可以把不均匀请求流量输出为匀速的输出流量,所以说消息中间件 异步化 解耦 和流量削峰的利器。 第三个是配置管理,它是 代码级灰度发布以及 保障系统降级的利器。 第二个 , 无状态 , 接口 层 最重要的就是无状 态。我们在电商网站购物,在这个过程中很多情况下是有状态的,比如我浏览了哪些商品,为什么大家又常说接口层是无状态的,其实我们把状态从接口层剥离到了数据层。像用户在电商网站购物,选了几件商品,到了哪一步,接口无状态后,状态要么放在缓存中,要么放在数据库中, 其 实 它并不是没有状 态 , 只是在 这 个 过 程中我 们 要把一些有状 态 的 东 西抽离出来 到了数据层。 第三个, 数据 层 比服 务层 更需要 设计,这是一条非常重要的经验。对于服务层来说,可以拿PHP写,明天你可以拿JAVA来写,但是如果你的数据结构开始设计不合理,将来数据结构的改变会花费你数倍的代价,老的数据格式向新的数据格式迁移会让你痛不欲生,既有工作量上的,又有数据迁移跨越的时间周期,有一些甚至需要半年以上。 第四,物理结构与逻辑结构的映射,上一张图看到两个维度切成十二个区间,每个区间代表一个技术领域,这个可以看做我们的逻辑结构。另外,不论后台还是应用层的开发团队,一般都会分几个垂直的业务组加上一个基础技术架构组,这就是从物理组织架构到逻辑的技术架构的完美的映射,精细化团队分工,有利于提高沟通协作的效率 。 第五, www .sanhao.com 的访问过程,我们这个架构图里没有涉及到的,举个例子,比如当你在浏览器输入www.sanhao网址的时候,这个请求在接口层之前发生了什么?首先会查看你本机DNS以及DNS服务,查找域名对应的IP地址,然后发送HTTP请求过去。这个请求首先会到前端的VIP地址(公网服务IP地址),VIP之后还要经过负载均衡器(Nginx服务器),之后才到你的应用接口层。在接口层之前发生了这么多事,可能有用户报一个问题的时候,你通过在接口层查日志根本发现不了问题,原因就是问题可能发生在到达接口层之前了。 第六,我们说分布式系统,它最终的瓶颈会落在哪里呢?前端时间有一个网友跟我讨论的时候,说他们的系统遇到了一个瓶颈, 查遍了CPU,内存,网络,存储,都没有问题。我说你再查一遍,因为最终你不论用上千台服务器还是上万台服务器,最终系统出瓶颈的一定会落在某一台机(可能是叶子节点也可能是核心的节点),一定落在CPU、内存、存储和网络上,最后查出来问题出在一台服务器的网卡带宽上。微博多级双机房缓存架构 接下来我们看一下微博的Feed多级缓存。我们做业务的时候,经常很少做业务分析,技术大会上的分享又都偏向技术架构。其实大家更多的日常工作是需要花费更多时间在业务优化上。这张图是统计微博的信息流前几页的访问比例,像前三页占了97%,在做缓存设计的时候,我们最多只存最近的M条数据。 这里强调的就是做系统设计 要基于用 户 的 场 景 , 越细致越好 。举了一个例子,大家都会用电商,电商在双十一会做全国范围内的活动,他们做设计的时候也会考虑场景的,一个就是购物车,我曾经跟相关开发讨论过,购物车是在双十一之前用户的访问量非常大,就是不停地往里加商品。在真正到双十一那天他不会往购物车加东西了,但是他会频繁的浏览购物车。针对这个场景,活动之前重点设计优化购物车的写场景, 活动开始后优化购物车的读场景。 你看到的微博是由哪些部分聚合而成的呢?最右边的是Feed,就是微博所有关注的人,他们的微博所组成的。微博我们会按照时间顺序把所有关注人的顺序做一个排序。随着业务的发展,除了跟时间序相关的微博还有非时间序的微博,就是会有广告的要求,增加一些广告,还有粉丝头条,就是拿钱买的,热门微博,都会插在其中。分发控制,就是说和一些推荐相关的,我推荐一些相关的好友的微博,我推荐一些你可能没有读过的微博,我推荐一些其他类型的微博。 当然对非时序的微博和分发控制微博,实际会起多个并行的程序来读取,最后同步做统一的聚合。这里稍微分享一下, 从SNS社交领域来看,国内现在做的比较好的三个信息流: 微博 是 基于弱关系的媒体信息流 ; 朋友圈是基于 强 关系的信息流 ; 另外一个做的比 较 好的就是今日 头 条 , 它并不是基于关系来构建信息流 , 而是基于 兴趣和相关性的个性化推荐 信息流 。 信息流的聚合,体现在很多很多的产品之中,除了SNS,电商里也有信息流的聚合的影子。比如搜索一个商品后出来的列表页,它的信息流基本由几部分组成:第一,打广告的;第二个,做一些推荐,热门的商品,其次,才是关键字相关的搜索结果。 信息流 开始的时候 很 简单 , 但是到后期会 发现 , 你的 这 个流 如何做控制分发 , 非常复杂, 微博在最近一两年一直在做 这样 的工作。刚才我们是从业务上分析,那么技术上怎么解决高并发,高性能的问题?微博访问量很大的时候,底层存储是用MySQL数据库,当然也会有其他的。对于查询请求量大的时候,大家知道一定有缓存,可以复用可重用的计算结果。可以看到,发一条微博,我有很多粉丝,他们都会来看我发的内容,所以 微博是最适合使用 缓 存 的系统,微博的读写比例基本在几十比一。微博使用了 双 层缓 存,上面是L1,每个L1上都是一组(包含4-6台机器),左边的框相当于一个机房,右边又是一个机房。在这个系统中L1缓存所起的作用是什么? 首先,L1 缓 存增加整个系 统 的 QPS, 其次 以低成本灵活扩容的方式 增加 系统 的 带宽 。想象一个极端场景,只有一篇博文,但是它的访问量无限增长,其实我们不需要影响L2缓存,因为它的内容存储的量小,但它就是访问量大。这种场景下,你就需要使用L1来扩容提升QPS和带宽瓶颈。另外一个场景,就是L2级缓存发生作用,比如我有一千万个用户,去访问的是一百万个用户的微博 ,这个时候,他不只是说你的吞吐量和访问带宽,就是你要缓存的博文的内容也很多了,这个时候你要考虑缓存的容量, 第二 级缓 存更多的是从容量上来 规划,保证请求以较小的比例 穿透到 后端的 数据 库 中 ,根据你的用户模型你可以估出来,到底有百分之多少的请求不能穿透到DB, 评估这个容量之后,才能更好的评估DB需要多少库,需要承担多大的访问的压力。另外,我们看双机房的话,左边一个,右边一个。 两个机房是互 为 主 备 , 或者互 为热备 。如果两个用户在不同地域,他们访问两个不同机房的时候,假设用户从IDC1过来,因为就近原理,他会访问L1,没有的话才会跑到Master,当在IDC1没找到的时候才会跑到IDC2来找。同时有用户从IDC2访问,也会有请求从L1和Master返回或者到IDC1去查找。 IDC1 和 IDC2 ,两个机房都有全量的用户数据,同时在线提供服务,但是缓存查询又遵循最近访问原理。还有哪些多级缓存的例子呢?CDN是典型的多级缓存。CDN在国内各个地区做了很多节点,比如在杭州市部署一个节点时,在机房里肯定不止一台机器,那么对于一个地区来说,只有几台服务器到源站回源,其他节点都到这几台服务器回源即可,这么看CDN至少也有两级。Local Cache+ 分布式 缓 存,这也是常见的一种策略。有一种场景,分布式缓存并不适用, 比如 单 点 资 源 的爆发性峰值流量,这个时候使用Local Cache + 分布式缓存,Local Cache 在 应用 服 务 器 上用很小的 内存资源 挡住少量的 极端峰值流量,长尾的流量仍然访问分布式缓存,这样的Hybrid缓存架构通过复用众多的应用服务器节点,降低了系统的整体成本。 我们来看一下 Feed 的存 储 架构,微博的博文主要存在MySQL中。首先来看内容表,这个比较简单,每条内容一个索引,每天建一张表,其次看索引表,一共建了两级索引。首先想象一下用户场景,大部分用户刷微博的时候,看的是他关注所有人的微博,然后按时间来排序。仔细分析发现在这个场景下, 跟一个用户的自己的相关性很小了。所以在一级索引的时候会先根据关注的用户,取他们的前条微博ID,然后聚合排序。我们在做哈希(分库分表)的时候,同时考虑了按照UID哈希和按照时间维度。很业务和时间相关性很高的,今天的热点新闻,明天就没热度了,数据的冷热非常明显,这种场景就需要按照时间维度做分表,首先冷热数据做了分离(可以对冷热数据采用不同的存储方案来降低成本),其次, 很容止控制我数据库表的爆炸。像微博如果只按照用户维度区分,那么这个用户所有数据都在一张表里,这张表就是无限增长的,时间长了查询会越来越慢。二级索引,是我们里面一个比较特殊的场景,就是我要快速找到这个人所要发布的某一时段的微博时,通过二级索引快速定位。 分布式服务追踪系统 分布式追踪服务系统,当系统到千万级以后的时候,越来越庞杂,所解决的问题更偏向稳定性,性能和监控。刚才说用户只要有一个请求过来,你可以依赖你的服务RPC1、RPC2,你会发现RPC2又依赖RPC3、RPC4。分布式服务的时候一个痛点,就是说一个请求从用户过来之后,在后台不同的机器之间不停的调用并返回。 当你发现一个问题的时候,这些日志落在不同的机器上,你也不知道问题到底出在哪儿,各个服务之间互相隔离,互相之间没有建立关联。所以导致排查问题基本没有任何手段,就是出了问题没法儿解决。 我们要解决的问题,我们刚才说日志互相隔离,我们就要把它建立联系。建立联系我们就有一个请求ID,然后结合RPC框架, 服务治理功能。假设请求从客户端过来,其中包含一个ID 101,到服务A时仍然带有ID 101,然后调用RPC1的时候也会标识这是101 ,所以需要 一个唯一的 请求 ID 标识 递归迭代的传递到每一个 相关 节点。第二个,你做的时候,你不能说每个地方都加,对业务系统来说需要一个框架来完成这个工作, 这 个框架要 对业务 系 统 是最低侵入原 则 , 用 JAVA 的 话 就可以用 AOP,要做到零侵入的原则,就是对所有相关的中间件打点,从接口层组件(HTTP Client、HTTP Server)至到服务层组件(RPC Client、RPC Server),还有数据访问中间件的,这样业务系统只需要少量的配置信息就可以实现全链路监控 。为什么要用日志?服务化以后,每个服务可以用不同的开发语言, 考虑多种开发语言的兼容性 , 内部定 义标 准化的日志 是唯一且有效的办法。最后,如何构建基于GPS导航的路况监控?我们刚才讲分布式服务追踪。分布式服务追踪能解决的问题, 如果 单一用 户发现问题 后 , 可以通 过请 求 ID 快速找到 发 生 问题 的 节 点在什么,但是并没有解决如何发现问题。我们看现实中比较容易理解的道路监控,每辆车有GPS定位,我想看北京哪儿拥堵的时候,怎么做? 第一个 , 你肯定要知道每个 车 在什么位置,它走到哪儿了。其实可以说每个车上只要有一个标识,加上每一次流动的信息,就可以看到每个车流的位置和方向。 其次如何做 监 控和 报 警,我们怎么能了解道路的流量状况和负载,并及时报警。我们要定义这条街道多宽多高,单位时间可以通行多少辆车,这就是道路的容量。有了道路容量,再有道路的实时流量,我们就可以基于实习路况做预警? 对应于 分布式系 统 的话如何构建? 第一 , 你要 定义 每个服 务节 点它的 SLA A 是多少 ?SLA可以从系统的CPU占用率、内存占用率、磁盘占用率、QPS请求数等来定义,相当于定义系统的容量。 第二个 , 统计 线 上 动态 的流量,你要知道服务的平均QPS、最低QPS和最大QPS,有了流量和容量,就可以对系统做全面的监控和报警。 刚才讲的是理论,实际情况肯定比这个复杂。微博在春节的时候做许多活动,必须保障系统稳定,理论上你只要定义容量和流量就可以。但实际远远不行,为什么?有技术的因素,有人为的因素,因为不同的开发定义的流量和容量指标有主观性,很难全局量化标准,所以真正流量来了以后,你预先评估的系统瓶颈往往不正确。实际中我们在春节前主要采取了三个措施:第一,最简单的就是有降 级 的 预 案,流量超过系统容量后,先把哪些功能砍掉,需要有明确的优先级 。第二个, 线上全链路压测,就是把现在的流量放大到我们平常流量的五倍甚至十倍(比如下线一半的服务器,缩容而不是扩容),看看系统瓶颈最先发生在哪里。我们之前有一些例子,推测系统数据库会先出现瓶颈,但是实测发现是前端的程序先遇到瓶颈。第三,搭建在线 Docker 集群 , 所有业务共享备用的 Docker集群资源,这样可以极大的避免每个业务都预留资源,但是实际上流量没有增长造成的浪费。 总结 接下来说的是如何不停的学习和提升,这里以Java语言为例,首先, 一定要 理解 JAVA;第二步,JAVA完了以后,一定要 理 解 JVM;其次,还要 理解 操作系统;再次还是要了解一下 Design Pattern,这将告诉你怎么把过去的经验抽象沉淀供将来借鉴;还要学习 TCP/IP、 分布式系 统、数据结构和算法。
hiekay 2019-12-02 01:39:25 0 浏览量 回答数 0

问题

【精品问答】Java技术1000问(1)

为了方便Java开发者快速找到相关技术问题和答案,开发者社区策划了Java技术1000问内容,包含最基础的如何学Java、实践中遇到的技术问题、RocketMQ面试、Java容器部署实践等维度内容。 我们会以每...
问问小秘 2019-12-01 21:57:43 39926 浏览量 回答数 17

问题

dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?【Java问答学堂】49期

面试题 dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢? 面试官心理分析 继续深问吧,这些都是用 dubbo 必须知道的一些东西,你得知道基本原理,...
剑曼红尘 2020-07-02 17:35:03 17 浏览量 回答数 1

回答

你看的高性能mysql那本书么?我也测试过,要看下你的代码例子,如果你A事务insert提交了, B事务还是可以读取到的,如果你B在A提交之前先select一下,然后就不会读到了,一致性读  consistent read######你试试在同两个session窗中更改不同隔离级别测试,RC,RR都是乱的,RR有时候不能保证幻读,RC可重复读。set global transaction isolation level read committed或者repeatable read######Percona技术团队编写Taobao技术团队翻译的 高性能MySQL 开篇第一章就提到了ACID中的事务隔离性Isolation. my.cnf配置: [mysqld] transaction-isolation = REPEATABLE-READ 可选: READ-UNCOMMITTED(未提交读):其他事务可以看到当前事务中没有提交的修改,会导致脏读:一个事务读到另外一个事务还没有提交的数据. READ-COMMITTED(提交读):大多数数据库默认的隔离级别,避免了脏读,但会导致不可重复读:两次执行同样的查询,可能得到不一样的结果. REPEATABLE-READ(可重复读,默认):实现可重复读,保证同一事务多次读取同样的记录的结果是一致的.但仍避免不了幻读,不过InnoDB用多版本并发控制MVCC解决了幻读的问题. SERIALIZABLE(可串行化):通过强制事务串行化,避免出现幻读,简单说就是在读取的每一行数据上都加锁,所以可能会导致大量的超时和锁争用的问题,实际需要并发的场景很少使用. 所谓幻读,指的是当某个事务在读取某个范围的记录时,另外一个事务又在该范围内插入了新的记录. 当之前的事务再次读取该范围内的记录时,会产生幻行. InnoDB的MVCC,是通过在每行记录后保存两个隐藏的列来实现的. 这两个列,一个保存了行的创建时间,一个保存了行的过期时间(或删除时间). 其内存储的并不是实际的时间值,而是系统版本号. 每开始一个新的事务,系统版本号都会自动递增. 事务开始时刻的系统版本号会作为事务的版本号, 用来和查询到的每行记录的版本号进行比较. 下面看一下在默认的REPEATABLE-READ(可重复读)事务隔离级别下,MVCC的具体操作: ######回复 @炁月 : 同学,关于MVCC的版本可见性规则 你可以去查查资料了解下,并不是你说的那样,然后你再用show engine innodb status 看下事务那栏的信息,它会告诉你当前活跃事务 版本的可见性。。######你这个逼装的有弹性、有深度、有湿度,水也不少,可以说是非常漂亮、滑爽。但是少了那么一丝朴实,没有给我焕然一新的感觉,如果再加入那么一丝朴实的话,这个逼就无人能挡了,我希望在国际装逼总决赛的舞台上,看到焕然一新的你,好吗?我给你YES。 --via struct######eechen 自己对很多事情不了解就开始胡说八道,还不听对方的话。以德报怨,何以报德?我们尊重他,他却只会更加猖狂,还是先教会他社会的法则吧!via MikeManilone######OSC最讨厌的人: @eechen ,同意的右下角。via Bery http://my.oschina.net/bery/tweet/9658008######回复 @eechen : 不是什么东西都能粗略的呀,你这代码,真要拿来用的时候,那多出来的数据会加入你后续排序和计算欧几里得距离的过程,影响性能的呀。而且这种影响是毫无意义的浪费,要是写php都像你这么浪费,谁还敢用php. --via 张亦俊###### mvcc只是有版本号,具体幻不幻读得看实现。 要实现不幻读,需要加锁,影响并发性能,所以数据库在默认情况下允许幻读也是可以的。如果需要避免它,可以人工加锁select for update/lock table等 ######http://www.postgres.cn/docs/9.3/transaction-iso.html 。在PostgreSQL里,你可以请求四种可能的事务隔离级别中的任意一种。但是在内部, 实际上只有三种独立的隔离级别,分别对应读已提交,可重复读和可串行化。如果你选择了读未提交的级别, 实际上你获得的是读已提交,并且在PostgreSQL的可重复读实现中,幻读是不可能的,######回复 @Ambitor : 不过这种场景比较少,比如每增加一行,在触发器更新下统计结果。如果仅用数据库的mvcc,在统计的时候,如果有其它相关的DML,虽然确实没有幻读,但实际统计的结果是过时的,如果有其它计算需要依赖这个统计,就会造成错误。######回复 @Ambitor : 这样确实能在定义上避免幻读,但是实际使用的时候,多行操作如果不阻塞其它的DML语句,可能会出现过时的结果,所以一般都手动加锁来避免数据错误。###### 如果当前隔离级别 没有幻读 也就不是 repeatable-read了(不符合他的定义了) ###### Mysql从来没有实现过 MVVC######回复 @宏哥 : 我不是很精通这个,就说一些我观察到的片面,oracle是可以通过undo找回以前时间节点被DML的记录,如果开启archive log,就能找回任意时间节点的,但是唯独一个例外,如果一个表被DDL过,archive就丢失了。######回复 @宏哥 : oracle和mysql都不能回滚,都是隐式提交的 [抠鼻]######回复 @Ambitor : 查了一下, oracle不能回滚DDL######回复 @乌龟壳 : 查了一下,, 确实不可以, 好奇怪######回复 @宏哥 : 怎么回滚? [抠鼻]######那你为什么要用mysql?###### 引用来自“dy810810”的评论那你为什么要用mysql? 哈哈, mysql 和流感差不多, 搞web不来几次,都不行######就是因为mvcc,才有的幻读######mysql可重复读隔离模式下有间隙锁,但是还是没有完全解决幻读的问题.######这篇文章讲的还不错http://blog.sina.cn/dpool/blog/s/blog_499740cb0100ugs7.html?vt=4######呵呵,为嘛 可以解释清楚么?######MVCC是为了解决重复读的问题的,幻读是另外一回事了,因为每个DML操作都操作的是最新的page,而不会去更新MVCC中的undo快照去update,所以同时操作最新的page 只有锁能解决幻读问题啊。幻读其实是并发问题。而MVCC为什么能解决重复读,是因为当最新的page被某个事务锁了,那么另外一个事务在读的时候只会读之前当前可见最新的版本,并且始终读的是这个page 所以可以重复读###### MVCC也可以通过一些办法解决幻影读的问题,例如select之后将读取的范围映射为一个新的数据;这样当有另外一个事务去修改前事务查询范围时候,会检查到写冲突; 对于解决幻影读实现序列读的做法,mysql好像是基于严格的2PL协议做的,oracle好像是利用上面的办法解决; 其实不用上述方法,业务上在表定义的时候规避也是可以的,即一个事务中的操作如果存在因果关系,则原因为读的操作,只读一个记录,不读多条记录。
kun坤 2020-06-08 11:16:08 0 浏览量 回答数 0

回答

1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来。想抓取什么?这个由你来控制它咯。 比如它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超链接,那么它就可以爬到另一张网上来获取数据。这样,整个连在一起的大网对这之蜘蛛来说触手可及,分分钟爬下来不是事儿。 2.浏览网页的过程 在用户浏览网页的过程中,我们可能会看到许多好看的图片,比如 http://image.baidu.com/ ,我们会看到几张的图片以及百度搜索框,这个过程其实就是用户输入网址之后,经过DNS服务器,找到服务器主机,向服务器发出一个请求,服务器经过解析之后,发送给用户的浏览器 HTML、JS、CSS 等文件,浏览器解析出来,用户便可以看到形形色色的图片了。 因此,用户看到的网页实质是由 HTML 代码构成的,爬虫爬来的便是这些内容,通过分析和过滤这些 HTML 代码,实现对图片、文字等资源的获取。 3.URL的含义 URL,即统一资源定位符,也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。 URL的格式由三部分组成:①第一部分是协议(或称为服务方式)。②第二部分是存有该资源的主机IP地址(有时也包括端口号)。③第三部分是主机资源的具体地址,如目录和文件名等。爬虫爬取数据时必须要有一个目标的URL才可以获取数据,因此,它是爬虫获取数据的基本依据,准确理解它的含义对爬虫学习有很大帮助。 环境的配置 学习Python,当然少不了环境的配置,最初我用的是Notepad++,不过发现它的提示功能实在是太弱了,于是,在Windows下我用了 PyCharm,在Linux下我用了Eclipse for Python,另外还有几款比较优秀的IDE,大家可以参考这篇文章 学习Python推荐的IDE 。好的开发工具是前进的推进器,希望大家可以找到适合自己的IDE 作者:谢科链接:https://www.zhihu.com/question/20899988/answer/24923424来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 “入门”是良好的动机,但是可能作用缓慢。如果你手里或者脑子里有一个项目,那么实践起来你会被目标驱动,而不会像学习模块一样慢慢学习。另外如果说知识体系里的每一个知识点是图里的点,依赖关系是边的话,那么这个图一定不是一个有向无环图。因为学习A的经验可以帮助你学习B。因此,你不需要学习怎么样“入门”,因为这样的“入门”点根本不存在!你需要学习的是怎么样做一个比较大的东西,在这个过程中,你会很快地学会需要学会的东西的。当然,你可以争论说需要先懂python,不然怎么学会python做爬虫呢?但是事实上,你完全可以在做这个爬虫的过程中学习python :D看到前面很多答案都讲的“术”——用什么软件怎么爬,那我就讲讲“道”和“术”吧——爬虫怎么工作以及怎么在python实现。先长话短说summarize一下:你需要学习基本的爬虫工作原理基本的http抓取工具,scrapyBloom Filter: Bloom Filters by Example如果需要大规模网页抓取,你需要学习分布式爬虫的概念。其实没那么玄乎,你只要学会怎样维护一个所有集群机器能够有效分享的分布式队列就好。最简单的实现是python-rq: https://github.com/nvie/rqrq和Scrapy的结合:darkrho/scrapy-redis · GitHub后续处理,网页析取(grangier/python-goose · GitHub),存储(Mongodb)以下是短话长说:说说当初写的一个集群爬下整个豆瓣的经验吧。1)首先你要明白爬虫怎样工作。想象你是一只蜘蛛,现在你被放到了互联“网”上。那么,你需要把所有的网页都看一遍。怎么办呢?没问题呀,你就随便从某个地方开始,比如说人民日报的首页,这个叫initial pages,用$表示吧。在人民日报的首页,你看到那个页面引向的各种链接。于是你很开心地从爬到了“国内新闻”那个页面。太好了,这样你就已经爬完了俩页面(首页和国内新闻)!暂且不用管爬下来的页面怎么处理的,你就想象你把这个页面完完整整抄成了个html放到了你身上。突然你发现, 在国内新闻这个页面上,有一个链接链回“首页”。作为一只聪明的蜘蛛,你肯定知道你不用爬回去的吧,因为你已经看过了啊。所以,你需要用你的脑子,存下你已经看过的页面地址。这样,每次看到一个可能需要爬的新链接,你就先查查你脑子里是不是已经去过这个页面地址。如果去过,那就别去了。好的,理论上如果所有的页面可以从initial page达到的话,那么可以证明你一定可以爬完所有的网页。那么在python里怎么实现呢?很简单import Queue initial_page = "http://www.renminribao.com" url_queue = Queue.Queue()seen = set() seen.insert(initial_page)url_queue.put(initial_page) while(True): #一直进行直到海枯石烂 if url_queue.size()>0: current_url = url_queue.get() #拿出队例中第一个的url store(current_url) #把这个url代表的网页存储好 for next_url in extract_urls(current_url): #提取把这个url里链向的url if next_url not in seen: seen.put(next_url) url_queue.put(next_url) else: break 写得已经很伪代码了。所有的爬虫的backbone都在这里,下面分析一下为什么爬虫事实上是个非常复杂的东西——搜索引擎公司通常有一整个团队来维护和开发。2)效率如果你直接加工一下上面的代码直接运行的话,你需要一整年才能爬下整个豆瓣的内容。更别说Google这样的搜索引擎需要爬下全网的内容了。问题出在哪呢?需要爬的网页实在太多太多了,而上面的代码太慢太慢了。设想全网有N个网站,那么分析一下判重的复杂度就是N*log(N),因为所有网页要遍历一次,而每次判重用set的话需要log(N)的复杂度。OK,OK,我知道python的set实现是hash——不过这样还是太慢了,至少内存使用效率不高。通常的判重做法是怎样呢?Bloom Filter. 简单讲它仍然是一种hash的方法,但是它的特点是,它可以使用固定的内存(不随url的数量而增长)以O(1)的效率判定url是否已经在set中。可惜天下没有白吃的午餐,它的唯一问题在于,如果这个url不在set中,BF可以100%确定这个url没有看过。但是如果这个url在set中,它会告诉你:这个url应该已经出现过,不过我有2%的不确定性。注意这里的不确定性在你分配的内存足够大的时候,可以变得很小很少。一个简单的教程:Bloom Filters by Example注意到这个特点,url如果被看过,那么可能以小概率重复看一看(没关系,多看看不会累死)。但是如果没被看过,一定会被看一下(这个很重要,不然我们就要漏掉一些网页了!)。 [IMPORTANT: 此段有问题,请暂时略过]好,现在已经接近处理判重最快的方法了。另外一个瓶颈——你只有一台机器。不管你的带宽有多大,只要你的机器下载网页的速度是瓶颈的话,那么你只有加快这个速度。用一台机子不够的话——用很多台吧!当然,我们假设每台机子都已经进了最大的效率——使用多线程(python的话,多进程吧)。3)集群化抓取爬取豆瓣的时候,我总共用了100多台机器昼夜不停地运行了一个月。想象如果只用一台机子你就得运行100个月了...那么,假设你现在有100台机器可以用,怎么用python实现一个分布式的爬取算法呢?我们把这100台中的99台运算能力较小的机器叫作slave,另外一台较大的机器叫作master,那么回顾上面代码中的url_queue,如果我们能把这个queue放到这台master机器上,所有的slave都可以通过网络跟master联通,每当一个slave完成下载一个网页,就向master请求一个新的网页来抓取。而每次slave新抓到一个网页,就把这个网页上所有的链接送到master的queue里去。同样,bloom filter也放到master上,但是现在master只发送确定没有被访问过的url给slave。Bloom Filter放到master的内存里,而被访问过的url放到运行在master上的Redis里,这样保证所有操作都是O(1)。(至少平摊是O(1),Redis的访问效率见:LINSERT – Redis)考虑如何用python实现:在各台slave上装好scrapy,那么各台机子就变成了一台有抓取能力的slave,在master上装好Redis和rq用作分布式队列。代码于是写成#slave.py current_url = request_from_master()to_send = []for next_url in extract_urls(current_url): to_send.append(next_url) store(current_url);send_to_master(to_send) master.py distributed_queue = DistributedQueue()bf = BloomFilter() initial_pages = "www.renmingribao.com" while(True): if request == 'GET': if distributed_queue.size()>0: send(distributed_queue.get()) else: break elif request == 'POST': bf.put(request.url) 好的,其实你能想到,有人已经给你写好了你需要的:darkrho/scrapy-redis · GitHub4)展望及后处理虽然上面用很多“简单”,但是真正要实现一个商业规模可用的爬虫并不是一件容易的事。上面的代码用来爬一个整体的网站几乎没有太大的问题。但是如果附加上你需要这些后续处理,比如有效地存储(数据库应该怎样安排)有效地判重(这里指网页判重,咱可不想把人民日报和抄袭它的大民日报都爬一遍)有效地信息抽取(比如怎么样抽取出网页上所有的地址抽取出来,“朝阳区奋进路中华道”),搜索引擎通常不需要存储所有的信息,比如图片我存来干嘛...及时更新(预测这个网页多久会更新一次)
xuning715 2019-12-02 01:10:40 0 浏览量 回答数 0

问题

dubbo 的 spi 思想是什么?【Java问答学堂】50期

面试题 dubbo 的 spi 思想是什么? 面试官心理分析 继续深入问呗,前面一些基础性的东西问完了,确定你应该都 ok,了解 dubbo 的一些基本东西,那么问...
剑曼红尘 2020-07-07 09:48:29 25 浏览量 回答数 1

问题

HBase行级事务模型

转载自:http://www.hbase.group/article/12 HBase是BigTable的开源实现,事务模型也与BigTable一脉相承 – 仅支持行级别的事务。虽然Jeff Dean大神在接受...
pandacats 2019-12-20 19:51:58 0 浏览量 回答数 0

问题

最大限度利用 JavaScript 和 Ajax 性能:报错

简介 在 web 早期,优化 web 页面的性能通常意味着避免了使用不必要的 HTML 标记,将 JavaScript 代码量控制到最小,并尽量减小所有图片文件大小,否则上网冲浪者会...
kun坤 2020-06-05 22:56:50 0 浏览量 回答数 1

问题

【Java学习全家桶】1460道Java热门问题,阿里百位技术专家答疑解惑

阿里极客公益活动: 或许你挑灯夜战只为一道难题 或许你百思不解只求一个答案 或许你绞尽脑汁只因一种未知 那么他们来了,阿里系技术专家来云栖问答为你解答技术难题了 他们用户自己手中的技术来帮助用户成长 本次活动特邀百位阿里技术专家对Java常...
管理贝贝 2019-12-01 20:07:15 27612 浏览量 回答数 19

问题

生产环境中的 Redis 是怎么部署的?【Java问答】40期

面试题 生产环境中的 Redis 是怎么部署的? 面试官心理分析 看看你了解不了解你们公司的 Redis 生产集群的部署架构,如果你不了解,那么确实你就很失职了,你的 Redis ...
剑曼红尘 2020-06-18 08:28:34 33 浏览量 回答数 1

回答

FAQ: LNAMP是不是比LNMP更费内存? LNAMP中处理PHP程序的是Apache,LNMP处理PHP程序的是PHP-FPM,这二者占用的内存是差不多的。 LNAMP为什么会比LNMP更稳定? 原因同上,Apache是全世界流行了十几年的服务器程序,稳定性自然不在话下,而PHP-FPM是以PHP解释器引擎本身添加进了“服务器”的功能特性实现的,尤其在大负载情况下差异更为突出。 LNAMP为什么会比LAMP更高效? LNAMP中处理静态请求的是NGINX,LAMP中处理静态请求的是APACHE。 NGINX主要是以多线程的方式工作的,也就是它只需要一个进程,就可以处理大量的并发请求。而APACHE是以进程的方式工作,每处理一个请求,就需要占用一个进程。进程和线路的区别应该不需要多解释了。 APACHE也可以使用线程的方式,但是这样的话,它处理PHP解析也会同样使用多线程,流量稍高点的环境中会严重影响稳定性。 为什么不带面板? 原因1:本人不擅长写WEB程序。 原因2:任何带有面板的环境套件,对环境本身的修改都有很大的限制,比如流量达到几万IP的时候,你再想优化下环境,一旦有些配置你修改了,就可能会导致面板出问题。 ------------------------- Re:Re 引用第8楼imhua于2014-02-15 23:27发表的 Re : 以后可以考虑升级脚本,比如升级php,nginx等 在计划中 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第10楼xinde于2014-02-16 10:23发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装过程有错误 make[2]: *** No rule to make target `/usr/lib/libcurses.so', needed by `client/mysql'.  Stop. make[1]: *** [client/CMakeFiles/mysql.dir/all] Error 2 make: *** [all] Error 2 ....... 发行版,版本号,位数,这些能否提供下? 方便的话最好能PM下IP和密码。 错误是因为缺少 libcurses这个库,不同的系统里名字可能会不一样。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第13楼zikercn于2014-02-16 14:23发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : ln: creating symbolic link `/usr/bin/resolve_stack_dump': File exists /usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)' Error Occured! ....... 之前安装过一次了吧?再安装的话应该先重装系统。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第15楼金融之王于2014-02-16 21:00发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 :   现在安装PHP选择5.5,那以后PHP官方出5.6、5.7版本,怎么升级? yum -r install php或 yum update php 应该都行不通吧? ....... 第一,未来会加上升级的选项 第二,不要为了升级而升级,除非网站程序对新版功能有明确要求,或者为了修复漏洞。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第21楼haibin00于2014-02-18 23:45发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 整个服务怎么重启?我安装好后,从新启动了一下服务器,整个lanmap就不能用了,怎么把这些服务都启动尼? 一些常规的指令最好发出来,新手不太懂 具体的系统版本是什么? ------------------------- Re:回22楼服务器之家的帖子 引用第23楼haibin00于2014-02-19 01:04发表的 回22楼服务器之家的帖子 : Debian 6.0.6 64位 安装完,还把php升到5.4了,但我在控制台重启了服务器就不能用了 方便的话IP和密码PM给我看下 ------------------------- 回 25楼(haibin00) 的帖子 密码是错的,你加我QQ吧。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第28楼天之城于2014-02-20 13:41发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 怎么安装支持curl 已经支持了,不需要再安装。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第30楼天之城于2014-02-23 00:17发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装好后,有没有单独升级php版本的 暂时没有,以后会考虑增加这个功能。 ------------------------- 引用第32楼1351edu.com于2014-02-23 10:20发表的  : [attachment=49180] 我的装了后,发生502错误。 请联系签名的QQ ------------------------- 回 35楼(天之城) 的帖子 passwd www ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第37楼salesparty于2014-02-24 17:01发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : phpMyAdmin Version information: 3.3.10.5, old enough. 3.4版本之后开始大量使用AJAX,随之而来的是一堆BUG,以至自己带了一套BUG提交机制。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第39楼yipoo于2014-02-25 15:25发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 看起来很好,晚上安装测试下效果 欢迎反馈意见建议~ ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第42楼javin于2014-03-01 11:04发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 数据库的安装信息在哪里? 安装完会在屏幕显示,同时会保存在/root/setup.txt 。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第46楼thorbj于2014-03-02 14:21发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我的服务器突然遇到能ping通但是网站打不开的问题,请问能不能帮忙分析一下可能是什么原因。LAMP重新安装不行,服务器重装都不行 签名里有QQ ------------------------- Re:回47楼服务器之家的帖子 引用第49楼thorbj于2014-03-02 19:36发表的 回47楼服务器之家的帖子 : 这种服务是怎么收费的,必要时候还真感觉需要你们的帮助 依难度和需要的时间而定。需要的时候可以联系我QQ。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第51楼自言自语于2014-03-03 17:00发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : MySQL是什么版本? 5.5系列最新版 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第53楼自言自语于2014-03-03 18:56发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我看到安装完以后的FTP根目录是: /home/www/ 请问应该把数据盘挂载到哪个目录下? /home/www/ ------------------------- 回 57楼(马丁) 的帖子 是什么系统? ------------------------- 回 59楼(vagh) 的帖子 service mysqld stop chkconfig mysqld off 上面两个命令让它不启动就行了 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第67楼天之城于2014-03-08 09:48发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 低配云服务器CentOS 6.3 64位,1核512M内存,在编译php 的时候出现内存不足 virtual memory exhausted: Cannot allocate memorymake: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1 改了下,500M以下内存不编译fileinfo模块了。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第70楼幸福黄金于2014-03-14 10:07发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : mysql、apache、nginx、php 能不能自定义安装路径 这个没什么必要,编译安装的软件放到/usr/local/是比较规范的做法。 如果一定要修改,先把脚本下载回来,修改编译参数中的PREFIX即可。 ------------------------- Re:回71楼服务器之家的帖子 引用第72楼amoslee于2014-03-14 19:52发表的 回71楼服务器之家的帖子 : 楼主,同样出现67楼的问题,解决一下 能否PM下IP和密码我检查下? ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第74楼hun于2014-03-14 23:04发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 官方低配能用此环境不,装完占多少内存? 1,能用 2,在合理的范围内,开的APACHE进程越多,配的MYSQL缓存越大,用的内存越多,支撑的访问量越大。一般这么问的人都以为占的内存越少越好,这个以后有时间会开个帖子写一下。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第76楼amoslee于2014-03-15 12:42发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Error Occured! Current Work Dir: /tmp/dir/php-5.5.10 Command: ....... 能否PM下IP和密码? ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第78楼酷酷机器猫于2014-03-16 18:40发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主 你好。 我装好了,但是有个问题,我文件是二进制上传的,但是安装网站时显示不是二进制上传的。 在用其他一键安装包时没这个问题。 最简单的办法,打包上传然后解压缩。 我现在试过好几种上传方式都不行,是不是哪里设置有问题,帮忙回答下 非常感谢 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第80楼酷酷机器猫于2014-03-16 22:43发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 谢谢 LZ 上个问题解决了。 请问下有没有查看mysql ftp 帐号密码的命令?   类似: cat account.log cat /root/setup.txt ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第83楼灰色状态于2014-03-17 18:01发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 你这个和军哥的LNMP比起来,如何? 都在一楼写过了 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第85楼灰色状态于2014-03-17 20:30发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请问适合最低配置,1核,512M内存的使用不??? 可以 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第88楼不要作死于2014-03-18 01:24发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : echo '/dev/xvdb1  /home/www ext3    defaults    0  0' >> /etc/fstab 挂载数据盘到/home/www的命令是不是这样? ....... 文件内容不正确 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第91楼智子于2014-03-28 15:51发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : php可以选择,apache和mysql还有nginx这三个软件默认是什么版本 apache 2.2.x最新稳定版 mysql 5.5.x最新稳定版 nginx最新稳定版 安装程序会抓取官方数据分析版本和下载地址 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第99楼aa65535于2014-04-02 13:27发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Debian系统下无法使用 具体是什么错误? ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第99楼aa65535于2014-04-02 13:27发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Debian系统下无法使用 这种需求相对来说很小众,如果不需要MYSQL可以设置下不运行这个服务即可。 service mysqld stop chkconfig mysqld off ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第96楼阿莱于2014-04-01 14:15发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 这个安装的时候没有提示,不能让用户选择哪些装哪些不装。 ....... 安装的服务都在/usr/local/目录下,启动脚本在/etc/init.d/目录下。 建议关闭服务即可,没有必要删除文件,占用的硬盘不是很多。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第95楼坤叔于2014-03-31 20:33发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 环境组件官方源太慢了,强烈要求换成国内可靠站点镜像,或者server110自己的服务器! 安装程序会自动分析官方网站上的最新版本的下载地址,如果使用其他下载的地址不方便安装到最新版本。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第97楼lisso.me于2014-04-01 16:44发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : PHP 似乎没有启用PDO支持,请问如何启用? 感谢反馈,安装脚本里已经添加了相应的编译参数。 [attachment=51113] 如果不想重装的话,可以参考下这个链接 http://www.server110.com/php/201404/8711.html 注意下路径有可能不同。 ------------------------- Re:回101楼服务器之家的帖子 引用第107楼aa65535于2014-04-02 16:56发表的 回101楼服务器之家的帖子 : 一直循环出现这个错误: [code]gzip: /tmp/dir/mysql-5.5.37.tar.gz: No such file or directory tar: This does not look like a tar archive tar: Exiting with failure status due to previous errors ....... 你系统里设置的源没有axel,能否PM IP和密码我查看下。 如果只想解决问题的话,自己先安装上axel即可。 晚些时间我会修改下脚本在debian和ubuntu都用编译方式安装axel。 ------------------------- Re:ReRe回101楼服务器之家的帖子 引用第109楼aa65535于2014-04-02 17:35发表的 ReRe回101楼服务器之家的帖子 : 已经PM 发现了点问题,如果方便的话,能否重新装一下这个系统再提供下密码,感谢。 ------------------------- Re:ReReReRe回101楼服务器之家的帖子 引用第111楼aa65535于2014-04-02 19:35发表的 ReReReRe回101楼服务器之家的帖子 : 已经PM了 依赖关系的路径还有点问题,建议你先用CENTOS安装下。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第113楼蓝昼于2014-04-03 15:00发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 亲啊,不能搞个国内分流吗?这速度下到猴年马月啊,从中午11点半装到现在了~下午三点了。。。 这效率太差了,早丧失一键安装的意义了! ....... 恩,我也体会到了,这几天就会调整为在server110.com的服务器上下载。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第115楼haha231于2014-04-03 17:06发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Current Work Dir: /tmp/dir/php-5.4.26 Command: make -j 1 && make install Error: ....... 能否PM下IP和密码? ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第115楼haha231于2014-04-03 17:06发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Current Work Dir: /tmp/dir/php-5.4.26 Command: make -j 1 && make install Error: ....... 能否PM下IP和密码? ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第116楼漫步西溪于2014-04-03 17:43发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装楼主方法一键安装了环境,应该PHP5.2,如果要换成其他版本的PHP,怎么操作? 我是纯粹业余,不懂技术,还望楼主详细指导下 目前安装程序还不能更换PHP版本,最简单的方法就是重新安装一次。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第120楼blucejum于2014-04-03 21:45发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 显示说需要安装好几天才能装好。。。 这几天会修改为从www.server110.com的服务器上下载安装程序 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第115楼haha231于2014-04-03 17:06发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Current Work Dir: /tmp/dir/php-5.4.26 Command: make -j 1 && make install Error: ....... 问题已经修复,帐号密码在/root/setup.txt,也可以再重装下。 ------------------------- Re:ReReRe阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第126楼坤叔于2014-04-04 09:46发表的 ReReRe阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 需要怎么操作啊?没经验,还望详细解答 先重装系统 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第130楼haha231于2014-04-05 15:09发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装的ftp是什么版本啊,装在哪里,在哪里改设置? /etc/proftpd.conf 这个一般没必要修改 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第133楼坤叔于2014-04-09 20:24发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请问,为了便于今后管理升级等,若是主机两个盘(系统+数据),怎么设置系统和环境等放在系统盘,而网站数据在数据盘? 如果不经过额外的操作,环境 是安装在系统盘上的。 网站的目录设置在/home/www/,如果有数据盘,就挂到这个目录上。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第135楼漫步西溪于2014-04-10 01:17发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我也遇到这样的问题。 就按照楼主的站点案例: 1、数据盘挂的是/home/www/目录?而不是/home/www/server110.com/目录? 2、还有,是必须要先挂载数据盘、再site建立站点么?还是顺序先后不影响的? 3、另外,如果我有两个独立的网站数据放在数据盘,又该怎么操作? 1, /home/www/ 2,先挂载会省事些。如果是后挂载,先把 /home/www/下面的文件全部转移走,挂载硬盘后再移回来。 3,/home/www/a.com,/home/www/b.com。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第138楼坤叔于2014-04-11 00:55发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,请问我按照你的一键安装了环境组件后,能不能使用AMH面板的? 因为我不知道AMH面板是默认自动安装环境组件的, 还是说可以在已经安装环境组件的主机上可以使用 不能 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第141楼水芳网络于2014-04-12 22:52发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,你这个一键安装,装了phpMyAdmin,但是我不想用phpMyAdmin,请问怎么卸载或者删除啊?先谢谢楼主了 rm -f /usr/local/nginx/conf/extra/phpMyAdmin.conf rm -f /usr/local/httpd/conf/extra/httpd-pma.conf rm -rf /usr/local/app/phpMyAdmin/ service nginx restart service httpd restart ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第143楼漫步西溪于2014-04-13 01:49发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : [attachment=51492] 老板,这是什么情况? 环境是CentOS系统,按照1楼方法,PHP选择了5.5的, ....... mkdir /home/www/default/ mkdir /home/www/logs/ chown -R www.www /home/www/ service httpd restart ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第148楼水芳网络于2014-04-14 08:51发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,这个一键安装默认安装的mysql是MyISAM引擎,而且不支持InnoDB引擎,有没有必要修改? 如果你要用的网站程序明确要求使用 InnoDB需要在/etc/my.conf里把禁止innodb的选项删除 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第151楼贴息网于2014-04-14 12:44发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,按照你的步骤安装了,想问问,如何设置伪静态啊?就是把网站所有.php后缀的换成.html后缀的? 和apache环境的一样,用.htaccess。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第155楼samyang于2014-04-17 14:01发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装好后php的配置php.ini在/etc/下么,修改保存之后重启nginx么 重启apache ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第158楼酷酷机器猫于2014-04-18 17:31发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,请问下, 如何配置网站日志?     按照这个教程弄好后  /home/www/logs/ 下面是空的,是不是哪里需要设置或者开启? /usr/local/nginx/conf/vhost/ ------------------------- 回 169楼(haibin00) 的帖子 /root/setup.txt ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第168楼koki于2014-05-06 12:01发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 有个问题想问,安装好环境以后,我添加了xxx.com域名,相应得建立了文件夹,但是目前备案没下来,只能用ip访问,但是 ip访问得路径是/home/www/default/ 修改哪里让 ....... /usr/local/nginx/conf/nginx.conf /usr/local/httpd/conf/extra/httpd-vhosts.conf ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第181楼风沙渡于2014-05-23 13:59发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,我按你说的方法,安装后显示“Congratulations! Your Installation Is Complete.”,这样应该是成功了吧?在setup.txt里有phpmyadmin跟FTP信息,可这两个都用不了的,管理地址打开是错误页面的?分配的FTP连接超时,这个环境只能用在阿里云吗? 未知厂商的主机,由于系统模板的情况各种各样,有可能会出错,脚本一直在不停的改进兼容性,但这是一条没有头的路。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第189楼鑫森炭业于2014-06-11 10:15发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : php版本5.2.17,不能做个升级的嘛 暂时没有添加升级版本的功能,安装的时候可以指定版本,安装后就不能改了,暂时是这样。 ------------------------- Re:回190楼服务器之家的帖子 引用第191楼鑫森炭业于2014-06-13 09:05发表的 回190楼服务器之家的帖子 : 谢谢回复。我在安装的时候,并没有看到有设置php版本的地方啊? 那么,我现在卸载后再重新安装,哪里有提示设置php版本?谢谢! 仔细看一楼的帖子 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第193楼captaincoco于2014-06-13 09:56发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 如何添加二级子域名。。。。 和一级域名一样 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第195楼0971net于2014-06-14 23:34发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 网站日志怎么启动?在哪里查看 /usr/local/nginx/conf/vhost/域名.conf     #access_log /home/www/logs/域名.log nginx_log;     access_log off; 上面一行注释去掉,第二行删除。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第199楼666ydcom于2014-06-18 11:40发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装时选了php5.5的,现在想用回php5.3怎么做啊??急!急! 如果还没部署网站,可以先重装系统,再安装。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第200楼videotx于2014-06-18 14:27发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 看了下代码, 不错! 特别是download_file 递归处理, 很机智 多谢支持! ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第201楼大家看于2014-06-18 16:00发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我想请问下  Nginx 和 Apache 的最大连接数 上 怎么 算的呢 据我所知Apache 的最大连接数很小 NGINX 的连接数 到时随着配置的提升可以扩展 但是这么搭配 连接数是算 Apache 的 还是 Nginx 的 呢 我是新手 只是简单 问下 我不明白的 所以哪里有不恰当的地方 请多多包涵! Nginx处理请求用的是线程,所有静态和动态请求都会先经过Nginx,动态请求再由Nginx转发给Apache去处理,每一个动态请求在处理期间会占用一个Apache进程,所以影响比较大的是Apache的进程数量。 ------------------------- Re:回204楼服务器之家的帖子 引用第206楼多久啊看于2014-06-19 16:24发表的 回204楼服务器之家的帖子 : 老大 实在没有办法了 虽然试用 很好 但是 我主站用的PHPCMS 开伪静态以后 连连出错 或许是没研究明白吧  连页面都打不开了 没办法 看来 我还得用回去啊 不过真心觉得是不错! 不会是伪静态代码写错了吧 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第213楼多久啊看于2014-06-20 18:39发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我查找了一下 貌似没有mod_rewrite模块  要手动安装 但是我又不怎么会 好像要重新安装 Apache  才可以 rewrite模块默认已经加载 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第211楼医学生团队于2014-06-20 15:29发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 为什么用"www"这个账号连不上ftp,我用root这个用户就能连接上 错误提示是什么 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第217楼datassss于2014-06-22 00:00发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 如果想要改所有log的位置该怎么做? apache、php、nginx等的配置文件位置在哪里? http://www.server110.com/linux/201406/10673.html ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第219楼求知心切于2014-06-25 10:20发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 哥,mysql的初始密码是多少啊 /root/setup.txt ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第221楼求知心切于2014-06-25 17:23发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 为什么我修改了nginx的nginx.conf配置文件,但是还是访问那个主页呢,我想访问我的主页应该怎么办,楼主,求解   看一楼的帖子,不熟悉的东西不要乱改。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第223楼求知心切于2014-06-26 09:09发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 但是我按1楼的办法设置了,然后访问了ip,一直都是显示你的那个主页,我看已经有我写的文件夹,而且文件夹下面我已经放了代码了,但是就是访问不到我文件夹里面的东西,一直都是跳转到你们设置的default文件夹下的index了,我想要跳转到我的那个文件夹,应该怎么弄?我的命名不是你那个,这个有没有关系?[attachment=54955] 按这个操作一次 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第225楼joseph_lei于2014-06-26 10:26发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 如何增加多域名访问一个站? 按一楼的操作,多绑定一次 ------------------------- Re:回222楼服务器之家的帖子 引用第224楼求知心切于2014-06-26 09:11发表的 回222楼服务器之家的帖子 : 还有听说80端口可能要禁了,但是我看nginx的端口都只开了80的,这个可以手动加其他端口上去吗,不能的话80真的禁了的时候应该怎么处理? 第一,有备案,封80不可能 第二,端口写在配置文件里,可以改 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第231楼0971net于2014-06-27 17:05发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : CentOS-6.5 64位   兼容吗 一楼里测试过的意思就是安装成功,这也要解释,真无语了。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第233楼邻居王大爷于2014-06-27 21:03发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 按照你说的,都安装成功了,但是在我安装wordpress程序的时候那个数据库始终链接不上,试过localhost、127.0.0.1:1000、ip:1000、这些地址都试了,还是链接不上去,求解决..[attachment=55171] 1000是phpMyAdmin的端口,不是MySQL的端口,安装网站程序不要把这个端口加上,地址用localhost。 ------------------------- Re:回234楼服务器之家的帖子 引用第235楼邻居王大爷于2014-06-28 08:54发表的 回234楼服务器之家的帖子 : 数据库地址几乎都试过了,localhost也试过了,会出现502错误,我用你这个教程装了4遍了,前两遍没仔细看清帖子,是带环境装的,不能用,第三遍纯净安装的,成功了,然后数据库连接不上,以为是安装错误,就又重装系统,重装了一遍这个环境,结果还是出现这个问题。另外,我没有绑定域名,绑定的是ip,还有也试过用我其它服务器上的数据库地址,要么不成功,要么出现502。该怎么解决? [attachment=55176] 是阿里云吗 ------------------------- Re:回236楼服务器之家的帖子 引用第237楼邻居王大爷于2014-06-28 11:58发表的 回236楼服务器之家的帖子 : 不是阿里云 我也不好意思在这里问啊...centos6.5的 纯净版 IP和密码PM给我,我一会要出去,回来给你看下。 ------------------------- Re:回238楼服务器之家的帖子 引用第239楼邻居王大爷于2014-06-28 15:14发表的 回238楼服务器之家的帖子 : 密码发给你了,系统重装了一遍,又安装了一次你这个环境,暂时没有绑定网站,现在一切都是全新的,系统是centos 6.5的,你先安装个wordpress试试,看看能不能成功... Segmentation fault,无解,换成PHP5.5可以安装了。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第242楼求知心切于2014-06-30 14:40发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主大人,我按照你的方法安装了,安装之后访问是没有问题,访问的是你们的那个主页,但是我用那个site弄了我的程序进去之后访问的还是你们的主页,是需要加端口吗,还是说需要其他什么配置呢,我是site-》1  然后ortv3.COM,在home/www下面找到这个目录,然后在这个目录下面新建了一个index.php,但是访问的一直都是你们那个主页,请教 写的太乱了,估计是基本的使用都不懂,我说的使用是LINUX,不是LNAMP,慢慢学吧。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第244楼求知心切于2014-06-30 15:26发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我就是在centos下面按照您的方法安装了您配置的lanmp啊,安装完之后在windows网页访问linux地址是可以打开你的那个主页,但是我再按照你的方法(site)添加了新的站点,在新站点文件夹里面新建了另一个主页的页面,访问linux的ip地址时候的时候还是访问你的那个主页,没有访问到我的那个站点的主页,明白否? 你访问IP,就是那个页面,建不建新站点,它就在那里。 ------------------------- Domains: 这里可以域名也可以用IP,但是不能用IP+目录 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第251楼大家看于2014-07-05 20:45发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 今天安装了两遍 一直提示 collect2: ld returned 1 exit status make: *** [sapi/cli/php] Error 1 Error Occured! ....... 前面的信息也发出来 引用第252楼大家看于2014-07-05 20:47发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 而且我还想请问 数据库 可以单独 提供下载 安装么 你这个数据库 我之前 安装成功调试的时候 测试过 最大连接数 是可调的 不像 其他的 都调不了 无论初始配置是多大 都变不了 而你这个可以! 不能 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第255楼大家看于2014-07-06 10:57发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 今天又安装了一遍 还是 一样! IP和密码PM给我 ------------------------- Re:回256楼服务器之家的帖子 引用第258楼多久啊看于2014-07-06 11:45发表的 回256楼服务器之家的帖子 : IP 用户名 以及密码 已发! 测试了下,应该是你前面安装的环境导致的,先重装系统再安装。 ------------------------- 回 262楼(多久啊看) 的帖子 没影响 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第273楼长剑耿介于2014-07-22 00:35发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : [attachment=56935] 难道我打开方式不对? 如果要用手打,请看清每一个字符。看不好请用复制粘贴。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第276楼zhouyun于2014-07-23 00:18发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : [attachment=57007]为什么我安装screen的时候会报这个错?求大神解释 试一下apt-get update -y ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第280楼neutrino于2014-07-23 12:59发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 想删除就是/etc/init.d/下的nginx httpd ftp mysql,然后删掉/usr/local里的文件夹就行了? 最好重装系统 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第283楼ap5114i1j于2014-07-26 03:03发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : [attachment=57290] 出错了。 ....... yum list *ssl* 命令结果帖一下。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第285楼zong于2014-07-26 11:32发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : yum install php-pear 安装后,PHP版本回到php.5.3.3了。 不能这么玩,重装系统吧。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第288楼f2c-1于2014-07-26 22:27发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 这个安装脚本执行时间太长了,安装Mysql是源码安装,有必要吗? yum install mysql-server不就行了吗? 各有所爱 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第296楼shuangyutv于2014-08-01 13:59发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : mysql可以用navicate远程登录嘛?需要做什么修改? 添加一个主机为任意主机的管理帐号,安装后的root帐号只能从本地登录。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第298楼shuangyutv于2014-08-02 02:25发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请问一下楼主,我的网站是用Yii框架写的,部署在这个环境下,伪静态怎么设置啊? 我看你教程里面写的是“通过.htaccess文件设置,将规则代码写入到.htaccess文件后,上传到网站根目录即可”,但是我把以前放在LAMP环境下的.htaccess文件我传到根目录下就自动不见了。我想请教一下伪静态的具体配置方法 请说一下在哪里看到它自动不见了 ------------------------- Re:回299楼服务器之家的帖子 引用第301楼shuangyutv于2014-08-02 10:51发表的 回299楼服务器之家的帖子 : [attachment=57837] 附上.htaccess文件 看起来没什么问题 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第304楼啄木网于2014-08-03 20:03发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : phpmyadmin提示链接表的附加功能尚未激活。要查出原因,请点击此处。 好像要修改文件?菜鸟想问下linux里怎样修改啊…… 这个可以不用管,不影响使用,如果一定要管,百度下。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第309楼何林江于2014-08-05 09:36发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我补充两张图,显示%wa一直很高,最高的时候居然到了99.7%,但我的网站现在几乎都没流量,暂时都只有自己知道,两个站点用的是wordpress,另外一个是dedecms,并且也没什么定时任务之类的 [attachment=57960][attachment=57961] ....... 把Nginx日志打开,再出问题看日志。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第309楼何林江于2014-08-05 09:36发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我补充两张图,显示%wa一直很高,最高的时候居然到了99.7%,但我的网站现在几乎都没流量,暂时都只有自己知道,两个站点用的是wordpress,另外一个是dedecms,并且也没什么定时任务之类的 [attachment=57960][attachment=57961] .......    前面回过好像没了,再给你回一次吧。 第一个问题,务必添加swap。 http://www.server110.com/linux/201310/2924.html 第二,开Nginx的日志,再出问题看日志。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第315楼may111于2014-08-08 11:38发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : [attachment=58217] 这是什么问题 显示502错误,访问phpmyadmin也是502 /usr/local/httpd/conf/httpd.conf,94行 你给改了吧 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第318楼horek于2014-08-09 10:29发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 您的LNAMP怎么打开phpMyAdmin 麻烦您告知一下 谢谢了 看/root/setup.txt ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第321楼xiaoxialone于2014-08-10 04:04发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 你好。楼主。环境已经配置成功,一开始安装WORDPRESS的时候会提示502 然后就直接改了配置文件,安装成功了。 但是问题wordpress打开插件以及外观两个选项会跳502错误。还请楼主指教下。 http://bbs.aliyun.com/read/164642.html ------------------------- 11111111 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第332楼11号猫弟于2014-08-16 21:49发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我之前使用的这一套脚本,安装完以后使用了一段时间,挺好用的,但是现在我需要在我的服务器上部署gitlab,还是用域名指向的这个ip,但是被这个脚本拦截到了默认路径,这个时候要怎么做才能让该域名绕开这个脚本呢? 把域名绑定到要用的目录上 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第338楼kagami于2014-08-22 09:09发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 为什么我安装不了呢 连不上server110 你的IP是什么 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第339楼黄靖于2014-08-23 14:29发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 如何将默认的404页面改成自己的404呢 用.htaccess设置,百度下代码 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第345楼ylopt于2014-08-26 10:58发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 刚刚安装了,怎么就显示502呢 下载文件的服务器正在重装系统,等下再装吧。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第353楼00星辰00于2014-08-29 22:19发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 :      请教下 是不是这个环境只能添加一个站点  添加了3个站点只有第一个生效可以访问 后面2个都是报错    没有限制 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第359楼007互联于2014-08-31 15:12发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装完之后www登陆FTP登陆不了是什么原因? 看错误提示 ------------------------- Re:回 119楼(服务器之家) 的帖子 引用第361楼灬兵于2014-08-31 19:16发表的 回 119楼(服务器之家) 的帖子 : 楼主指的是重新安装脚本程序 还是单独安装自己想要的PHP版本。 先重装系统再执行安装脚本 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第367楼debao.wang于2014-09-03 12:30发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 如果网站没有采用静态化处理,是php写的动态网站,那么LNAMP相比LAMP优势就不那么明显了。 显然你没有搞明白访问一个网页时这其中最其本的技术原理。 以Discuz官方论坛为例,一次浏览器访问,产生的HTTP请求约60次,动态请求只有2次,剩下的全部都是静态请求,这些静态请求对于Nginx和Apache的资源消耗是天壤之别。 [attachment=60415] ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第369楼dj电音吧于2014-09-03 14:43发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装了脚本基本上很顺畅,现在有个问题出现,就是大附件上传出现servers(io)error Nginx和php都设置了支持上传最大512m上传100m以下的就成功,大于的就出现错误。PHP几项的设置应该没问题的。不知道ngunx和apache哪还有会影响文件上传的。请指教!另外我试过设置nginx的一项连接时间为600秒,出现上传进度1%到10%左右会进度弹回1%重复几次后才出现以上错误!请大神指点迷津啊! 只从这些信息的话,判断不出来。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第388楼hap于2014-09-18 08:34发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Error: configure: warning: bison versions supported for regeneration of the Zend/PHP parsers: 1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1 (found: 3.0.2). configure: warning: flex versions supported for regeneration of the Zend/PHP parsers: 2.5.4  (found: 2.5.35) configure: error: freetype.h not found. ....... CentOS yum install freetype-devel Debian apt-get install libfreetype6-dev ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第390楼timedia于2014-09-19 12:46发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 装好也设置好,未提示任何错误 但ftp、站点均无法访问 哪个系统版本?哪个PHP版本? ------------------------- Re:ReReRe阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第394楼timedia于2014-09-22 11:04发表的 ReReRe阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : centos 6.5 PHP 5.3 5.4 5.5 都试过。。。 ps auxf命令结果帖一下 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第400楼eingxin于2014-09-24 15:23发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 话说这个环境那都好,就是跑Discuz 3.2的时候出现图片缓存,怎么都不刷新。快疯掉了 帖个网址看看 ------------------------- Re:回楼主服务器之家的帖子 引用第403楼百般幸运于2014-09-26 09:56发表的 回楼主服务器之家的帖子 : 支持内网安装么? 需要外网下载文件 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第405楼gudianbook于2014-09-27 08:07发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : mysqladmin -u root password '  命令失败  mysqladmin -u root password ' service httpd start  不行 Starting httpd: (98)Address already in use: make_sock: could not bind to address 127.0.0.1:8080 no listening sockets available, shutting down ....... 安装后不需要再执行mysqladmin,你应该还做了一些其他不应该做的操作,具体是什么就不得而知了。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第406楼wjw8801于2014-09-29 22:24发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 问个小白问题:最后那个SIte命令可以建站的是什么工具里有的命令? 这个是我自写的管理脚本 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第409楼stanper于2014-10-03 11:52发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 你好,请问安装完后,phpmyadmin目录在什么位置? /usr/local/app/phpMyAdmin/ ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第412楼wjw8801于2014-10-06 17:48发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 这个可以手动升级Mysql和nginx还有httpd吗? 只要会搞就OK ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第415楼wide于2014-10-09 23:41发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请教问题: 采用阿里云,为了规避防火墙只能对外使用80和8080端口访问的限制。 将ssh端口从22改用8080。 在更改之前查看了 webcache 监听用 8080 端口,例如: /etc/services:webcache    8080/tcp            # WWW caching service ....... 为了规避防火墙只能对外使用80和8080端口访问的限制,这条不而立,出发点就错了。 ------------------------- Re:回楼主服务器之家的帖子 引用第420楼p584578656于2014-10-11 19:10发表的 回楼主服务器之家的帖子 : 你好,请问一下,网站日志在哪个文件夹?我在FTP里面没有看到有生成的访问日志啊   默认没有记录日志,需要的话看一下Nginx配置文件。 ------------------------- Re:回421楼服务器之家的帖子 引用第422楼p584578656于2014-10-12 09:24发表的 回421楼服务器之家的帖子 : 需要修改配置文件来生成日志吗?Nginx和Apache都需要修改吗? 只需要修改NGINX,网站的配置文件里已经有代码了,但是默认被注释掉,把注释去掉就可以了。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第429楼xiumuzjq于2014-10-26 21:58发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 您好,我安装了php5.3的脚本但现在因为想装个swoole扩展,要求至少5.3.10的php版本,请问大神,这个可以升级吗?该怎么操作 你可以用php -v看看现在的版本 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第461楼富余劳动力于2014-11-07 11:13发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请问大神 这套东西,不是阿里云可以用吗? 我们公司自己租的那种服务器能装吗 大部分都可以 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第511楼高山流水于2014-12-22 10:05发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请问如何开启服务器的gzip压缩呢?是不是Nginx和Apache都要改配置,还是只需要改一个?新手不太懂 还有,建议找个地方开一页FAQ,我把这帖子35页翻了一遍,好费劲啊…… [url=http://bbs.aliyun.com/job.php?action=topost&tid=151729&pid=600353][/url] 默认已经开启了gzip,不需要改动。
云代维 2019-12-02 02:41:55 0 浏览量 回答数 0

回答

初识 MyBatis MyBatis 是第一个支持自定义 SQL、存储过程和高级映射的类持久框架。MyBatis 消除了大部分 JDBC 的样板代码、手动设置参数以及检索结果。MyBatis 能够支持简单的 XML 和注解配置规则。使 Map 接口和 POJO 类映射到数据库字段和记录。 MyBatis 的特点 那么 MyBatis 具有什么特点呢?或许我们可以从如下几个方面来描述 MyBatis 中的 SQL 语句和主要业务代码分离,我们一般会把 MyBatis 中的 SQL 语句统一放在 XML 配置文件中,便于统一维护。 解除 SQL 与程序代码的耦合,通过提供 DAO 层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。SQL 和代码的分离,提高了可维护性。 MyBatis 比较简单和轻量 本身就很小且简单。没有任何第三方依赖,只要通过配置 jar 包,或者如果你使用 Maven 项目的话只需要配置 Maven 以来就可以。易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。 屏蔽样板代码 MyBatis 回屏蔽原始的 JDBC 样板代码,让你把更多的精力专注于 SQL 的书写和属性-字段映射上。 编写原生 SQL,支持多表关联 MyBatis 最主要的特点就是你可以手动编写 SQL 语句,能够支持多表关联查询。 提供映射标签,支持对象与数据库的 ORM 字段关系映射 ORM 是什么?对象关系映射(Object Relational Mapping,简称ORM) ,是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。 提供 XML 标签,支持编写动态 SQL。 你可以使用 MyBatis XML 标签,起到 SQL 模版的效果,减少繁杂的 SQL 语句,便于维护。 MyBatis 整体架构 MyBatis 最上面是接口层,接口层就是开发人员在 Mapper 或者是 Dao 接口中的接口定义,是查询、新增、更新还是删除操作;中间层是数据处理层,主要是配置 Mapper -> XML 层级之间的参数映射,SQL 解析,SQL 执行,结果映射的过程。上述两种流程都由基础支持层来提供功能支撑,基础支持层包括连接管理,事务管理,配置加载,缓存处理等。 接口层 在不与Spring 集成的情况下,使用 MyBatis 执行数据库的操作主要如下: InputStream is = Resources.getResourceAsStream("myBatis-config.xml"); SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); SqlSessionFactory factory = builder.build(is); sqlSession = factory.openSession(); 其中的SqlSessionFactory,SqlSession是 MyBatis 接口的核心类,尤其是 SqlSession,这个接口是MyBatis 中最重要的接口,这个接口能够让你执行命令,获取映射,管理事务。 数据处理层 配置解析 在 Mybatis 初始化过程中,会加载 mybatis-config.xml 配置文件、映射配置文件以及 Mapper 接口中的注解信息,解析后的配置信息会形成相应的对象并保存到 Configration 对象中。之后,根据该对象创建SqlSessionFactory 对象。待 Mybatis 初始化完成后,可以通过 SqlSessionFactory 创建 SqlSession 对象并开始数据库操作。 SQL 解析与 scripting 模块 Mybatis 实现的动态 SQL 语句,几乎可以编写出所有满足需要的 SQL。 Mybatis 中 scripting 模块会根据用户传入的参数,解析映射文件中定义的动态 SQL 节点,形成数据库能执行的SQL 语句。 SQL 执行 SQL 语句的执行涉及多个组件,包括 MyBatis 的四大核心,它们是: Executor、StatementHandler、ParameterHandler、ResultSetHandler。SQL 的执行过程可以用下面这幅图来表示 MyBatis 层级结构各个组件的介绍(这里只是简单介绍,具体介绍在后面): SqlSession: ,它是 MyBatis 核心 API,主要用来执行命令,获取映射,管理事务。接收开发人员提供 Statement Id 和参数。并返回操作结果。Executor :执行器,是 MyBatis 调度的核心,负责 SQL 语句的生成以及查询缓存的维护。StatementHandler : 封装了JDBC Statement 操作,负责对 JDBC Statement 的操作,如设置参数、将Statement 结果集转换成 List 集合。ParameterHandler : 负责对用户传递的参数转换成 JDBC Statement 所需要的参数。ResultSetHandler : 负责将 JDBC 返回的 ResultSet 结果集对象转换成 List 类型的集合。TypeHandler : 用于 Java 类型和 JDBC 类型之间的转换。MappedStatement : 动态 SQL 的封装SqlSource : 表示从 XML 文件或注释读取的映射语句的内容,它创建将从用户接收的输入参数传递给数据库的 SQL。Configuration: MyBatis 所有的配置信息都维持在 Configuration 对象之中。 基础支持层 反射模块 Mybatis 中的反射模块,对 Java 反射进行了很好的封装,提供了简易的 API,方便上层调用,并且对反射操作进行了一系列的优化,比如,缓存了类的 元数据(MetaClass)和对象的元数据(MetaObject),提高了反射操作的性能。 类型转换模块 Mybatis 的别名机制,能够简化配置文件,该机制是类型转换模块的主要功能之一。类型转换模块的另一个功能是实现 JDBC 类型与 Java 类型的转换。在 SQL 语句绑定参数时,会将数据由 Java 类型转换成 JDBC 类型;在映射结果集时,会将数据由 JDBC 类型转换成 Java 类型。 日志模块 在 Java 中,有很多优秀的日志框架,如 Log4j、Log4j2、slf4j 等。Mybatis 除了提供了详细的日志输出信息,还能够集成多种日志框架,其日志模块的主要功能就是集成第三方日志框架。 资源加载模块 该模块主要封装了类加载器,确定了类加载器的使用顺序,并提供了加载类文件和其它资源文件的功能。 解析器模块 该模块有两个主要功能:一个是封装了 XPath,为 Mybatis 初始化时解析 mybatis-config.xml配置文件以及映射配置文件提供支持;另一个为处理动态 SQL 语句中的占位符提供支持。 数据源模块 Mybatis 自身提供了相应的数据源实现,也提供了与第三方数据源集成的接口。数据源是开发中的常用组件之一,很多开源的数据源都提供了丰富的功能,如连接池、检测连接状态等,选择性能优秀的数据源组件,对于提供ORM 框架以及整个应用的性能都是非常重要的。 事务管理模块 一般地,Mybatis 与 Spring 框架集成,由 Spring 框架管理事务。但 Mybatis 自身对数据库事务进行了抽象,提供了相应的事务接口和简单实现。 缓存模块 Mybatis 中有一级缓存和二级缓存,这两级缓存都依赖于缓存模块中的实现。但是需要注意,这两级缓存与Mybatis 以及整个应用是运行在同一个 JVM 中的,共享同一块内存,如果这两级缓存中的数据量较大,则可能影响系统中其它功能,所以需要缓存大量数据时,优先考虑使用 Redis、Memcache 等缓存产品。 Binding 模块 在调用 SqlSession 相应方法执行数据库操作时,需要制定映射文件中定义的 SQL 节点,如果 SQL 中出现了拼写错误,那就只能在运行时才能发现。为了能尽早发现这种错误,Mybatis 通过 Binding 模块将用户自定义的Mapper 接口与映射文件关联起来,系统可以通过调用自定义 Mapper 接口中的方法执行相应的 SQL 语句完成数据库操作,从而避免上述问题。注意,在开发中,我们只是创建了 Mapper 接口,而并没有编写实现类,这是因为 Mybatis 自动为 Mapper 接口创建了动态代理对象。 MyBatis 核心组件 在认识了 MyBatis 并了解其基础架构之后,下面我们来看一下 MyBatis 的核心组件,就是这些组件实现了从 SQL 语句到映射到 JDBC 再到数据库字段之间的转换,执行 SQL 语句并输出结果集。首先来认识 MyBatis 的第一个核心组件 SqlSessionFactory 对于任何框架而言,在使用该框架之前都要经历过一系列的初始化流程,MyBatis 也不例外。MyBatis 的初始化流程如下 String resource = "org/mybatis/example/mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); sqlSessionFactory.openSession(); 上述流程中比较重要的一个对象就是SqlSessionFactory,SqlSessionFactory 是 MyBatis 框架中的一个接口,它主要负责的是 MyBatis 框架初始化操作 为开发人员提供SqlSession 对象 SqlSessionFactory 有两个实现类,一个是 SqlSessionManager 类,一个是 DefaultSqlSessionFactory 类 DefaultSqlSessionFactory : SqlSessionFactory 的默认实现类,是真正生产会话的工厂类,这个类的实例的生命周期是全局的,它只会在首次调用时生成一个实例(单例模式),就一直存在直到服务器关闭。 SqlSessionManager : 已被废弃,原因大概是: SqlSessionManager 中需要维护一个自己的线程池,而使用MyBatis 更多的是要与 Spring 进行集成,并不会单独使用,所以维护自己的 ThreadLocal 并没有什么意义,所以 SqlSessionManager 已经不再使用。 ####SqlSessionFactory 的执行流程 下面来对 SqlSessionFactory 的执行流程来做一个分析 首先第一步是 SqlSessionFactory 的创建 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); 1 从这行代码入手,首先创建了一个 SqlSessionFactoryBuilder 工厂,这是一个建造者模式的设计思想,由 builder 建造者来创建 SqlSessionFactory 工厂 然后调用 SqlSessionFactoryBuilder 中的 build 方法传递一个InputStream 输入流,Inputstream 输入流中就是你传过来的配置文件 mybatis-config.xml,SqlSessionFactoryBuilder 根据传入的 InputStream 输入流和environment、properties属性创建一个XMLConfigBuilder对象。SqlSessionFactoryBuilder 对象调用XMLConfigBuilder 的parse()方法,流程如下。 XMLConfigBuilder 会解析/configuration标签,configuration 是 MyBatis 中最重要的一个标签,下面流程会介绍 Configuration 标签。 MyBatis 默认使用 XPath 来解析标签,关于 XPath 的使用,参见 https://www.w3school.com.cn/xpath/index.asp 在 parseConfiguration 方法中,会对各个在 /configuration 中的标签进行解析 重要配置 说一下这些标签都是什么意思吧 properties,外部属性,这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递。 <properties> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/test" /> <property name="username" value="root" /> <property name="password" value="root" /> </properties> 一般用来给 environment 标签中的 dataSource 赋值 <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> 还可以通过外部属性进行配置,但是我们这篇文章以原理为主,不会介绍太多应用层面的操作。 settings ,MyBatis 中极其重要的配置,它们会改变 MyBatis 的运行时行为。 settings 中配置有很多,具体可以参考 https://mybatis.org/mybatis-3/zh/configuration.html#settings 详细了解。这里介绍几个平常使用过程中比较重要的配置 一般使用如下配置 <settings> <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="true"/> </settings> typeAliases,类型别名,类型别名是为 Java 类型设置的一个名字。 它只和 XML 配置有关。 <typeAliases> <typeAlias alias="Blog" type="domain.blog.Blog"/> </typeAliases> 当这样配置时,Blog 可以用在任何使用 domain.blog.Blog 的地方。 typeHandlers,类型处理器,无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时, 都会用类型处理器将获取的值以合适的方式转换成 Java 类型。 在 org.apache.ibatis.type 包下有很多已经实现好的 TypeHandler,可以参考如下 你可以重写类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型。 具体做法为:实现 org.apache.ibatis.type.TypeHandler 接口, 或继承一个很方便的类 org.apache.ibatis.type.BaseTypeHandler, 然后可以选择性地将它映射到一个 JDBC 类型。 objectFactory,对象工厂,MyBatis 每次创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成。默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认构造方法,要么在参数映射存在的时候通过参数构造方法来实例化。如果想覆盖对象工厂的默认行为,则可以通过创建自己的对象工厂来实现。 public class ExampleObjectFactory extends DefaultObjectFactory { public Object create(Class type) { return super.create(type); } public Object create(Class type, List constructorArgTypes, List constructorArgs) { return super.create(type, constructorArgTypes, constructorArgs); } public void setProperties(Properties properties) { super.setProperties(properties); } public boolean isCollection(Class type) { return Collection.class.isAssignableFrom(type); } } 然后需要在 XML 中配置此对象工厂 <objectFactory type="org.mybatis.example.ExampleObjectFactory"> <property name="someProperty" value="100"/> </objectFactory> plugins,插件开发,插件开发是 MyBatis 设计人员给开发人员留给自行开发的接口,MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。MyBatis 允许使用插件来拦截的方法调用包括:Executor、ParameterHandler、ResultSetHandler、StatementHandler 接口,这几个接口也是 MyBatis 中非常重要的接口,我们下面会详细介绍这几个接口。 environments,MyBatis 环境配置,MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中。例如,开发、测试和生产环境需要有不同的配置;或者想在具有相同 Schema 的多个生产数据库中 使用相同的 SQL 映射。 这里注意一点,虽然 environments 可以指定多个环境,但是 SqlSessionFactory 只能有一个,为了指定创建哪种环境,只要将它作为可选的参数传递给 SqlSessionFactoryBuilder 即可。 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment, properties); databaseIdProvider ,数据库厂商标示,MyBatis 可以根据不同的数据库厂商执行不同的语句,这种多厂商的支持是基于映射语句中的 databaseId 属性。 <databaseIdProvider type="DB_VENDOR"> <property name="SQL Server" value="sqlserver"/> <property name="DB2" value="db2"/> <property name="Oracle" value="oracle" /> </databaseIdProvider> mappers,映射器,这是告诉 MyBatis 去哪里找到这些 SQL 语句,mappers 映射配置有四种方式 上面的一个个属性都对应着一个解析方法,都是使用 XPath 把标签进行解析,解析完成后返回一个 DefaultSqlSessionFactory 对象,它是 SqlSessionFactory 的默认实现类。这就是 SqlSessionFactoryBuilder 的初始化流程,通过流程我们可以看到,初始化流程就是对一个个 /configuration 标签下子标签的解析过程。 SqlSession 在 MyBatis 初始化流程结束,也就是 SqlSessionFactoryBuilder -> SqlSessionFactory 的获取流程后,我们就可以通过 SqlSessionFactory 对象得到 SqlSession 然后执行 SQL 语句了。具体来看一下这个过程‘ 在 SqlSessionFactory.openSession 过程中我们可以看到,会调用到 DefaultSqlSessionFactory 中的 openSessionFromDataSource 方法,这个方法主要创建了两个与我们分析执行流程重要的对象,一个是 Executor 执行器对象,一个是 SqlSession 对象。执行器我们下面会说,现在来说一下 SqlSession 对象 SqlSession 对象是 MyBatis 中最重要的一个对象,这个接口能够让你执行命令,获取映射,管理事务。SqlSession 中定义了一系列模版方法,让你能够执行简单的 CRUD 操作,也可以通过 getMapper 获取 Mapper 层,执行自定义 SQL 语句,因为 SqlSession 在执行 SQL 语句之前是需要先开启一个会话,涉及到事务操作,所以还会有 commit、 rollback、close 等方法。这也是模版设计模式的一种应用。 MapperProxy MapperProxy 是 Mapper 映射 SQL 语句的关键对象,我们写的 Dao 层或者 Mapper 层都是通过 MapperProxy 来和对应的 SQL 语句进行绑定的。下面我们就来解释一下绑定过程 这就是 MyBatis 的核心绑定流程,我们可以看到 SqlSession 首先调用 getMapper 方法,我们刚才说到 SqlSession 是大哥级别的人物,只定义标准(有一句话是怎么说的来着,一流的企业做标准,二流的企业做品牌,三流的企业做产品)。 SqlSession 不愿意做的事情交给 Configuration 这个手下去做,但是 Configuration 也是有小弟的,它不愿意做的事情直接甩给小弟去做,这个小弟是谁呢?它就是 MapperRegistry,马上就到核心部分了。MapperRegistry 相当于项目经理,项目经理只从大面上把握项目进度,不需要知道手下的小弟是如何工作的,把任务完成了就好。最终真正干活的还是 MapperProxyFactory。看到这段代码 Proxy.newProxyInstance ,你是不是有一种恍然大悟的感觉,如果你没有的话,建议查阅一下动态代理的文章,这里推荐一篇 (https://www.jianshu.com/p/95970b089360) 也就是说,MyBatis 中 Mapper 和 SQL 语句的绑定正是通过动态代理来完成的。 通过动态代理,我们就可以方便的在 Dao 层或者 Mapper 层定义接口,实现自定义的增删改查操作了。那么具体的执行过程是怎么样呢?上面只是绑定过程,别着急,下面就来探讨一下 SQL 语句的执行过程。 MapperProxyFactory 会生成代理对象,这个对象就是 MapperProxy,最终会调用到 mapperMethod.execute 方法,execute 方法比较长,其实逻辑比较简单,就是判断是 插入、更新、删除 还是 查询 语句,其中如果是查询的话,还会判断返回值的类型,我们可以点进去看一下都是怎么设计的。 很多代码其实可以忽略,只看我标出来的重点就好了,我们可以看到,不管你前面经过多少道关卡处理,最终都逃不过 SqlSession 这个老大制定的标准。 我们以 selectList 为例,来看一下下面的执行过程。 这是 DefaultSqlSession 中 selectList 的代码,我们可以看到出现了 executor,这是什么呢?我们下面来解释。 Executor 还记得我们之前的流程中提到了 Executor(执行器) 这个概念吗?我们来回顾一下它第一次出现的位置。 由 Configuration 对象创建了一个 Executor 对象,这个 Executor 是干嘛的呢?下面我们就来认识一下 Executor 的继承结构 每一个 SqlSession 都会拥有一个 Executor 对象,这个对象负责增删改查的具体操作,我们可以简单的将它理解为 JDBC 中 Statement 的封装版。 也可以理解为 SQL 的执行引擎,要干活总得有一个发起人吧,可以把 Executor 理解为发起人的角色。 首先先从 Executor 的继承体系来认识一下 如上图所示,位于继承体系最顶层的是 Executor 执行器,它有两个实现类,分别是BaseExecutor和 CachingExecutor。 BaseExecutor 是一个抽象类,这种通过抽象的实现接口的方式是适配器设计模式之接口适配 的体现,是Executor 的默认实现,实现了大部分 Executor 接口定义的功能,降低了接口实现的难度。BaseExecutor 的子类有三个,分别是 SimpleExecutor、ReuseExecutor 和 BatchExecutor。 SimpleExecutor : 简单执行器,是 MyBatis 中默认使用的执行器,每执行一次 update 或 select,就开启一个Statement 对象,用完就直接关闭 Statement 对象(可以是 Statement 或者是 PreparedStatment 对象) ReuseExecutor : 可重用执行器,这里的重用指的是重复使用 Statement,它会在内部使用一个 Map 把创建的Statement 都缓存起来,每次执行 SQL 命令的时候,都会去判断是否存在基于该 SQL 的 Statement 对象,如果存在 Statement 对象并且对应的 connection 还没有关闭的情况下就继续使用之前的 Statement 对象,并将其缓存起来。因为每一个 SqlSession 都有一个新的 Executor 对象,所以我们缓存在 ReuseExecutor 上的 Statement作用域是同一个 SqlSession。 BatchExecutor : 批处理执行器,用于将多个 SQL 一次性输出到数据库 CachingExecutor: 缓存执行器,先从缓存中查询结果,如果存在就返回之前的结果;如果不存在,再委托给Executor delegate 去数据库中取,delegate 可以是上面任何一个执行器。 Executor 的创建和选择 我们上面提到 Executor 是由 Configuration 创建的,Configuration 会根据执行器的类型创建,如下 这一步就是执行器的创建过程,根据传入的 ExecutorType 类型来判断是哪种执行器,如果不指定 ExecutorType ,默认创建的是简单执行器。它的赋值可以通过两个地方进行赋值: 可以通过 标签来设置当前工程中所有的 SqlSession 对象使用默认的 Executor <settings> <!--取值范围 SIMPLE, REUSE, BATCH --> <setting name="defaultExecutorType" value="SIMPLE"/> </settings> 另外一种直接通过Java对方法赋值的方式 session = factory.openSession(ExecutorType.BATCH); Executor 的具体执行过程 Executor 中的大部分方法的调用链其实是差不多的,下面是深入源码分析执行过程,如果你没有时间或者暂时不想深入研究的话,给你下面的执行流程图作为参考。 我们紧跟着上面的 selectList 继续分析,它会调用到 executor.query 方法。 当有一个查询请求访问的时候,首先会经过 Executor 的实现类 CachingExecutor ,先从缓存中查询 SQL 是否是第一次执行,如果是第一次执行的话,那么就直接执行 SQL 语句,并创建缓存,如果第二次访问相同的 SQL 语句的话,那么就会直接从缓存中提取。 上面这段代码是从 selectList -> 从缓存中 query 的具体过程。可能你看到这里有些觉得类都是什么东西,我想鼓励你一下,把握重点,不用每段代码都看,从找到 SQL 的调用链路,其他代码想看的时候在看,看源码就是很容易发蒙,容易烦躁,但是切记一点,把握重点。 上面代码会判断缓存中是否有这条 SQL 语句的执行结果,如果没有的话,就再重新创建 Executor 执行器执行 SQL 语句,注意, list = doQuery 是真正执行 SQL 语句的过程,这个过程中会创建我们上面提到的三种执行器,这里我们使用的是简单执行器。 到这里,执行器所做的工作就完事了,Executor 会把后续的工作交给 StatementHandler 继续执行。下面我们来认识一下 StatementHandler 上面代码会判断缓存中是否有这条 SQL 语句的执行结果,如果没有的话,就再重新创建 Executor 执行器执行 SQL 语句,注意, list = doQuery 是真正执行 SQL 语句的过程,这个过程中会创建我们上面提到的三种执行器,这里我们使用的是简单执行器。 到这里,执行器所做的工作就完事了,Executor 会把后续的工作交给 StatementHandler 继续执行。下面我们来认识一下 StatementHandler StatementHandler 的继承结构 有没有感觉和 Executor 的继承体系很相似呢?最顶级接口是四大组件对象,分别有两个实现类 BaseStatementHandler 和 RoutingStatementHandler,BaseStatementHandler 有三个实现类, 他们分别是 SimpleStatementHandler、PreparedStatementHandler 和 CallableStatementHandler。 RoutingStatementHandler : RoutingStatementHandler 并没有对 Statement 对象进行使用,只是根据StatementType 来创建一个代理,代理的就是对应Handler的三种实现类。在MyBatis工作时,使用的StatementHandler 接口对象实际上就是 RoutingStatementHandler 对象。 BaseStatementHandler : 是 StatementHandler 接口的另一个实现类,它本身是一个抽象类,用于简化StatementHandler 接口实现的难度,属于适配器设计模式体现,它主要有三个实现类 SimpleStatementHandler: 管理 Statement 对象并向数据库中推送不需要预编译的SQL语句。PreparedStatementHandler: 管理 Statement 对象并向数据中推送需要预编译的SQL语句。CallableStatementHandler:管理 Statement 对象并调用数据库中的存储过程。 StatementHandler 的创建和源码分析 我们继续来分析上面 query 的调用链路,StatementHandler 的创建过程如下 MyBatis 会根据 SQL 语句的类型进行对应 StatementHandler 的创建。我们以预处理 StatementHandler 为例来讲解一下 执行器不仅掌管着 StatementHandler 的创建,还掌管着创建 Statement 对象,设置参数等,在创建完 PreparedStatement 之后,我们需要对参数进行处理了。 如 如果用一副图来表示一下这个执行流程的话我想是这样 这里我们先暂停一下,来认识一下第三个核心组件 ParameterHandler ParameterHandler - ParameterHandler 介绍 ParameterHandler 相比于其他的组件就简单很多了,ParameterHandler 译为参数处理器,负责为 PreparedStatement 的 sql 语句参数动态赋值,这个接口很简单只有两个方法 ParameterHandler 只有一个实现类 DefaultParameterHandler , 它实现了这两个方法。 getParameterObject: 用于读取参数setParameters: 用于对 PreparedStatement 的参数赋值ParameterHandler 的解析过程 上面我们讨论过了 ParameterHandler 的创建过程,下面我们继续上面 parameterSize 流程 这就是具体参数的解析过程了,下面我们来描述一下 下面用一个流程图表示一下 ParameterHandler 的解析过程,以简单执行器为例 我们在完成 ParameterHandler 对 SQL 参数的预处理后,回到 SimpleExecutor 中的 doQuery 方法 上面又引出来了一个重要的组件那就是 ResultSetHandler,下面我们来认识一下这个组件 ResultSetHandler - ResultSetHandler 简介 ResultSetHandler 也是一个非常简单的接口 ResultSetHandler 是一个接口,它只有一个默认的实现类,像是 ParameterHandler 一样,它的默认实现类是DefaultResultSetHandler ResultSetHandler 解析过程 MyBatis 只有一个默认的实现类就是 DefaultResultSetHandler,DefaultResultSetHandler 主要负责处理两件事 处理 Statement 执行后产生的结果集,生成结果列表 处理存储过程执行后的输出参数 按照 Mapper 文件中配置的 ResultType 或 ResultMap 来封装成对应的对象,最后将封装的对象返回即可。 其中涉及的主要对象有: ResultSetWrapper : 结果集的包装器,主要针对结果集进行的一层包装,它的主要属性有 ResultSet : Java JDBC ResultSet 接口表示数据库查询的结果。 有关查询的文本显示了如何将查询结果作为java.sql.ResultSet 返回。 然后迭代此ResultSet以检查结果。 TypeHandlerRegistry: 类型注册器,TypeHandlerRegistry 在初始化的时候会把所有的 Java类型和类型转换器进行注册。 ColumnNames: 字段的名称,也就是查询操作需要返回的字段名称 ClassNames: 字段的类型名称,也就是 ColumnNames 每个字段名称的类型 JdbcTypes: JDBC 的类型,也就是 java.sql.Types 类型 ResultMap: 负责处理更复杂的映射关系 在 DefaultResultSetHandler 中处理完结果映射,并把上述结构返回给调用的客户端,从而执行完成一条完整的SQL语句。 内容转载自:CSDN博主:cxuann 原文链接:https://blog.csdn.net/qq_36894974/article/details/104132876?depth_1-utm_source=distribute.pc_feed.none-task&request_id=&utm_source=distribute.pc_feed.none-task
问问小秘 2020-03-05 15:44:27 0 浏览量 回答数 0

问题

为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?【Java问答】41期

面试题 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数...
剑曼红尘 2020-06-19 13:47:21 0 浏览量 回答数 0

回答

Re史上最详细阿里云ECS安装wordpress教程 【Xshell连接阿里云ECS】 准备好连接linux服务器的工具,推荐用xshell和xftp。 xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。 下载地址:http://www.newhua.com/soft/36383.htm Xftp 是一个基于 MS windows 平台的功能强大的SFTP、FTP 文件传输软件。 下载地址:http://www.newhua.com/soft/143.htm 一、打开xshell 二、设置云服务器登录信息 三、设置服务器帐号密码 四、设置字符集编码 五、连接后的庐山正面目 阿里云服务器是纯净态的,所以只有看见这样黑黑的面板,软件都是需要自己来安装。------------------------- Re史上最详细阿里云ECS安装wordpress教程 【阿里云ECS(linux)挂载数据盘】 注意:如果是用阿里云一键wep安装的话就不需要挂载数据盘,自动挂载了!首先键入命令查看是否有数据盘 fdisk -l 红框标出的是数据盘大小21.4GB    数据盘进行分区 fdisk  /dev/xvdb    依次输入“m”(查看命令参数)在依次输入“n”,“p”,“1”,”两次回车“,“wq”    格式化新分区 mkfs.ext3 /dev/xvdb1    添加分区信息 echo '/dev/xvdb1  /mnt ext3    defaults    0  0' >> /etc/fstab 命令写入新分区信息。然后使用“cat /etc/fstab”命令查看,出现以下信息就表示写入成功。    挂载新分区使用 mount -a 命令挂载新分区,然后用 df -h 命令查看,出现以下信息就说明挂载成功, 出现(/dev/xvdb1     20G   173M  19G   1%   /mnt)就表示挂载成功了。 ------------------------- Re史上最详细阿里云ECS安装wordpress教程 【阿里云ECS(linux)一键安装web环境】 下载一键安装包 下载一键安装包(ubuntu12.04) 打下面的命令去主目录(/home)看下 cd /home 现在用键盘敲入下面这行命令 cd /home && mkdir tmp && cd tmp 用xftp上传环境安装文件回到shell界面,用ll命令看下情况 ll 是不是多了一个sh目录 接下来按照说明,分步骤敲入安装命令chmod –R 777 sh cd sh ./install.sh出现了一个选择 提示,进入web服务器版本的选择界面这里您可以根据需要选择apache或者nginx服务器,这里是2个服务器的介绍 apache:http://baike.baidu.com/view/28283.htm nginx:http://baike.baidu.com/view/926025.htm这里我们选择nginx,输入n,回车(注意:这样随你喜欢选择没有必要纠结) 到这里,我们就正式进入环境安装环节了。你可以泡杯茶休息下。一般这个过程会持续半个小时的样子。大家有疑问了。那我怎么登录ftp和mysql呢?   在命令行里输入:cat account.log 看到了没? ftp的用户名是:www mysql的用户名是:root 密码就在屏幕上了! 好了。所有配置都已经完成了。是不是很简单! ----------------------------------------------------------------------网站目录:/alidata/www服务器软件目录:/alidata/server Mysql 目录 /alidata/server/mysql Php目录/alidata/server/php   选择了nginx 那么会有一个nginx 目录在 /alidata/server/nginx/   Nginx 配置文件在/alidata/server/nginx/conf   Nginx虚拟主机添加 你可以修改/alidata/server/nginx/conf/vhosts/phpwind.conf  选择了apache那么会有一个httpd 目录在 /alidata/server/httpd   apache 配置文件在/alidata/server/httpd/conf ------------------------- Re史上最详细阿里云ECS安装wordpress教程 【阿里云ECS(linux)安装wordpress程序】 默认安装的是phpwind的论坛程序,当然不是我们想要的程序了,所以就需要删除phpwind程序装上我们自己wordpress程序 用xftp链接服务器(ps:怎么链接上文已经说明),进入alidata/www/phpwind/下面就是程序文件,ctrl A全选删除,上传已经下载好的wordpress,注意的是wordpress程序是你原网站的所有程序,如下图: 服务器ip地址在浏览器中打开112.124.xx.xxx,打开后你会看见wordpress安装键面,需要输入数据库名称、数据库用户名、密码、数据库表前缀。 到这里你会发现提示,数据库密码正确,但无法创建数据库表。这里就需要数据库管理程序phpmyadmin(ps:如果你的服务器配置高手可以直接命令创建数据库表)。首先下载phpmyadmin 上传到/alidata/www/phpwind文件目录下如下图:phpmyadmin文件夹名可自定义(ps:到这里你可能是明白了phpmyadmin其实就是一个网站而已)用:ip地址/phpmyadmin文件夹名,在浏览器中打开进入phpmyadmin网站,输入数据库用户名,密码进入phpmyadmin后台,创建数据库表怎么创建数据库表我想大家应该都会的。 ------------------------- Re史上最详细阿里云ECS安装wordpress教程 【阿里云ECS(linux)安装postfix发送邮件】 其实这里可以使用插件实现,但众所周知wordpress插件一旦装的太多就会造成网站打开速度变慢,为什么要选择安装postfix软件呢,在阿里云论坛有网友说装sendmail,博主刚开始也是折腾sendmail,但群众眼睛是雪亮的,sendmail发件速度太慢了(ps:一个邮件就需要30多秒出去),相对于postfix的秒射那正是爽!我喜欢这只小老鼠! 一、安装postfix如果您安装了sendmail请先卸载它命令: yum remove sendmai 安装: yum install postfix 更改默认MTA为Postfix命令: /usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix 再次检查下是否将MTA改为Postfix了。命令: alternatives --display mta 二、配置Postfix相关参数 1.找到 #myhostname = host.domain.tld , 修改成:myhostname = mail.yujzw.com (你自己的域名)2.找到 #mydomain = domain.tld ,将等号后面的部分改写为你的域名,修改成:mydomain = yujzw.com(此处设置将成为E-mail地址“@”后面的部分)3.找到 #myorigin = $mydomain ,只需将首行的#号去掉即可,其他无需变动4.找到 inet_interfaces = localhost ,将“localhost”改为“all” ,接受来自所有网络的请求5.找到 mydestination = $myhostname, localhost.$mydomain,localhost,在行尾添加“$mydomain”,修改成:mydestination = $myhostname,localhost.$mydomain, localhost, $mydomain ,指定发给本地邮件的域名6.找到 #relay_domains = $mydestination ,只需要将行首的#去掉,定义允许转发的域名7.找到 #mynetworks = 168.100.189.0/28, 127.0.0.0/8 去掉前面的#号,指定内网和本地的IP地址范围,按照情况修改,一般无需变动8.找到 relay_domains = ,修改成: relay_domains =9.找到 #home_mailbox = Maildir/ ,去掉行首的#,指定用户邮箱目录启动命令 service postfix start 检测是否运行中 master (pid 25579) is running... 设置开机启动 chkconfig postfix on 安装已经结束了,此功能已经实现邮件发送,不需要配置邮件服务器。这里要注意的是!如果你没有设置过php.ini文件的话就需要重新设置一边,否自不能实现发送邮件。 设置php.ini文件 编辑php.ini vi /alidata/server/php-5.2.17/etc/php.ini-zend_optimizer.bakvi /alidata/server/php-5.2.17/etc/php.ini 找到 ;sendmail_path = 按 i 进入编辑,将这行修改为 sendmail_path = /usr/sbin/sendmail -t -i 按 Esc 键退出编辑,输入 :wq 保存退出,重新启动阿里云ecs服务器。 wordpress邮件检测发送功能 WordPress不能发信是不是由博客空间引起的,可以使用以下方法检测。新建一个php文件,命名为mail.php ,打开并填上以下代码: 12345678<?php    $txt = "hello";    // 以下的邮箱地址改成你的    $mail = 'somebody@xxx.com';      // 发送邮件    mail($mail, "My subject", $txt);    echo 'message was sent!';    ?>保存并上传至你的网站根目录,并在浏览器运行:网址: http://你的博客网址/mail.php 邮箱查收邮件,如果收到标题为 My subject 的邮件,说明你的空间支持mail()函数发送邮件,也就是WordPress默认的发信方式。 ------------------------- Re史上最详细阿里云ECS安装wordpress教程 由于阿里云图片上传限制。不能一次性编辑完,日后会上传 ------------------------- 回16楼arens的帖子 下面都是“红字”------------------------- 回24楼水清的帖子 红字------------------------- 回26楼andln的帖子     cd /home && mkdir tmp && cd tmp 应该是没有问题的,有能是阿里一键安装包改了参数,官方教程里面没有出现这句命令。具体http://help.aliyun.com/view/13435438.html------------------------- 回28楼guzheng的帖子 一键wep安装是首次安装时会默认自动挂载数据盘,阿里云的教程说的是后期需要挂载多个数据盘。具体操作了就知道了,刚开始我也是挂载了数据盘在一键wep安装,出现重复挂载信息。------------------------- 回50楼emperorboy的帖子 阿里云ECS数据库名默认是localhost,密码、表前缀都是自己定义------------------------- 回54楼天佑的帖子 慢慢来,我也是新手,花了7天时间搞明白的------------------------- 回83楼星空2012的帖子 没有使用过类似的缓存插件。------------------------- 回85楼sunpro的帖子 帖子已经被管理员倒序,请到最后查看!------------------------- 回134楼wujianmin的帖子 是两个  “LL”------------------------- 回137楼wujianmin的帖子 wdCP也行,如果是个人站长或者打算长期从事技术职业的,还是建议自己捣鼓一下。------------------------- 回148楼stneng的帖子 一般情况下,要使域名能访问到网站需要两步,第一步,将域名解析到网站所在的主机,第二步,在web服务器中将域名与相应的网站绑定。但是,如果通过主机IP能直接访问某网站,那么把域名解析到这个IP也将能访问到该网站,而无需在主机上绑定,也就是说任何人将任何域名解析到这个IP就能访问到这个网站。可能您并不介意通过别人的域名访问到您的网站,但是如果这个域名是未备案域名呢?一旦被查出,封IP、拔线甚至罚款的后果都是需要您来承担的。某些别有用心的人,通过将未备案域名解析到别人的主机上,使其遭受损失,这是一种新兴的攻击手段------------------------- 回150楼stneng的帖子 可以!  设置(程序名.conf)文件------------------------- 回 205楼(冰冰__恋) 的帖子 我装的是阿里云os,不是ubunto,个人没用过ubunto,也无法给你说明------------------------- 回 207楼(学历猫) 的帖子 镜像市场只是安装一个系统,不安装wordpress,wordpress需要自己上传------------------------- 回 216楼(moros) 的帖子 看一看.conf配置文件,设置的目录------------------------- 回 219楼(yangtser) 的帖子 phpmydamin只是一个网站不需要设置------------------------- 回 230楼(啊李晕) 的帖子 http://www.yujzw.com/tag/aliyunecs------------------------- 回 241楼(金枝福) 的帖子 是的,512M的基本搞定不定wordpress,我以前是1G,现在也是2G的
爱映疯wp 2019-12-02 02:49:31 0 浏览量 回答数 0

问题

为什么要进行系统拆分?如何进行系统拆分?拆分后不用 dubbo 可以吗?【Java问答学堂】46期

面试题 为什么要进行系统拆分?如何进行系统拆分?拆分后不用 dubbo 可以吗? 面试官心理分析 从这个问题开始就进行分布式系统环节了,现在出去面试分布式都成标配了,...
剑曼红尘 2020-06-29 16:39:00 6 浏览量 回答数 1

问题

软件性能测试的本质

       淘宝网每年的双11 活动都是对其服务器性能的挑战。因为在这一天所有商品半价,购物的用户量剧增。做为淘宝网的高层更多的关心在线用户数,用户交易量,总交易金额等,做为一名技术...
技术小菜鸟 2019-12-01 21:45:03 4548 浏览量 回答数 1

回答

首先“缓存”Cache这个东西是干什么的,我们应该先有些基本的了解。要是不太明白的可以看看网上的解释:http://baike.baidu.com/view/907.htm 简单讲,阿里云OCS提供的功能就是提供对热点数据的高速访问。在使用OCS之前(或者在使用任何一种缓存服务之前),我们都应该明白关于缓存的这么几点: 缓存里的数据不是持久化保存的,也就是说它像是电脑里的内存,而不像硬盘;我们不能指望OCS里的数据一直保存不丢失。如果你真的需要存储持久化的数据,也许你应该出门左转找阿里云OSS(开发存储服务); 缓存里存的应该是“热点”数据。遵循常常出现的“20-80法则”,通常程序应用中都有一定比例的数据常常被请求访问,这就是所谓的热点数据,OCS正是为这种数据设计存在的。假定我们的程序中有100个数据,每次访问这些数据的概率完全是均匀分布的1/100,那么使用缓存的效果就不会太好,因为这其中不存在热点数据。 数据逐出。我们可以决定哪些数据是热点数据被放到缓存当中,但是如果我们的缓存容量不够大,这些热点数据中某些最近较少被用到的数据还是会被“挤出去”,这种行为叫做数据逐出。如果想减少出现这种情况,我们可以购买更高容量的OCS。 -------------------------         在开始使用之前,关于阿里云OCS,我们还需要知道以下这些事: 阿里云OCS仅支持阿里云内网访问,不支持公网访问。也就是说,我们用办公室或者家里的电脑(都属于公网)是无法连上阿里云OCS的。为什么会这样呢?因为缓存服务的根本目标是要提供低延迟的高速访问,而从公网电脑来连接OCS服务器的场景下,公网的网络环境是不可控的,可能出现延迟很高甚至断连接的情况,这使得缓存服务无法保证“高速、低延迟”的基本特性,所以阿里云OCS是不支持公网直接访问的。如果觉得高延迟的情况对于我们的应用也能接受,那么我们应该去选择阿里云其他的产品(比如OSS开放存储服务),而不应该选择OCS缓存服务。 阿里云OCS需要与ECS(阿里云服务器)配合使用,而且只能与本地区节点的ECS连通。这一点与上一条相关。OCS只能从阿里云内网访问,也就是说我们只能从阿里云ECS上才能访问并使用OCS服务。所以我们在官网购买OCS的时候,会看到提示信息说需要至少有一台ECS才能买OCS。另外,阿里云ECS是分地区节点的,比如北京、杭州、青岛等,我们在购买OCS缓存的时候也要选相应的地区节点。北京的ECS只能访问北京的OCS,而不能访问杭州或青岛的OCS。 阿里云OCS是按购买量收费的,而不是按使用量收费。这点需要提醒新同学们注意,在我们购买了OCS缓存之后,计费就已经开始了,即使我们还没有真正使用缓存。也就是说,我们买了1G的OCS缓存后,即使目前使用量为0,系统也会按照1G的标准来计费。所以我们在购买OCS的时候,要选取适合我们业务数据需要的缓存档位。当然了,阿里云OCS也提供在线升降缓存容量的功能。也就是说,如果我们在使用了一段时间之后,发现购买的OCS缓存不够用了(或者缓存使用量太低),我们可以在线的对已有的OCS实例进行升档(或者降档),而OCS缓存服务不会被中断。 阿里云OCS对于存贮的对象大小是有限制的。缓存通常对其内部存储的数据尺寸是有限制的,阿里云OCS也一样。目前OCS支持存储的数据对象的上限是1,000,000Byte。如果要存的值超过这个限制,我们应该考虑把数据压缩,或从逻辑上分成不同键存储的几个值。 ------------------------- 现在我们开始在阿里云官网上购买OCS实例  http://buy.aliyun.com/ocs  首先我们需要已经有了一台阿里云ECS,否则我们无法在这个页面成功购买OCS。购买的第一步,我们先要确定选择买哪个地区的OCS;这个很重要,如上面所说,如果我们的ECS是属于北京,而我们在这里购买了杭州的OCS,那么这两者是无法配合协同工作的。所以,在购买OCS的时候一定要选择应用服务器ECS所在地区的OCS。下一步是要选择OCS缓存容量。我们要购买多大的缓存,这个取决于我们对自身业务应用中热点数据总量大小的判断。如果一时难以准确判断数据量,也不用担心:我们可以先买一个大致容量的OCS(比如1GB),随后在使用过程中,通过OCS控制台提供的监控功能,我们可以了解到目前OCS缓存的使用量等数据,然后可以自主的调整所需的缓存量,购买更大的缓存(比如升到5GB)或者减少已购的缓存量(比如降到512MB),阿里云会根据我们选择的新配置来调整对应的收费。此外在选择缓存容量的时候,要知道不同容量的缓存档位对应着不同的性能配额,具体来说包括两个指标:吞吐量带宽与每秒请求处理数(QPS)。比如以现在的配额标准,1GB的OCS缓存对应5MB/sec的吞吐量带宽和3000次/sec的请求处理峰值。当我们使用OCS的时候,如果数据量传输的带宽超过了5MB/s, 或者每秒的请求数超过了3000次,都会触发性能配额控制机制,导致某些请求无法返回正常结果。在确定了地区和缓存容量之后,我们就可以直接下单购买OCS了。 ------------------------- 在成功购买OCS之后,我们的联系邮箱和手机都会收到OCS创建成功的通知,里面会包括OCS的实例ID和初始密码(关于密码的用处后面会讲到)。我们现在登录OCS控制台, http://ocs.console.aliyun.com/ 就可以看到已经购买到的OCS实例列表。在列表页面上对应OCS实例的后面点击“管理”,就可以进入该OCS实例的详情页,看到更多的详细信息。 ------------------------- 我们现在已经有了一个OCS缓存实例,现在是时候试玩OCS了。要使用OCS就要写一点程序代码,不过不用担心,我们在这里采用“Happy-Path”的方法,从最简单的操作开始,让新上手的菜鸟们能马上就有一个能调用OCS缓存服务的程序。OCS提供缓存服务,它并不要求我们的程序是哪种语言来写的。我们这里先以Java程序为例,写一个最简单的“Hello World”。(其他编程语言的例子,我们随后附上。)第一步,登录你的阿里云ECS服务器,在上面安装Java JDK和你常用的IDE(比如Eclipse)。一定要记得我们之前说过的,只有在阿里云内网的ECS服务器上,才能访问我们的OCS实例。所以,用家里或是公司的电脑执行下面的代码示例是看不到结果的。 Java JDK和Eclipse都很容易从网上找到下载,比如 http://download.eclipse.org/ 或者 http://www.onlinedown.net/soft/32289.htm 第二步,在把Java开发环境准备好了之后,下载第一个代码示例(Sample-Code-1第三步,在Eclipse里面打开刚下载的OcsSample1.java,我们要根据自己的OCS实例信息修改几个地方。        我们每个人买到的OCS实例的ID都是不重复的,其对应的阿里云内网地址也是独一无二的,这些信息都在OCS控制台上显示出来。我们在同自己的OCS实例建立连接的时候,需要根据这些信息修改OcsSample1.java中的对应地方。         public static void main(String[] args) {                                        final String host = "b2fd2f89f49f11e3.m.cnqdalicm9pub001.ocs.aliyuncs.com"; //控制台上的“内网地址”                   final String port ="11211";       //默认端口 11211,不用改                   final String username = "b2fd2f89f49f11e3"; //控制台上的“访问账号”                   final String password = "my_password"; //邮件或短信中提供的“密码”                   …… …… ……       信息修改完毕,我们可以运行自己的程序了。运行main函数,我们会在Eclipse下面的console窗口看到下面这样的结果(请忽略可能出现的红色INFO调试信息): OCS Sample CodeSet操作完成!Get操作: Open Cache Service,  from www.Aliyun.com     OK,搞定!我们已经成功的连接上了阿里云的OCS并且调用缓存服务成功,就这么简单。-------------------------我们已经成功运行了第一个调用阿里云OCS缓存服务的Sample程序OcsSample1.java,现在我们看看这个程序里都做了什么。                                  …… …… ……                            System.out.println("OCS Sample Code");                                                        //向OCS中存一个key为"ocs"的数据,便于后面验证读取数据,                             //这个数据对应的value是字符串 Open Cache Service,  from www.Aliyun.com                            OperationFuture future = cache.set("ocs", 1000," Open Cache Service,  from www.Aliyun.com");                            //向OCS中存若干个数据,随后可以在OCS控制台监控上看到统计信息                            for(int i=0;i<100;i++){                                String key="key-"+i;                                String value="value-"+i;                                 //执行set操作,向缓存中存数据                                cache.set(key, 1000, value);                            }                             System.out.println("Set操作完成!");                             future.get();  //  确保之前(cache.set())操作已经结束                         //执行get操作,从缓存中读数据,读取key为"ocs"的数据                            System.out.println("Get操作:"+cache.get("ocs"));                            …… …… …… 从这些代码中可以看出: 1. 我们在建立与OCS缓存服务器的连接后,先是向缓存中存(set)了一个“key-value”(键值对)形式的数据,这个数据的key是字符串“ocs”,其对应的value也是字符串;2. 接着我们继续向缓存中存(set)了100个其他简单的“key-value”数据。3. 最后我们进行功能验证。根据之前给定的key,从缓存中获取(get)其对应的value:也就是输入字符串“ocs”,缓存给我们返回value对应的字符串。 以上的步骤中,1与3是相对应的,我们只有先向缓存中set了某个数据,后面才能从缓存中get到这个数据。步骤2中程序向缓存set了100个数据,是为了从另一个方面进行验证。我们回到阿里云OCS控制台,打开“实例详情”页,在“实例监控”的部分点击刷新,会看到其中一些监控项的值已经发生了变化(注:监控信息的刷新可能存在数秒的延迟), 其中的“Key的个数”已经变成了101,也就是说我们程序已经成功地向OCS缓存中存放了101个数据。-------------------------在写下一篇技术贴之前,列一些OCS用户在入门时问到的问题,方便其他刚认识OCS的同学:Question:买了1G的OCS,那就相当于这个1G是专门缓存用的,与ECS服务器的内存没关系是吧~Answer:是的,OCS的缓存容量与您ECS的内存容量是没关系的。Question:OCS 外网测试,怎么连接?有没有外网连接地址哦?Answer:OCS是不能从外网访问的。参照上面的文章。Question:我之前那个OCS可以正常使用,但现在换了一个OCS就不行了,怎么回事?Answer:经核实您的主机是属于杭州节点的,而现在这个OCS是青岛节点的,不同地域之间的产品内网不互通。Question:在设置一个value时,如果指定过期时间为0,会永久保留吗?Answer:指定过期时间为0,OCS就认为此数据不根据过期时间发生淘汰;但是,此数据仍有可能基于LRU被其他数据淘汰,或者由内存清理造成丢失 ,因此不能认为这个value会永久保留。 Question:对OCS的访问是否需要负载均衡? Answer:不需要。对访问请求的负载均衡都是在OCS服务器端来进行的,用户直接使用缓存服务即可,不用考虑负载均衡的事情。 Question:OCS是否会主动关闭闲置的连接? 如果会,请问连接闲置多久会被关闭?Answer:OCS不会主动关闭闲置的用户连接。但是用户的环境如果使用了SLB,则需要参考SLB连接关闭时间。Question:如何设置数据在OCS缓存中的过期时间 ?Answer:关于设置缓存数据的过期时间,可以参考Memcached官方说明: https://code.google.com/p/memcached/wiki/NewCommands An expiration time, in seconds. Can be up to 30 days. After 30 days, is treated as a unix timestamp of an exact date. 翻译过来就是:0~2592000表示从当前时刻算起的时间长度(以秒计算,最长2592000即30天);大于2592000表示UNIX时间戳。 此值设置为0表明此数据不会主动过期。------------------------- 回 12楼(村里一把手) 的帖子 谢谢,要让大家用得好才算数。 -------------------------缓存与数据库相结合使用,是常见的一种应用搭配场景。现在我们再看一个例子,是用OCS搭配MySQL数据库使用。Java示例代码在此(这个示例代码中,大部分与前几个例子类似。因为要与数据库结合,所以程序需要依赖一个JDBC的jar包才能运行。支持MySQL的JDBC jar包在此(在程序中添加MySQL数据库的连接信息:     …… …… ……            // JDBC driver name and database URL    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";    static final String DB_URL = "jdbc:mysql://xxxxxxx.mysql.rds.aliyuncs.com/testdb"; //MySQL数据库URL        //  Database用户名及密码    static final String DB_USER = "xxxxxx";    static final String DB_PASS = "xxxxxx";            我们设想这样一个场景:我们需要从数据库的tableone表中查找区域不属于北京的记录总数,用SQL表示就是:SELECT count(*)  FROM testdb.tableone where region != 'beijing'假定这个表中的数据如下,则这条SQL查询返回的结果就是7:如果这个查询被调用到的频率很高,多个用户反复不断的在数据库中查这个数据,我们就可以把这个查询结果放到OCS缓存中去。看下面的代码片段,我们用for循环模拟用户连续20次在数据库中查询上述SQL语句:              for (int i = 1; i <= 20; i++) {                String sql = "SELECT count(*)  FROM testdb.tableone where region != 'beijing'";                String key ="non-beijing"; //给SQL语句自定义一个key                //在OCS缓存里按key查找               String value =  (String) cache.get(key);                                if (value == null) {                    // 在OCS缓存里没有命中                    // step 1:从My SQL数据库中查询                    //Load MySQL Driver                      Class.forName(JDBC_DRIVER);                     con = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS);                    ps = con.prepareStatement(sql);                    ResultSet result = ps.executeQuery(sql);                    result.next();                                        value=result.getString(1);                    System.out.println("从MySQL中查询数据.  Key= "+key+" Value="+value);                                       // step 2: 把数据库返回的数据作为value存放到OCS缓存中去                    cache.set(key, EXPIRE_TIME, value);                                    } else {                    // 在OCS缓存里命中                    System.out.println("从OCS中读取数据.     Key= "+key+" Value="+value);                }                            }// end of for在这段代码中我们可以看到,我们给这条SQL语句标记了一个key,当有用户要执行这条SQL的时候,我们首先按照key在OCS缓存中查找:如果没有对应的缓存数据,则连接MySQL数据库执行SQL查询,把结果返回给用户,并把这个查询结果存到OCS缓存中去;如果OCS中已经有了对应的缓存数据,则直接把缓存数据返回给用户。运行结果如下: 从MySQL中查询数据.  Key= non-beijing, Value=7从OCS中读取数据.     Key= non-beijing, Value=7从OCS中读取数据.     Key= non-beijing, Value=7从OCS中读取数据.     Key= non-beijing, Value=7…… …… 从结果可以看出,程序第1次是从MySQL数据库当中查询数据,后面的19次都是从OCS缓存中获取key对应的value直接返回。也就是说,OCS降低了程序去连接MySQL数据库执行SQL查询的次数,减轻了对数据库的负载压力。用户对热点数据访问的频率越高,OCS的这种优势就越明显。
唐翰 2019-12-01 23:41:23 0 浏览量 回答数 0

问题

Android数据库框架-Archiver(LiteOrm)的使用?报错

           在Android开发中,大家开发不同项目,不同的项目就不有不同需求。但是不管是什么项目都会涉及到数据存储。比如SharePreferences,SQLite,Fi...
爱吃鱼的程序员 2020-06-12 14:43:40 2 浏览量 回答数 1

回答

回 3楼(莫有) 的帖子 您好, 请问您使用的系统是哪种Linux发行版呢?是CentOS 6吗? ------------------------- 回 5楼(莫有) 的帖子 您好, 好的,等我找到合适的测试机,再为您在CentOS7 系统里测试ipv6的隧道设置喔。 ------------------------- 回 5楼(莫有) 的帖子 您好, 为您写了这个CentOS 7的配置帖子,希望对您有帮助喔: https://bbs.aliyun.com/read.php?tid=285557 ------------------------- 回 10楼(非洲小犀牛) 的帖子 您好, 如果您的是Linux系统,可能需要先为系统启用ipv6的功能喔。请看这里的例子: https://bbs.aliyun.com/read/285557.html ------------------------- 回 12楼(猎马网) 的帖子 您好, 欢迎来到阿里云论坛。 IPv6测试不能通过的原因是什么呢?您在 http://ipv6-test.com/validate.php 里测试您的站点访问结果是什么呢? ------------------------- 回 14楼(猎马网) 的帖子 您好, 如本例中的,添加IPv6隧道地址的默认网关命令,应该是: netsh interface ipv6 add route ::/0 IP6Tunnel 2001:470:18:401::1 请问,您在做第5步时,是否有运行如上边类似的命令吗? ------------------------- 回 16楼(猎马网) 的帖子 您好, 您可以查看“网络连接”里对应的连接属性,估计可以直接修改的哩。 ------------------------- 回 19楼(猎马网) 的帖子 您好, 我在测试机里使用wget测试,好象正常: root@los:~/test4# wget -6 http://www.iliema.com/ converted 'http://www.iliema.com/' (ANSI_X3.4-1968) -> 'http://www.iliema.com/' (UTF-8) --2016-08-11 22:28:41--   http://www.iliema.com/ Resolving www.iliema.com (www.iliema.com)... 2001:470:1f14:b5f::2 Connecting to www.iliema.com (www.iliema.com)|2001:470:1f14:b5f::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 77636 (76K) [text/html] Saving to: 'index.html.3' ------------------------- 回 20楼(猎马网) 的帖子 您好, 应该可以如IPv4那样,多个域名指到相同的IPv6地址。 ------------------------- 回 24楼(很快) 的帖子 您好, 请问您的nginx web是安装在Windows还是Linux的系统上? ------------------------- 回 26楼(喵咪喵) 的帖子 您好, 欢迎来到阿里云论坛。 申请到IPv6的隧道地址后,还需要在系统里配置的,以让这个IPv6的地址能被外网的用户访问到喔。 ------------------------- 回 29楼(不断学习) 的帖子 您好, 请问您使用的操作系统是WIndows 2012吗? 请问您执行的netsh命令是和操作说明那里一样的吗? ------------------------- 回 31楼(喵咪喵) 的帖子 您好, 应该不影响,如果前两项检查测试通过,最后一条(IPv6-only)测试不通过,应该是可以的。 ------------------------- 回 34楼(wolfing5210) 的帖子 您好, 我在Linux系统上,能ping通您的IPv6地址: root@los:~# ping6 2001:470:35:102a::2 PING 2001:470:35:102a::2(2001:470:35:102a::2) 56 data bytes 64 bytes from 2001:470:35:102a::2: icmp_seq=1 ttl=119 time=225 ms 64 bytes from 2001:470:35:102a::2: icmp_seq=2 ttl=119 time=226 ms 如果您要测试,要具备两个条件, a. 在Windows系统里,应该是使用 ping -6 的参数 b. 发出测试的系统是启用了IPv6 ------------------------- 回 37楼(小成123456) 的帖子 您好, 抱歉延时回复。 请问您在系统里,执行 ipconfig /all 后,能看到输出信息中包含的ipv6 tunel信息吗? ------------------------- 回 39楼(呢你) 的帖子 您好, 抱歉给您带来不便。 请问苹果审核拒绝的原因是什么,是不能连接到ipv6地址吗? 请问您创建的ipv6隧道地址,测试时能从外网成功访问吗? ------------------------- 回 41楼(呢你) 的帖子 您好, 80端口测试是正常的,但好象web返回了错误。 建议您咨询一下您的 APP 程序员。 root@los:~/test# curl [2001:470:18:95c::2] -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' J BossWeb/2.0.1.GA - Error report ------------------------- 回 44楼(nyanko桑) 的帖子 您好, 那请问您在例子中,第5步执行的命令是哪些呢? ------------------------- 回 45楼(小成123456) 的帖子 您好, 域名AAAA解析与IPv6隧道地址设置并不直接相关,如果您的IPv6隧道地址设置正确,从外网应该能ping通这个新设置的IPv6隧道地址。 ------------------------- 回 48楼(nyanko桑) 的帖子 您好, 好象命令看起来没有问题,您是从 HE 隧道地址设置网站里直接复制的,对吗? 那执行命令时,是否回显的结果是“确定”,还是有别的错误信息提示呢? ------------------------- 回 50楼(持名) 的帖子 您好, 那就奇怪了。 建议您回过头梳理一下,看看是否缺了哪个步骤或环境有哪些特殊的地方。 ------------------------- 回 52楼(nyanko桑) 的帖子 您好, 或许将原命令中的“add”(添加)改为“del”(删除)后,可以试试。  我个人猜测的。 ------------------------- 回 54楼(nyanko桑) 的帖子 您好, 好哩,到时如还没有解决问题,可通过站内信,发来临时的ECS登录信息,我为您看看喔。 ------------------------- 回 56楼(nyanko桑) 的帖子 您好, 申请到的IPv6隧道地址是不变的呀,除非您删除了。 ------------------------- 回 58楼(nyanko桑) 的帖子 您好, 好哩,祝愿您的APP能通过苹果的审核。 如还有疑问,欢迎跟帖。 ------------------------- 回 60楼(゛温ゝ先生) 的帖子 您好, 您在站内信里提到说“网络有重名”,现在系统里没成功添加ipv6地址吗? ------------------------- 回 61楼(陈cc123) 的帖子 您好, 一般AAA记录里,主机记录填写的是从HE申请到的IPv6隧道地址。 更新:应该是“记录值”里填写从he申请到的ipv6隧道地址。 ------------------------- 回 65楼(陈cc123) 的帖子 您好, 对不起,之前我的说法有错误。 按阿里云解析面板中,“主机记录”应该是您需要设置的网站访问地址,如我这里想设置 ipv6.anqun.org 的ipv6地址,“主机记录”里填写“ipv6”,而“记录值”里填写IPv6隧道地址:2001:470:18:401::2 ------------------------- 回 67楼(陈cc123) 的帖子 您好, 那请问您提交给 http://ipv6-test.com/ 测试的网址是什么呢? ------------------------- 回 69楼(陈cc123) 的帖子 您好, 页面 http://ipv6-test.com/validate.php 里提交的网址应该是一个域名网址,应该不能直接提交IPv6地址去测试的喔。 您可以在您的域名控制面板添加一条AAA记录的呀。 ------------------------- 回 72楼(陈cc123) 的帖子 您好, 能否使用如 netstat -noa | grep 80 的命令,来查看当前Web服务是否在ipv6地址监听使用呢? ------------------------- 回 74楼(陈cc123) 的帖子 您好, 图中没有显示IPv6相关的8080端口使用情况喔, 或许您可以运行 netstat -noa | grep 8080 再次确认一下。 ------------------------- 回 78楼(陈cc123) 的帖子 您好, 是的,不好意思,我忘记了您的系统是Windows,不是linux,所以不能直接用grep的命令。 现在从外网测试,您的tomcat站点是可以从ipv6地址访问了,但或许您将web从8080换到常用的80端口,方便访问。 root@los:~/test# curl [2001:470:18:ab3::2]:8080 -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' Apache Tomcat/7.0.54 ------------------------- 回 80楼(陈cc123) 的帖子 您好, 如果您提交给苹果审核就是带8080的IPv6地址,那可保持现状。 能否说一下具体您审核网址?如果按上边的测试结果来看,您的IPv6隧道地址是(曾)正常工作。 ------------------------- 回 82楼(陈cc123) 的帖子 您好, 现在从外网测试您给的网址,正常。 root@los:~/test# curl -6 'http://www.91mcgj.cn:8080' -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' Apache Tomcat/7.0.54 root@los:~/test# curl 'http://www.91mcgj.cn:8080' -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' Apache Tomcat/7.0.54 ------------------------- 回 84楼(陈cc123) 的帖子 您好, 可能那个检测的站点,只能检测默认80端口的吧,具体到您这里,您是要写明8080端口的,所以那个测试网址可能不适用喔。 ------------------------- 回 87楼(xiaopao888) 的帖子 您好, 欢迎来到阿里云论坛。 能否请问在“命令提示符”里执行以下的命令,看输出结果有没有关于ipv6的80地址监听呢? netstat -noa | find "80" ------------------------- 回 88楼(莫尼玛) 的帖子 您好, 欢迎来到阿里云论坛。 如果您使用自己的环境来测试,需要确认您的环境是否支持ipv6使用环境喔,如您的telnet程序是否支持ipv6,您的网络是否支持ipv6。 我拿一个美国的vps来测试,也是可以成功连接到您的ipv6隧道地址: root@los:~/test# curl [2001:470:18:aa8::2] -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' Microsoft Internet Information Services 8 ------------------------- 回 91楼(xiaopao888) 的帖子 您好, 如果web没有在iPv6的网络接口上监听,请尝试调整一下web的配置文件喔,如让它在所有的可用网络接口里监听。 ------------------------- 回 93楼(莫尼玛) 的帖子 您好, 请问您在tcp 8300里提供的服务是web的吗? 如果是web服务,测试不成功喔: root@los:~# curl [2001:470:18:aa8::2:8300] -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' root@los:~# ------------------------- 回 97楼(莫尼玛) 的帖子 您好, 好象用telnet测试8300 tcp 端口,不成功喔: root@los:~# telnet -6 2001:470:18:aa8::2 8300 Trying 2001:470:18:aa8::2... telnet: Unable to connect to remote host: Connection refused root@los:~# telnet -6 2001:470:18:aa8::2 80 Trying 2001:470:18:aa8::2... Connected to 2001:470:18:aa8::2. Escape character is '^]'. Connection closed by foreign host. ------------------------- 回 100楼(莫尼玛) 的帖子 您好, 如果您的socket程序默认不是在所有的端口上监听使用,是需要调整一下的喔。 或您使用 netstat -noa 的命令,查看一下都有哪些8300的端口在使用。 ------------------------- 回 102楼(莫尼玛) 的帖子 您好, 0.0.0.0 可能代表是IPv4的所有网络接口,不包括IPv6的啊。 请看这个云友以下的这个贴图,最后一行代表是IPv6的所有网络接口: ------------------------- 回 105楼(莫尼玛) 的帖子 您好, 好的,请稍等。 8310可以,8300也可以。 root@los:~# telnet -6 ht.yulesy.cn 8310 Trying 2001:470:18:aa8::2... Connected to ht.yulesy.cn. Escape character is '^]'. root@los:~# telnet -6 ht.yulesy.cn 8300 Trying 2001:470:18:aa8::2... Connected to ht.yulesy.cn. Escape character is '^]'. ------------------------- 回 109楼(涛涛~) 的帖子 您好, 如果您需要通过http访问位于两个不同服务器上的文件,或许是需要为这两个服务器都配置ipv6隧道地址喔。 ------------------------- 回 110楼(陌祥伟) 的帖子 您好, 我现在没测试机,不能具体为您查看输出结果, 您用 ipconfig 查看到的信息页面内容是怎么样的呢? ------------------------- 回 113楼(陌祥伟) 的帖子 您好, 请问您提到的“本地ping和telnet端口是通的”,是ping ipv6和telnet ipv6隧道地址都正常吗? ------------------------- 回 115楼(陌祥伟) 的帖子 您好, 我这里为您测试,也是ping6不通, 或许您需要再检查一下是否有防火墙或其它缺漏的环节没留意到: --- 2001:470:23:70d::2 ping statistics --- 65 packets transmitted, 0 received, 100% packet loss, time 64000ms ------------------------- 回 119楼(leyuwei) 的帖子 您好, 请问您的ipv6隧道地址是 2001:470:18:ecc::2 吗? 我从外网测试,返回是403的错误页: root@los:~# wget -6 http://[2001:470:18:ecc::2]:8080 converted 'http://[2001:470:18:ecc::2]:8080' (ANSI_X3.4-1968) -> 'http://[2001:470:18:ecc::2]:8080' (UTF-8) --2017-01-07 01:27:05--  http://[2001:470:18:ecc::2]:8080/ Connecting to [2001:470:18:ecc::2]:8080... connected. HTTP request sent, awaiting response... 403 Forbidden 2017-01-07 01:27:09 ERROR 403: Forbidden. root@los:~# curl -6 'http://www.dlmunews.club:8080' <p align='center'>▒▒▒▒▒▒▒▒▒▒▒▒ַ▒▒▒▒▒޲▒ϣ▒▒▒▒▒▒ô▒▒▒▒▒▒▒▒°ɣ▒</p> <p align='center'>▒▒▒▒▒ִ▒▒▒▒ˣ▒▒▒▒▒▒޾▒Ҫ▒▒ȡһЩ▒ֶ▒▒ˣ▒</p> <br/> <p align='center'>403 FORBIDDEN</p> <p align='center'>▒▒▒▒▒▒˼▒▒▒▒▒▒▒뿴▒▒▒ҵ▒▒▒▒ӣ▒</p>root@los:~# ------------------------- 回 118楼(陌祥伟) 的帖子 您好, 我去找个Windows 2008的系统为您测试一下喔。 请等待。 ------------------------- Re:回 118楼(陌祥伟) 的帖子 您好, 我找个测试机(用的是Windows 2008 SP2 32位中文版公共镜像),重复操作了一次,好象正常哩: C:\Users\Administrator>netsh interface ipv6 show interface Idx  Met   MTU   状态          名称 ---  ---  -----  -----------  -------------------   1   50 4294967295  connected    Loopback Pseudo-Interface 1 15   10   1280  connected    IP6Tunnel 10   10   1500  connected    本地连接 22   50   1280  disconnected  本地连接* 12 23   50   1280  disconnected  本地连接* 13 11   10   1500  connected    本地连接 2 C:\Users\Administrator>ping -6 2001:470:18:401::2 正在 Ping 2001:470:18:401::2 从 2001:470:18:401::2 具有 32 字节的数据: 来自 2001:470:18:401::2 的回复: 时间<1ms 来自 2001:470:18:401::2 的回复: 时间<1ms 2001:470:18:401::2 的 Ping 统计信息:     数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位):     最短 = 0ms,最长 = 0ms,平均 = 0ms Control-C ^C C:\Users\Administrator>ping -6 ipv6.google.com 正在 Ping ipv6.l.google.com [2404:6800:4008:800::200e] 从 2001:470:18:401::2 具 有 32 字节的数据: 来自 2404:6800:4008:800::200e 的回复: 时间=401ms 来自 2404:6800:4008:800::200e 的回复: 时间=400ms ------------------------- 回 122楼(leyuwei) 的帖子 您好, 在我使用的测试机里,能访问到您提供的网址内容喔,祝您通过APP的IPv6审核。 root@los:~/test# curl -6 'http://www.dlmunews.club:8080/dlmunews/test.html' test IPV6root@los:~/test# ------------------------- 回 125楼(陌祥伟) 的帖子 您好, 抱歉没有留意您的ECS网络类型, 弹性公网IP,看介绍说是一种NatIP,我不确定这与“经典网络”里的公网IP是否有一些使用限制情景, 建议您发工单咨询一下阿里云官方工程师: https://workorder.console.aliyun.com/ 本帖里的例子ECS是“经典网络”,并不是“专有网络”或“弹性公网IP”的使用场景喔。 ------------------------- 回 131楼(dearvitamin) 的帖子 您好, 测试得知,经典网络中的站点可以,专用网络中的站点不可以访问到喔。 root@los:~/test# curl -6 'http://www.spl258.com' -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' 斯普林游戏 root@los:~/test# curl -6 'http://www.longm258.com' -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' ------------------------- 回 133楼(vinny1024) 的帖子 您好, 欢迎来到阿里云论坛。 本例子里的Web是IIS,并不是apache喔。 请问您在apache的配置文件里,已经设置监听使得ipv6的地址和端口了吗? ------------------------- 回 136楼(raolan123) 的帖子 您好, 已有的云友反馈,不能按例子中的方法在”专有网络“中成功设置ipv6隧道地址。 ------------------------- 回 138楼(ekuns) 的帖子 您好, 欢迎来到阿里云论坛。 操作步骤,Windows 2012和Windows 2008应该是大致相同的。 请问您是否曾按帖子里的步骤,在Windows 2008里测试了呢? 如果您在Windows 2008里测试失败,我为您找个测试机来实践一下喔。 ------------------------- 回 140楼(poplanchong) 的帖子 您好, 如果是ipv6-only,可能还需要DNS解析之类支持的。 ------------------------- 回 142楼(poplanchong) 的帖子 您好, 欢迎来到阿里云论坛。 如果可以ping通ipv6的隧道地址,那么说明配置应该是成功的。 但如果您设置ipv6隧道地址目的是为了通过苹果的APP审核,还是要看苹果公司的判断结果喔。 祝您成功。 ------------------------- 回 144楼(poplanchong) 的帖子 您好, 很高兴听到您的APP已经通过苹果公司的审核。 我没有向苹果公司提交过APP审核,并没有实践的经验。所以我也不确定为什么苹果公司先后不同审核结果的原因。 您前后向苹果公司提交过几个网址用于审核? ------------------------- 回 146楼(没办法抽奖) 的帖子 您好, 我在测试机里, 可以ping通您提到的网关,但您的隧道地址ping不通喔, 是不是哪一步没有操作完整? root@los:~/test5# ping6 2001:470:1f04:a9e::2 PING 2001:470:1f04:a9e::2(2001:470:1f04:a9e::2) 56 data bytes --- 2001:470:1f04:a9e::2 ping statistics --- 41 packets transmitted, 0 received, 100% packet loss, time 39999ms root@los:~/test5# ping6 2001:470:1f04:a9e::1 PING 2001:470:1f04:a9e::1(2001:470:1f04:a9e::1) 56 data bytes 64 bytes from 2001:470:1f04:a9e::1: icmp_seq=1 ttl=56 time=53.5 ms 64 bytes from 2001:470:1f04:a9e::1: icmp_seq=2 ttl=56 time=53.8 ms ------------------------- 回 147楼(poplanchong) 的帖子 您好,   如此,我也不确定具体的原因了。不过,APP审核通过了,终究是件好事,是不是呢? ------------------------- 回 150楼(没办法抽奖) 的帖子 晚上好, 请问您的ECS操作系统是Windows 2012的吗? ------------------------- 回 152楼(l_zhaowei) 的帖子 您好, 请问您新购的ECS实例带宽类型是“专有网络”的吗? ------------------------- 回 153楼(l_zhaowei) 的帖子 您好, 暂时没有在“专有网络”实现IPv6隧道地址的方案喔,抱歉。 ------------------------- 回 157楼(鸿儒网络) 的帖子 您好, 看您的截图,或许需要先着重看一下,为什么“80端口不显示IPV6”, 请问您的站点绑定属性中,是否有IPv6的地址可以选择使用呢? ------------------------- 回 159楼(aeria) 的帖子 您好, 欢迎来到阿里云论坛。 请问您运行 netstat 的命令,可以查看到tomcat在ipv6的80端口上也有监听使用吗? ------------------------- 回 161楼(aeria) 的帖子 您好, 能贴一下您的tomcat配置文件 server.xml 的内容吗(监听那个环节的)? ------------------------- 回 164楼(aeria) 的帖子 您好, 或许您可以查看一下这个问答里提到的“authbind”: http://serverfault.com/questions/605684/tomcat-java-not-listening-on-ipv6 ------------------------- 回 167楼(aeria) 的帖子 您好, 那我去找个测试机,为您测试一下。 您的环境,是Windows 2012 + Tomcat 8 吗? ------------------------- 回 170楼(aeria) 的帖子 您好, 为您写了这个帖子,不知道是否对您有用: 《用ipv6隧道地址访问tomcat 站点内容》 - https://bbs.aliyun.com/read/312055.html ------------------------- 回 172楼(bingo_vc) 的帖子 您好, 欢迎来到阿里云论坛。 如果您的站点不需要域名访问,直接用ipv6隧道地址访问,应该也是可以的喔。 ------------------------- 回 174楼(clks) 的帖子 您好, 现在为您测试,可以访问得到页面喔: --2017-04-09 06:25:52--   http://www.meihaojiawodecheng.cn/ Resolving www.meihaojiawodecheng.cn (www.meihaojiawodecheng.cn)... 2001:470:18:352::2, 116.62.37.108 Connecting to www.meihaojiawodecheng.cn (www.meihaojiawodecheng.cn)|2001:470:18:352::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 2241 (2.2K) [text/html] Saving to: 'index.html.3' ------------------------- 回 176楼(clks) 的帖子 您好, 在浏览器里,输入如 http://[2001:470:18:352::2]/ 的地址后,应该就能显示到站点内容了,有时可能需要刷新多几下。 ------------------------- 回 178楼(自由2017) 的帖子 您好, 抱歉延时回复。 请问您的ECS实例带宽类型是哪种,是“经典网络”还是“专有网络”呢? ------------------------- 回 179楼(l_zhaowei) 的帖子 您好, 如果ECS实例是“专有网络”的,或许可以参考这个帖子里的例子试试喔: https://bbs.aliyun.com/read/312196.html ------------------------- 回 182楼(l_zhaowei) 的帖子 您好, 有“经典网络”的选项,据云友们反馈,好象一些较早之前注册和使用的阿里云账户还可以在新购的ECS配置里选择“经典网络”的网络类型。 ------------------------- 回 183楼(lbmjsls) 的帖子 您好, 欢迎来到阿里云论坛。 是的,可以,您可以用一个已经有ICP备案的子域名来操作,如果您认为不会对您的业务带来负面影响的话。 ------------------------- 回 186楼(l_zhaowei) 的帖子 您好, 目前收到的反馈来看,并不是所有的阿里云账号可以选购到“经典网络”。 我并不清楚阿里云的具体购物车规则哩。 ------------------------- 回 188楼(自由2017) 的帖子 您好, 如果ECS实例是“专有网络”的,或许可以参考这个帖子里的例子试试喔: https://bbs.aliyun.com/read/312196.html ------------------------- 回 190楼(自由2017) 的帖子 您好, 已经站内信您喔。 ------------------------- 回 192楼(lbmjsls) 的帖子 您好, 都可以ping通,但返回的延时可能有些高。 root@los:~/test5# ping6 thls.qian178.com PING thls.qian178.com(lbmjsls-1-pt.tunnel.tserv20.hkg1.ipv6.he.net) 56 data bytes 64 bytes from lbmjsls-1-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=1 ttl=121 time=624 ms 64 bytes from lbmjsls-1-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=2 ttl=121 time=622 ms --- thls.qian178.com ping statistics --- 3 packets transmitted, 2 received, 33% packet loss, time 2000ms rtt min/avg/max/mdev = 622.017/623.254/624.492/1.467 ms root@los:~/test5# ping6 qian178.com PING qian178.com(lbmjsls-2-pt.tunnel.tserv20.hkg1.ipv6.he.net) 56 data bytes 64 bytes from lbmjsls-2-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=2 ttl=121 time=564 ms 64 bytes from lbmjsls-2-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=3 ttl=121 time=563 ms ------------------------- 回 194楼(龙阁商务) 的帖子 您好, 欢迎来到阿里云论坛。 如果前两项测试通,那就可以了呀。 您是对哪里还不满意呢? ------------------------- 回 196楼(龙阁商务) 的帖子 您好, 苹果审核不限次数的吧? 期待您的审核结果喔。 ------------------------- 回 198楼(cloud_lee) 的帖子 您好, 在国外的IPv6环境中的服务器为您测试IPv6访问,是可以的喔: --2017-04-17 07:40:56--   http://www.zxwol.com/ Resolving www.zxwol.com (www.zxwol.com)... 2001:470:18:5cf::2 Connecting to www.zxwol.com (www.zxwol.com)|2001:470:18:5cf::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 135046 (132K) [text/html] Saving to: 'index.html.15' ------------------------- 回 204楼(龙阁商务) 的帖子 您好, 现在测试,可以访问喔。 --2017-04-18 03:48:45--   http://myjcb.hqzh168.com/ Resolving myjcb.hqzh168.com (myjcb.hqzh168.com)... 2001:470:a:ba4::2 Connecting to myjcb.hqzh168.com (myjcb.hqzh168.com)|2001:470:a:ba4::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 34431 (34K) [text/html] Saving to: 'index.html.16' ------------------------- 回 206楼(hsy-ios) 的帖子 您好, 欢迎来到阿里云论坛。 现在看起来,您的ipv6隧道地址可以ping得通喔: PING 2001:470:18:600::2(2001:470:18:600::2) 56 data bytes 64 bytes from 2001:470:18:600::2: icmp_seq=1 ttl=121 time=557 ms 64 bytes from 2001:470:18:600::2: icmp_seq=2 ttl=121 time=567 ms 64 bytes from 2001:470:18:600::2: icmp_seq=3 ttl=121 time=574 ms ------------------------- 回 208楼(hsy-ios) 的帖子 您好, 请问是哪个ipv6地址呢? ------------------------- 回 210楼(hsy-ios) 的帖子 您好, --2017-04-20 22:41:23--  http://[2001:470:18:600::2]/ Connecting to [2001:470:18:600::2]:80... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://m.wnchebao.com/ [following] converted 'https://m.wnchebao.com/' (ANSI_X3.4-1968) -> 'https://m.wnchebao.com/' (UTF-8) --2017-04-20 22:41:24--   https://m.wnchebao.com/ Resolving m.wnchebao.com (m.wnchebao.com)... 2001:470:18:600::2 Connecting to m.wnchebao.com (m.wnchebao.com)|2001:470:18:600::2|:443... connected. HTTP request sent, awaiting response... 404 Not Found 2017-04-20 22:41:27 ERROR 404: Not Found. ------------------------- 回 212楼(鸿儒网络) 的帖子 您好, 感谢您的经验分享喔。 如有更多的用户遇到类似的“延迟生效”现象,将添加相应的提示信息喔。 ------------------------- 回 214楼(北极星图图) 的帖子 您好, 如果tomcat没有在ipv6的网络地址上监听,您可以详细查看一下tomcat的配置文件喔, 这里有一个例子可以参考一下: https://bbs.aliyun.com/read/312055.html ------------------------- 回 215楼(潘飞虎) 的帖子 您好, 测试的话,您的ipv6隧道地址可以ping通,但ipv6的80连接超时,建议检查web服务的配置喔: PING 2001:470:18:6ae::2(2001:470:18:6ae::2) 56 data bytes 64 bytes from 2001:470:18:6ae::2: icmp_seq=1 ttl=121 time=564 ms 64 bytes from 2001:470:18:6ae::2: icmp_seq=2 ttl=121 time=565 ms --- 2001:470:18:6ae::2 ping statistics --- 3 packets transmitted, 2 received, 33% packet loss, time 1999ms rtt min/avg/max/mdev = 564.291/565.080/565.870/1.090 ms root@los:~/test5# wget -6 http://[2001:470:18:6ae::2] converted 'http://[2001:470:18:6ae::2]' (ANSI_X3.4-1968) -> 'http://[2001:470:18:6ae::2]' (UTF-8) --2017-04-26 14:02:36--  http://[2001:470:18:6ae::2]/ Connecting to [2001:470:18:6ae::2]:80... failed: Connection timed out. Retrying. ------------------------- 回 216楼(hzyt) 的帖子 您好, 欢迎来到阿里云论坛。 请问您ECS实例带宽类型是哪种呢,是“专有网络”吗? ------------------------- 回 220楼(潘飞虎) 的帖子 您好, 请问您的apache配置文件,如 httpd.conf 中,是否有监听ipv6的网络地址呢(如[::])? ------------------------- 回 221楼(永超科技) 的帖子 您好, 请问是否您多次运行了相同的netsh配置命令呢? ------------------------- 回 224楼(beijixingtu) 的帖子 您好, 现在访问您的站点,在ipv6访问中,应该是可以看到内容(或许是部分)的: ------------------------- 回 226楼(四眼鱼) 的帖子 您好, 抱歉延时回复, 请问您的ECS实例使用提“经典网络”的网络类型吗? ------------------------- 回 228楼(这是高科技) 的帖子 您好, 因为目前阿里云的“专有网络”类型的ECS实例限制,不能成功配置和使用6in4的IPv6隧道地址的。 使用外部的IPv6地址的VPS,虽然可以尝试,但也不一定能100%解决苹果APP上架的困扰。 ------------------------- 回 229楼(潘飞虎) 的帖子 您好, 可能还需要看具体的原因,苹果有没有具体说是因为什么而拒绝呢?还是因为IPv6的访问可用性吗? IPv6的DNS并不是必须的,如果您也想设置IPv6的DNS,可以参考这个帖子:《用HE提供的免费DNS解析服务通过IPv6 DNS检测》 - https://bbs.aliyun.com/read/313524.html? ------------------------- 回 233楼(潘飞虎) 的帖子 您好, 嗯,或许您还可以具体说说,中国目前的公共互联网还没有实现IPv6,所以对于中国的APP很为难。 ------------------------- 回 234楼(beijixingtu) 的帖子 您好, 是的,如果可以,可以附上说明,目前中国的公共互联网没有实现IPv6,一般用户无法直接在IPv6的环境里完成完整测试。 ------------------------- 回 237楼(潘飞虎) 的帖子 您好, 苹果要求目前国内还没有完整布置的IPv6环境,是有些让普通人摸不着头脑。 那您现在的工作环境中,有具备测试条件吗?如Mac电脑和苹果手机。 ------------------------- 回 239楼(潘飞虎) 的帖子 您好, 文档中提到,即使是用Mac模拟ipv6的网络,但带宽的出口还是ipv4的。 或许您可以尝试建一个可访问ipv6的wifi环境试试,如网上看到有一些无线路由器或许可以“独特”地构建出来。 ------------------------- 回 240楼(xunchengweidao) 的帖子 您好, 欢迎来到阿里云论坛。 或许您当前使用的nginx没有编译对ipv6的支持喔。 ------------------------- 回 244楼(feng_li) 的帖子 您好, 欢迎来到阿里云论坛。 很乐意,为您ping6测试: PING www.ymygo.com(wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net) 56 data bytes 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=1 ttl=121 time=430 ms 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=2 ttl=121 time=429 ms 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=3 ttl=121 time=430 ms 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=4 ttl=121 time=430 ms ------------------------- 回 246楼(feng_li) 的帖子 您好, 现在再次测试,还是能ping得通。 配置了ipv6的隧道地址,仅是说您的系统(服务器)可以通过隧道地址交换ipv6的数据,如能ping6通或浏览ipv6的网站。但这并不代表着您的APP一定可以支持ipv6的访问喔。建议您再对照着苹果对于APP的 IPv6 设计指导,看看是否有其它原因: https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html PING www.ymygo.com(wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net) 56 data bytes 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=1 ttl=121 time=434 ms 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=2 ttl=121 time=434 ms ------------------------- 回 248楼(爱爱莫能助) 的帖子 您好, 欢迎来到阿里云论坛。 在系统里配置ipv6的命令在he的站点上有提供现成的喔。 ------------------------- 回 251楼(天下才子) 的帖子 您好, 为您查看,现在可以在浏览器里看到内容喔: ------------------------- 回 255楼(居然要昵称) 的帖子 您好, 欢迎来到阿里云论坛。 请问,如 ping ::1  会有哪些信息提示呢? ------------------------- 回 254楼(天下才子) 的帖子 您好, 请问您家里的宽带是哪家的呢,是中国电信的吗? ------------------------- 回 259楼(新飞) 的帖子 您好, 最后一项检测的对象是ipv6 dns server,这是与域名的解析DNS地址相关, 如果您需要,可能需要将域名的DNS地址更改为国外支持ipv6的。 ------------------------- 回 260楼(robin_tian) 的帖子 您好, 欢迎来到阿里云论坛, 看起来,http可以访问喔(但首页会提示404出错): converted 'http://api2.ihyoo.com' (ANSI_X3.4-1968) -> 'http://api2.ihyoo.com' (UTF-8) --2017-05-15 16:03:04--   http://api2.ihyoo.com/ Resolving api2.ihyoo.com (api2.ihyoo.com)... 2001:470:18:d6::2 Connecting to api2.ihyoo.com (api2.ihyoo.com)|2001:470:18:d6::2|:80... connected. HTTP request sent, awaiting response... 404 Not Found 2017-05-15 16:03:06 ERROR 404: Not Found. ------------------------- 回 264楼(天下才子) 的帖子 您好, 如果在您的电脑上不能访问ipv6的网站,可以尝试通过这个在线网站测试一下(可能要用代理): www.ipv6proxy.net ------------------------- 回 267楼(jsrabbit) 的帖子 您好, 欢迎来到阿里云论坛。 看您的几个截图,出现了两个IPv6地址,2001:da8:20d:400::8be0:dd58 和 2001:470:18:b5::2, 如果 2001:470:18:b5::2 是正确的,现在测试是可以访问到80端口端的喔: converted 'http://[2001:470:18:b5::2]' (ANSI_X3.4-1968) -> 'http://[2001:470:18:b5::2]' (UTF-8) --2017-05-17 13:50:44--  http://[2001:470:18:b5::2]/ Connecting to [2001:470:18:b5::2]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 107908 (105K) [text/html] Saving to: 'index.html' index.html                       100%[=========================================================>] 105.38K  20.0KB/s   in 5.3s ------------------------- 回 269楼(jsrabbit) 的帖子 您好, 个人觉得 IPv6 DNS Server 设置与否,影响不大。但您有空,也可以换一家支持IPv6的国外DNS商,如 dns.he.net。 ------------------------- 回 270楼(eric984) 的帖子 来自河源的朋友, 欢迎来到阿里云论坛。 如之前有云友提到,将HE提供的示例命令中,将公网IP换成私网IP,或许就可以了喔。 ------------------------- 回 273楼(通通优品) 的帖子 您好, 欢迎来到阿里云论坛。 请问您在HE里提交的IP地址是什么呢? 一般是提交ECS实例的公网IP地址,并不是内网IP地址喔。 ------------------------- 回 275楼(通通优品) 的帖子 您好, 那能否再检查一下您的安全组规则设置呢(有没有过滤80端口)? 如果可以,或许您可以先尝试在规则里开放所有的访问,对比一下结果。 ------------------------- 回 277楼(通通优品) 的帖子 您好, 如果您多次尝试运行命令来绑定ipv6隧道地址,需要确认最后ipv6隧道地址是能从外网ping6通的喔,同时可以查看一下路由表是否正确。 ------------------------- 回 280楼(大男人主义) 的帖子 您好, 欢迎来到阿里云论坛。 祝您的APP能成功上架喔。 ------------------------- 回 282楼(仙人掌有刺) 的帖子 您好, 从现在的测试结果来看,好象您的域名AAAA解析没有生效或失败: converted 'http://m.dnanren.cn' (ANSI_X3.4-1968) -> 'http://m.dnanren.cn' (UTF-8) --2017-05-25 10:30:51--   http://m.dnanren.cn/ Resolving m.dnanren.cn (m.dnanren.cn)... failed: Name or service not known. wget: unable to resolve host address 'm.dnanren.cn' ------------------------- 回 284楼(葫芦娃警长) 的帖子 您好, 抱歉给您带来不便。 域名AAAA记录和ipv4的A记录是不互相影响的喔。 如果ping -6 外网的地址不通,那有可能是路由没配置好喔。 ------------------------- 回 287楼(中广巨力) 的帖子 您好, 欢迎来到阿里云论坛。 现在好象我无法ping通您的ipv6隧道地址喔: PING 2001:470:1f10:124::2(2001:470:1f10:124::2) 56 data bytes --- 2001:470:1f10:124::2 ping statistics --- 13 packets transmitted, 0 received, 100% packet loss, time 11997ms ------------------------- 回 290楼(中广巨力) 的帖子 您好, 欢迎来到阿里云论坛。 一般不需要重新申请第二个隧道地址喔。 建议您检查一下ipv6的路由情况。 ------------------------- 回 292楼(中广巨力) 的帖子 您好, 抱歉延时回复。 如果您ping -6 不通隧道地址的网关,可以检查一下ECS实例的安全组是否有限制访问: https://help.aliyun.com/document_detail/25471.html ------------------------- 回 294楼(yan555) 的帖子 您好, 欢迎来到阿里云论坛。 请问您在系统中执行的是哪些命令, 执行命令后,有哪些回显的信息呢? ------------------------- 回 298楼(lsfoo) 的帖子 您好, 欢迎来到阿里云论坛。 例子中是ipv6隧道地址,是需经ipv4传送的,所以,建议您在安全组里允许所有的协议和端口,对比测试一下喔。 ------------------------- 回 300楼(华邦云12138) 的帖子 您好, 提示有重名,有可能是多次执行命令后提示的。 可删除之前添加的,或第二次执行命令时,跳过这一步。 ------------------------- 回 301楼(华邦云12138) 的帖子 您好, 建议您检查实例的安全组规则, 如果可以,建议放行全部的协议和端口: https://help.aliyun.com/document_detail/25471.html ------------------------- 回 305楼(华邦云12138) 的帖子 您好, 抱歉延时回复。 能否截图,看看您的安全组规则呢? ------------------------- 回 306楼(笔墨kk) 的帖子 您好, 欢迎来到阿里云论坛。 在图中看到的信息,虚拟的IPv6网络接口是“断开”状态的喔。 请问您具体执行了哪些命令呢? ------------------------- 回 310楼(笔墨kk) 的帖子 您好, 看命令的内容,是HE网站上提供的。 如果您使用的专有网络,需要注意将命令中的公网IP换成系统的内网IP喔。 ------------------------- 回 312楼(笔墨kk) 的帖子 您好, 可以先试试哩,替换一下IP后试试。 ------------------------- 回 314楼(华邦云12138) 的帖子 您好, 如广东的中国电信用户,应该也可以直接ping -6 的吧, 如现在我尝试的: 正在 Ping 2001:470:18:b07::2 具有 32 字节的数据: 请求超时。 来自 2001:470:18:b07::2 的回复: 时间=994ms 来自 2001:470:18:b07::2 的回复: 时间=996ms 来自 2001:470:18:b07::2 的回复: 时间=959ms 2001:470:18:b07::2 的 Ping 统计信息:     数据包: 已发送 = 4,已接收 = 3,丢失 = 1 (25% 丢失), 往返行程的估计时间(以毫秒为单位):     最短 = 959ms,最长 = 996ms,平均 = 983ms ------------------------- 回 317楼(笔墨kk) 的帖子 您好, 创建IPv6隧道地址时,是需要提交公网IP的喔。 只不过,是在创建好隧道地址后的命令中,替换喔。 ------------------------- 回 320楼(笔墨kk) 的帖子 您好, 很高兴听到您已经在系统中成功配置了ipv6隧道地址。 ------------------------- 回 322楼(笔墨kk) 的帖子 您好, 这个需要满足一些条件的,如您家里用来ping的系统是什么呢,有没有启用ipv6?您家里的路由器是否支持ipv6? 如在我自己的电脑里能ping -6 通您的隧道地址: 正在 Ping yongchun.gosob.com [2001:470:18:cce::2] 具有 32 字节的数据: 来自 2001:470:18:cce::2 的回复: 时间=3291ms 请求超时。 来自 2001:470:18:cce::2 的回复: 时间=676ms 来自 2001:470:18:cce::2 的回复: 时间=913ms ------------------------- 回 321楼(miazhang) 的帖子 您好, 欢迎来到阿里云论坛。 现在从外网的机子测试,能ping6通您的隧道地址喔。 论坛在Chrome和Firefox里,是无法上传图片,但如UC可以。 PING 2001:470:18:b61::2(2001:470:18:b61::2) 56 data bytes 64 bytes from 2001:470:18:b61::2: icmp_seq=1 ttl=121 time=610 ms 64 bytes from 2001:470:18:b61::2: icmp_seq=2 ttl=121 time=602 ms 64 bytes from 2001:470:18:b61::2: icmp_seq=3 ttl=121 time=601 ms 64 bytes from 2001:470:18:b61::2: icmp_seq=4 ttl=121 time=602 ms ------------------------- 回 326楼(笔墨kk) 的帖子 您好, 嗯,一般情况来说,能ping -6 得通ipv6隧道地址,那说明您的设置生效了喔。 如果不信,那可以重装ECS系统后,再ping -6 一下,看能否通。 ------------------------- 回 328楼(笔墨kk) 的帖子 您好, 好哩,祝您的APP上架成功喔。 ------------------------- 回 329楼(miazhang) 的帖子 您好, 请问执行以下命令,会有什么样的显示结果呢? netstat -noa | find ":80" ------------------------- 回 333楼(miazhang) 的帖子 您好, 如果这是全部的信息输出, 是喔,您的Web服务没有在ipv6的网络接口上监听使用喔。 ------------------------- 回 334楼(leodoo) 的帖子 您好, 欢迎来到阿里云论坛。 1. HE的隧道地址是6in4,好象是理解为将ipv6的数据包通过ipv4来传送。如果您的应用服务需要使用ipv6地址来通讯,是需要在ipv6的网络接口上监听 3. 从外网测试,可以访问您的站点喔: converted 'http://5656k.com' (ANSI_X3.4-1968) -> 'http://5656k.com' (UTF-8) --2017-06-15 10:24:13--   http://5656k.com/ Resolving 5656k.com (5656k.com)... 2001:470:18:cf4::2 Connecting to 5656k.com (5656k.com)|2001:470:18:cf4::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: 'index.html.5' ------------------------- Re:回 338楼(miazhang) 的帖子 您好, 如果是 dig,应该是dig域名而不是网址吧? ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46629 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ; www.xueshupa.net.              IN      AAAA ;; ANSWER SECTION: www.xueshupa.net.       600     IN      AAAA    2001:470:18:b61::2 ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 25716 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ; http://www.xueshupa.net.       IN      AAAA ;; Query time: 5013 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Thu Jun 15 23:22:35 CST 2017 ;; MSG SIZE  rcvd: 52 ------------------------- 回 340楼(超级蜜蜂) 的帖子 您好, 欢迎来到阿里云论坛。 现在我测试,可以喔: --2017-06-20 21:20:37--   https://www.zgzbsc.vip/Diamond/frontgoods/index Resolving www.zgzbsc.vip (www.zgzbsc.vip)... 2001:470:18:1141::2 Connecting to www.zgzbsc.vip (www.zgzbsc.vip)|2001:470:18:1141::2|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: 'index' ------------------------- 回 342楼(miazhang) 的帖子 您好, 抱歉听到您的APP被苹果拒审, 如在开始讨论的,苹果并不要求APP服务器一定要有IPv6的地址,但强调APP软件本身要使用ipv6-only的设计规范,如要使用域名来引用地址,要使用新的函数,不能将ipv4的地址写死,等等。 建议您下一步的排查重心放在APP软件本身上。 ------------------------- 回 344楼(超级蜜蜂) 的帖子 您好, 抱歉听到您的APP被苹果拒审, 如在开始讨论的,苹果并不要求APP服务器一定要有IPv6的地址,但强调APP软件本身要使用ipv6-only的设计规范,如要使用域名来引用地址,要使用新的函数,不能将ipv4的地址写死,等等。 建议您下一步的排查重心放在APP软件本身上。 ------------------------- 回 347楼(hornsun.tech) 的帖子 您好, 欢迎来到阿里云论坛。 服务器 执行 netstat -nao | find "80"时 没看到有[::]:80端 -> 请问您有没检查Web的设置,是否有监听使用ipv6的地址呢? 按照提示,安全组规则也增加了公网的入网规则 -> 请问您添加的规则是怎么样的呢? ------------------------- 回 348楼(24k壮士) 的帖子 您好, 欢迎来到阿里云论坛。 现在测试,不能ping6通您的隧道地址喔。 ING zgzzhds.com(AyinAy7-1-pt.tunnel.tserv25.sin1.ipv6.he.net) 56 data bytes --- zgzzhds.com ping statistics --- 12 packets transmitted, 0 received, 100% packet loss, time 10997ms ------------------------- 回 351楼(很赞) 的帖子 您好, 欢迎来到阿里云论坛。 是的,因为SLB的服务器用户不能配置隧道地址,而ECS是在SLB后边。 ------------------------- 回 353楼(很赞) 的帖子 您好, 按苹果的指导文档来看,要求的是APP软件本身能兼容ipv6-only的网络环境,并不是要求APP服务器有ipv6的地址。 所以,重心应该是在app软件本身的设计和构建上哩。 ------------------------- 回 355楼(aaa.a) 的帖子 您好, 欢迎来到阿里云论坛。 现在测试,可以ping得通喔: PING 2001:470:35:7ee::2(2001:470:35:7ee::2) 56 data bytes 64 bytes from 2001:470:35:7ee::2: icmp_seq=1 ttl=120 time=555 ms 64 bytes from 2001:470:35:7ee::2: icmp_seq=2 ttl=120 time=555 ms 64 bytes from 2001:470:35:7ee::2: icmp_seq=3 ttl=120 time=555 ms ------------------------- 回 357楼(miazhang) 的帖子 您好, ipv6 dns server,请参考这个例子:《用HE提供的免费DNS解析服务通过IPv6 DNS检测》 - https://bbs.aliyun.com/read/313524.html? ------------------------- 回 359楼(xl_young) 的帖子 您好, 欢迎来到阿里云论坛。 请问您的实例安全组是否允许所以协议通过呢? ------------------------- 回 361楼(xl_young) 的帖子 您好, 能否截图看看安全组规则的内容? ------------------------- 您好,欢迎来到阿里云论坛。可以ping6通,wget返回404错误信息:--2017-08-01 12:24:03--  http://api.qingyun100.com/Resolving api.qingyun100.com (api.qingyun100.com)... 2001:470:18:490::2, 139.196.40.67Connecting to api.qingyun100.com (api.qingyun100.com)|2001:470:18:490::2|:80... connected.HTTP request sent, awaiting response... 404 Not Found2017-08-01 12:24:03 ERROR 404: Not Found. ------------------------- 回 365楼(菜鸟017) 的帖子 您好, 欢迎来到阿里云论坛。 从外围的服务器来测试的话,提示403禁止访问喔: --2017-08-09 09:35:44--   http://tangxianqipai1.zai0312.com:90/ Resolving tangxianqipai1.zai0312.com (tangxianqipai1.zai0312.com)... 2001:470:18:695::2 Connecting to tangxianqipai1.zai0312.com (tangxianqipai1.zai0312.com)|2001:470:18:695::2|:90... connected. HTTP request sent, awaiting response... 403 Forbidden 2017-08-09 09:35:45 ERROR 403: Forbidden. ------------------------- 回 368楼(菜鸟017) 的帖子 您好, 当时,我是使用境外的IPv6机子来为您测试的喔。 ------------------------- 回 369楼(菜鸟017) 的帖子 您好, 这个可能是测试时,所使用的DNS域名服务器不支持ipv6吧。 一般这个不太紧要的,因为国内的DNS服务器,一般没有IPv6地址的,除非您使用国外的。 ------------------------- 回 372楼(菜鸟017) 的帖子 您好, 目前的情况,可能阿里云没有为ECS配置可公众访问的IPv6地址呢。 阿里云的公共DNS服务器,目前好象也没有IPv6地址。 ------------------------- 回 374楼(菜鸟017) 的帖子 您好, 如果是在Windows 2012,删除之前存在的“ip6tunnel”虚拟接口, 或许可以试试以下这个命令: netsh int ipv6 delete interface "ip6tunnel" ------------------------- 回 377楼(菜鸟017) 的帖子 您好, 很高兴听到您已经解决了问题, 有空时,请多来阿里云论坛逛逛喔。 ------------------------- 回 380楼(sheldonlin) 的帖子 您好, 欢迎来到阿里云论坛。 能否贴出您在Windows里执行的命令? ------------------------- 您好,可能需要检查web服务是否也在ipv6的网络地址里监听80端口: --2017-08-20 09:37:23--  (try: 2)   http://kambuzz.com/ Connecting to kambuzz.com (kambuzz.com)|2001:470:18:8f2::2|:80... failed: Connection re fused. liujia@hk2:~/test6$ ping6 2001:470:18:8f2::2 PING 2001:470:18:8f2::2(2001:470:18:8f2::2) 56 data bytes 64 bytes from 2001:470:18:8f2::2: icmp_seq=1 ttl=127 time=311 ms 64 bytes from 2001:470:18:8f2::2: icmp_seq=2 ttl=127 time=310 ms ------------------------- 回 386楼(sheldonlin) 的帖子 您好, 是的。 好象没有80端口的监听使用情况喔。 执行以下的命令,再看看: netstat -noa | find ":80" ------------------------- 回 388楼(sheldonlin) 的帖子 您好, 您是想让您的站点能从ipv6的网络里访问到页面内容吗? 从您的命令输出结果来看,好象并没有web进程喔。 关于苹果对于ipv6-only的要求,请看这个指导文档: https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html#//apple_ref/doc/uid/TP40010220-CH213-SW1 ------------------------- 回 391楼(sheldonlin) 的帖子 您好, 那您在运行tomcat后,执行 netstat -noa | find ":8080" 后,有哪些输出结果呢? ------------------------- 回 394楼(sheldonlin) 的帖子 您好, 请尝试检查实例的安全组规则,看是否有阻止外网访问8080端口: https://help.aliyun.com/document_detail/25471.html ------------------------- 回 398楼(sheldonlin) 的帖子 您好, 总结得不错。 现在测试,是可以从外网的ipv6测试机访问的: liujia@hk2:~/test6$ wget -6 kambuzz.com:8080 --2017-08-21 10:51:58--   http://kambuzz.com:8080/ Resolving kambuzz.com (kambuzz.com)... 2001:470:18:8f2::2 Connecting to kambuzz.com (kambuzz.com)|2001:470:18:8f2::2|:8080... connected. HTTP request sent, awaiting response... 200 Length: unspecified [text/html] index.html: Permission denied 如果您的实例是Linux系统的,建议在后台长驻运行一个ping6的命令,如 ping6 ipv6.google.com ,以让您的ipv6隧道地址保持激活的状态,避免如20分钟后ipv6隧道地址ping6不通。 ------------------------- 回 400楼(sheldonlin) 的帖子 您好, 有时您的IPv6隧道地址ping不通, 在ping通时,可以访问到页面的内容,如: ------------------------- 回 402楼(sheldonlin) 的帖子 您好, 不确定具体的原因,但您可以尝试更换到其它的中转服务器,如美国的,看看会不会比目前的香港好些。 ------------------------- 回 405楼(sheldonlin) 的帖子 您好, ping6了几分钟后,可以ping通了。 liujia@hk2:~$ ping6 2001:470:c:67a::2 PING 2001:470:c:67a::2(2001:470:c:67a::2) 56 data bytes 64 bytes from 2001:470:c:67a::2: icmp_seq=232 ttl=123 time=313 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=233 ttl=123 time=313 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=234 ttl=123 time=313 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=235 ttl=123 time=313 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=236 ttl=123 time=315 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=237 ttl=123 time=387 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=238 ttl=123 time=387 ms --- 2001:470:c:67a::2 ping statistics --- 238 packets transmitted, 7 received, 97% packet loss, time 238848ms rtt min/avg/max/mdev = 313.431/335.021/387.851/33.233 ms ------------------------- 回 407楼(sheldonlin) 的帖子 您好, 测试的ping值差不多喔: PING 2001:470:18:94d::2(2001:470:18:94d::2) 56 data bytes 64 bytes from 2001:470:18:94d::2: icmp_seq=1 ttl=127 time=325 ms 64 bytes from 2001:470:18:94d::2: icmp_seq=2 ttl=127 time=325 ms 64 bytes from 2001:470:18:94d::2: icmp_seq=3 ttl=127 time=325 ms 64 bytes from 2001:470:18:94d::2: icmp_seq=4 ttl=127 time=325 ms 64 bytes from 2001:470:18:94d::2: icmp_seq=5 ttl=127 time=325 ms ------------------------- 回 409楼(觅约) 的帖子 您好, 欢迎来到阿里云论坛。 现在测试,访问正常喔: liujia@hk2:~/test6$ wget -6 app.miyueta.com:9088 --2017-08-28 18:25:36--   http://app.miyueta.com:9088/ Resolving app.miyueta.com (app.miyueta.com)... 2001:19f0:6001:213:5400:ff:fe77:5183 Connecting to app.miyueta.com (app.miyueta.com)|2001:19f0:6001:213:5400:ff:fe77:5183|:9088... connected. HTTP request sent, awaiting response... 200 OK Length: 52 [text/html] ------------------------- Re:回 411楼(ios——ot) 的帖子 您好, 我现在从外网为您ping6测试,可ping通,但有丢包。 liujia@hk2:~$ ping6 admin.allti.com.cn PING admin.allti.com.cn(wbnahqs-1-pt.tunnel.tserv25.sin1.ipv6.he.net) 56 data bytes 64 bytes from wbnahqs-1-pt.tunnel.tserv25.sin1.ipv6.he.net: icmp_seq=4 ttl=124 time=566 ms 64 bytes from wbnahqs-1-pt.tunnel.tserv25.sin1.ipv6.he.net: icmp_seq=5 ttl=124 time=545 ms 64 bytes from wbnahqs-1-pt.tunnel.tserv25.sin1.ipv6.he.net: icmp_seq=13 ttl=124 time=539 ms --- admin.allti.com.cn ping statistics --- 16 packets transmitted, 3 received, 81% packet loss, time 15087ms rtt min/avg/max/mdev = 539.496/550.382/566.125/11.400 ms ------------------------- 回 415楼(ios——ot) 的帖子 您好, 有可能。换别的中转服务器,如美国的来对比看看。 ------------------------- 回 437楼(卡乐) 的帖子 版主回复: 没看到相应的安全性评估。 个人想,是这样的:如果您的数据传送开始时,已经是加密的,如https,那隧道转发的服务器也不能读取到数据内容吧? 且,隧道转发的服务商,he.net应该是一家有信誉的公司。 再者,这里的隧道地址设置,目的是帮助APP上架,如果您的APP上架后,可停用隧道地址。 ------------------------- 回 439楼(卡乐) 的帖子 版主回复: 反方向操作哩,如在系统里禁用/删除隧道地址(如netsh int ipv6 delete interface "ip6tunnel")。 ------------------------- 回 443楼(阿凯十三郎) 的帖子 版主回复: 或许您需要检查一下ECS实例的安全组,看是放行了ipv6隧道地址服务器的访问。 目前测试来看,您的ipv6隧道地址从外网是ping6不通的。 --2018-01-25 10:41:07--   http://www.cjnmw.xyz/ Resolving www.cjnmw.xyz (www.cjnmw.xyz)... 2001:470:18:f02::2 Connecting to www.cjnmw.xyz (www.cjnmw.xyz)|2001:470:18:f02::2|:80... failed: Connection timed out. Retrying. liujia@hk2:~/test7$ ping6 2001:470:18:f02::2 PING 2001:470:18:f02::2(2001:470:18:f02::2) 56 data bytes --- 2001:470:18:f02::2 ping statistics --- 21 packets transmitted, 0 received, 100% packet loss, time 20154ms liujia@hk2:~/test7$ ping6 2001:470:18:f02::1 PING 2001:470:18:f02::1(2001:470:18:f02::1) 56 data bytes 64 bytes from 2001:470:18:f02::1: icmp_seq=1 ttl=64 time=1.41 ms 64 bytes from 2001:470:18:f02::1: icmp_seq=2 ttl=64 time=1.40 ms --- 2001:470:18:f02::1 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 1.404/1.409/1.415/0.037 ms ------------------------- 回 448楼(阿凯十三郎) 的帖子 版主回复: 从您的ECS实例能ping通隧道地址服务器的IP,但不代表从隧道地址的服务器能ping通(访问)您的ECS实例喔。 ------------------------- 回 449楼(阿凯十三郎) 的帖子 版主回复: 是哩,看起来,外网已经能通过隧道地址访问到您的apache里了。 您调整了ECS实例的安全组规则吗? ------------------------- 回 452楼(阿凯十三郎) 的帖子 版主回复: 据网友反馈:域名本身的 ipv6 DNS Server 并不重要。 ------------------------- 回 455楼(纪念青春) 的帖子 版主回复: 请试试: netsh int ipv6 delete interface "ip6tunnel" ------------------------- 回 458楼(老黄000001) 的帖子 您好, 图中信息,显示IPv6隧道地址断开状态, 请问您在之前配置隧道地址的命令中,包含的IP是ECS实例的公网IP还是内网IP? 一般来说,应该在命令中写内网IP的,即您图中的看到的172.18.132.2 ------------------------- 回 460楼(尜淇专版) 的帖子 您好, 在He.net里申请隧道地址时,请填写ECS实例的公网IP地址喔。 ------------------------- 回 462楼(潮约) 的帖子 您好, 使用VPC网络的ECS实例,在配置隧道地址时,是需要绑定内网IP,因为公网IP不是在系统里。 如果配置隧道地址时,绑定了内网IP,也无法正常使用的话,建议检查ECS实例安全组规则或Windows防火墙,如将隧道地址服务器的IPv4加到白名单中。
dongshan8 2019-12-02 02:58:04 0 浏览量 回答数 0
阿里云企业服务平台 陈四清的老板信息查询 上海奇点人才服务相关的云产品 爱迪商标注册信息 安徽华轩堂药业的公司信息查询 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 天籁阁商标注册信息 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 北京芙蓉天下的公司信息查询