淘宝watermax恒温花洒(watermark认证)

发布时间:

本篇文章给大家谈谈watermax恒温花洒,以及watermark认证的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

文章详情介绍:

抗水的苹果XS掉入浴缸进水需自费维修,律师:涉嫌虚假广告

贵州王先生日前向澎湃质量报告投诉平台(
https://www.thepaper.cn/consumersComplaint.jsp)反映称,他购买的iPhone XS Max手机2019年9月意外掉落浴缸后进水,导致面部识别功能损坏,需自费4800元维修。“宣传广告说能防水2米,但现在掉进浴缸就进水,与宣传广告不相符。”王先生说。

苹果公司客服人员2020年1月6日回应澎湃新闻称,广告宣传该产品具有抗水性能是指防生活溅水,但手机掉进水中而导致进水的情况属于人为意外,需要顾客自行承担维修费用。

宣称抗水的苹果XS掉进浴缸进水

王先生说,该手机购买于2018年10月,当时国内发布该款手机不久。2019年9月,手机意外掉进存水的浴缸,王先生随即捞出并用干燥剂进行常规吸水处理。正常开机后,其他功能正常,但手机面容ID功能无法使用。

“当初就是因为面部识别才买的这款手机,没想到掉水里就出了问题。”王先生说,他记得该手机宣传时曾介绍能在2米深的水下停留时间最长可达30分钟,“现在浴缸既没有2米,更没有停留30分钟,为什么会出现进水损坏的情况?感觉和实际宣传并不符合。”

澎湃新闻查阅苹果官网看到,在iPhone XS Max的介绍页上,仍标注着该手机可防溅、抗水、防尘,在受控实验室条件下经测试,其效果在IEC 60529标准下达到IP68级别(在最深2米的水下停留时间最长可达30分钟)。

经查询IEC 60529标准了解到,IP68等级中第一个数字为防尘等级,第二个数字指防水等级为“8”,即protected against the effects of continuous immersion in water(防止连续浸水的影响)。在该标准对“8”的定义中标明:当外壳连续浸入水中时,在制造商和用户所商定的条件下,不应有引起损害的水量浸入。

维修需自费4800元

在致电苹果客服人员后,王先生被告知手机发生损坏后应寻找授权维修店进行检测,售后人员将会给出处理方案。他带机前往授权维修店检测后,售后人员表示该手机进水需送厂家维修,并需要王先生承担维修费用4800元。

这让王先生不能理解,“为什么在宣传中承诺‘防水’,而且尚在保修期内的手机,进水后却要自费维修?”王先生认为手机存在一定的质量问题,并多次拨打苹果客服电话咨询,“每次客服都承诺会解决问题,但始终都没有实际行动”。

王先生说,此后再拨打客服电话,客服人员便用用户使用手册上“由于侵入液体而导致损坏的不在保修范围内”的条例进行回应。

苹果公司客服人员1月6日就此向澎湃新闻解释称,广告宣传产品具备抗水性能本身只是防生活溅水,像王先生这种掉入水中而导致进水的情况属于人为意外,“按照苹果公司的保修条例,人为损坏需要由顾客自行承担维修费用”。

律师称苹果涉嫌虚假广告

澎湃新闻了解到,苹果手机自iPhone7开始就具有抗水功能,目前最新发布的iPhone11系列更是达到了IP68的级别。但经检索,在百度贴吧、知乎等网站已有多名用户曾反映过iPhone10、11系列手机进水损坏问题。

澎湃新闻此前曾报道,有上海用户在购买iPhone X手机不到半年即出现手机屏幕触摸不灵、乱闪烁等情况。经厂家拆机检测后,表示“浸液”是导致故障的主要原因,为人为操作进水,无法享受保修政策,用户需自行承担4700元维修费。

天津日报、荔枝新闻等媒体也就iPhone XS Max发生浸液、进水故障但被苹果售后拒绝保修的消费投诉案例进行过公开报道。在类似进水事件中,曾大力宣传“抗水”的苹果手机均以“人为原因”为由被苹果公司拒绝保修或换机,并要求用户支付高昂的维修费用。

对于上述事件,北京百瑞(成都)律师事务所律师黄杰祥1月8日告诉澎湃新闻,若用户在正常使用商品的过程中,商品的性能、功能、质量等未达到宣传效果,可要求销售方承担违约责任,例如免费维修。

“如果该个商品普遍未达到所宣传的性能、功能、质量,则说明所宣传的性能、质量与实际情况不符,违反《广告法》第二十八条的规定,构成虚假广告。而且,如果广告中包含了引人误解的内容,或者该内容会误导消费者,那么也构成虚假广告。”黄杰祥认为,苹果手机在此前宣传中介绍“在最深2米的水下停留时间最长可达30分钟”,此后又解释为“仅防生活溅水”,存在误导消费者的行为,涉嫌虚假广告。

限流算法之漏桶算法、令牌桶算法

限流

每个API接口都是有访问上限的,当访问频率或者并发量超过其承受范围时候,我们就必须考虑限流来保证接口的可用性或者降级,即接口也需要安装上保险丝,以防止非预期的请求对系统压力过大而引起的系统瘫痪。

通常的策略就是拒绝多余的访问,或者让多余的访问排队等待服务,或者引流。

限流算法

常用的更平滑的限流算法有两种:漏桶算法和令牌桶算法。

漏桶算法

漏桶(Leaky Bucket)算法思路很简单,水(请求)先进入到漏桶里,漏桶以一定的速度出水(接口有响应速率),当水流入速度过大会直接溢出(访问频率超过接口响应速率),然后就拒绝请求,可以看出漏桶算法能强行限制数据的传输速率。示意图如下:

可见这里有两个变量,一个是桶的大小,支持流量突发增多时可以存多少的水(burst),另一个是水桶漏洞的大小(rate),伪代码如下:

double rate; // leak rate in calls/s

double burst; // bucket size in calls

long refreshTime; // time for last water refresh

double water; // water count at refreshTime

refreshWater() {

long now = getTimeOfDay();

//水随着时间流逝,不断流走,最多就流干到0.

water = max(0, water- (now - refreshTime)*rate);

refreshTime = now;

}

bool permissionGranted() {

refreshWater();

if (water < burst) { // 水桶还没满,继续加1

water ++;

return true;

} else {

return false;

}

}

因为漏桶的漏出速率是固定的参数,所以,即使网络中不存在资源冲突(没有发生拥塞),漏桶算法也不能使流突发(burst)到端口速率。因此,漏桶算法对于存在突发特性的流量来说缺乏效率。

令牌桶算法

令牌桶算法(Token Bucket)和 Leaky Bucket 效果一样,但方向相反的算法。随着时间流逝,系统会按恒定1/QPS时间间隔(如果QPS=100,则间隔是10ms)往桶里加入Token(想象和漏洞漏水相反,有个水龙头在不断的加水),如果桶已经满了就不再加了。新请求来临时,会各自拿走一个Token,如果没有Token可拿了就阻塞或者拒绝服务。

大小固定的令牌桶可自行以恒定的速率源源不断地产生令牌。如果令牌不被消耗,或者被消耗的速度小于产生的速度,令牌就会不断地增多,直到把桶填满。后面再产生的令牌就会从桶中溢出。最后桶中可以保存的最大令牌数永远不会超过桶的大小。

传送到令牌桶的数据包需要消耗令牌。不同大小的数据包,消耗的令牌数量不一样。

令牌桶这种控制机制基于令牌桶中是否存在令牌来指示什么时候可以发送流量。令牌桶中的每一个令牌都代表一个字节。如果令牌桶中存在令牌,则允许发送流量;而如果令牌桶中不存在令牌,则不允许发送流量。因此,如果突发门限被合理地配置并且令牌桶中有足够的令牌,那么流量就可以以峰值速率发送。

Guava RateLimiter 简介

Google开源工具包Guava提供了限流工具类RateLimiter,该类基于令牌桶算法(Token Bucket)来完成限流,非常易于使用。RateLimiter经常用于限制对一些物理资源或者逻辑资源的访问速率。它支持两种获取permits接口,一种是如果拿不到立刻返回false,一种会阻塞等待一段时间看能不能拿到。

RateLimiter和Java中的信号量(
java.util.concurrent.Semaphore)类似,Semaphore通常用于限制并发量。

源码中的一个例子,比如我们有很多任务需要执行,但是我们不希望每秒超过两个任务执行,那么我们就可以使用RateLimiter:

final RateLimiter rateLimiter = RateLimiter.create(2.0);

void submitTasks(List tasks, Executor executor) {

for (Runnable task : tasks) {

rateLimiter.acquire(); // may wait

executor.execute(task);

}

}

另外一个例子,假如我们会产生一个数据流,然后我们想以每秒5kb的速度发送出去。我们可以每获取一个令牌(permit)就发送一个byte的数据,这样我们就可以通过一个每秒5000个令牌的RateLimiter来实现:

final RateLimiter rateLimiter = RateLimiter.create(5000.0);

void submitPacket(byte[] packet) {

rateLimiter.acquire(packet.length);

networkService.send(packet);

}

另外,我们也可以使用非阻塞的形式达到降级运行的目的,即使用非阻塞的tryAcquire()方法:

if(limiter.tryAcquire()) { //未请求到limiter则立即返回false

doSomething();

}else{

doSomethingElse();

}

漏桶算法和令牌桶算法的选择

漏桶算法与令牌桶算法在表面看起来类似,很容易将两者混淆。但事实上,这两者具有截然不同的特性,且为不同的目的而使用。

漏桶算法与令牌桶算法的区别在于,漏桶算法能够强行限制数据的传输速率,令牌桶算法能够在限制数据的平均传输速率的同时还允许某种程度的突发传输。

需要注意的是,在某些情况下,漏桶算法不能够有效地使用网络资源,因为漏桶的漏出速率是固定的,所以即使网络中没有发生拥塞,漏桶算法也不能使某一个单独的数据流达到端口速率。因此,漏桶算法对于存在突发特性的流量来说缺乏效率。而令牌桶算法则能够满足这些具有突发特性的流量。通常,漏桶算法与令牌桶算法结合起来为网络流量提供更高效的控制。