2021年2月2日星期二

又出新招数!曝恒大想跟卡纳瓦罗“解约”,从人才库中找新人_球员

原标题:又出新招数!曝恒大想跟卡纳瓦罗"解约",从人才库中找新人

今年转会期,广州恒大奉行的策略是只出不进。所以,他们不会给我们带来惊喜的。以现有的阵容,卡纳瓦罗能够在中超夺冠吗?相信,这是很多恒大球迷的担忧。

不过,卡纳瓦罗在此之前,还有一件烦心事。据《体坛网》消息,广州恒大计划在卡纳瓦罗最后两年的合同中加入成绩要求的条款。

众所周知,现在卡纳瓦罗合同中,没有成绩条款的要求。这,是当年恒大最大的失误。如此,也让他们想要解约卡纳瓦罗,就得赔付2亿元的违约金。在亚冠小组赛折戟沉沙之后,为了逼卡纳瓦罗主动辞职,恒大用了郑智出任总经理这招。最终的结局是:卡纳瓦罗不为所动,郑智也更想以球员的身份征战新赛季。卡纳瓦罗的帅位,继续稳固。

那么,恒大的这一新招数,卡纳瓦罗会接招吗?我们先来看:恒大这一条款的目的是什么?平白无故地加入一个成绩指标,司马昭之心路人皆知:为给不掏钱解约,创造条件。连路人都能看清楚的事,卡纳瓦罗能看不出来?恒大这种小聪明,其实是不聪明。从"上课"到"总经理负责制",可以说卡纳瓦罗早已经与恒大"撕破脸"。就这样,卡纳瓦罗还不主动辞职,很明显:他就想要赚这2亿。所以,恒大只是一厢情愿而已。出这个主意的人,脑子到底是怎么想的呢?

与此同时,《足球报》透露:徐新、刘殿座、塔利斯卡、保利尼奥这四大主力,大概率将留队。而恒大,将从足校当中选拔更多的新人任用。

此四人留队,大家都能够预料到。在中超限薪的情况下,徐新、刘殿座即使出走,也是500万。与其如此,还不如留在熟悉的环境中,而塔利斯卡跟保利尼奥,他们的薪资太高,又属于二流球员(世界范围内),哪家俱乐部会买他们?而想买他们的巴西俱乐部,都属于想捡便宜的。至于恒大想要从人才库中(足校)选拔新人,是一个正确的选择。可惜,就中国足球青训的总体水平来看,不会有太出彩的球员出现。这点,看看上赛季已经到一线队的帕尔曼江、布格拉汗等人就知道了。返回搜狐,查看更多

责任编辑:

原文转载:http://sport.shaoqun.com/a/390667.html

跨境电商:https://www.ikjzd.com/

r标:https://www.ikjzd.com/w/1070

万色:https://www.ikjzd.com/w/2382


原标题:又出新招数!曝恒大想跟卡纳瓦罗"解约",从人才库中找新人今年转会期,广州恒大奉行的策略是只出不进。所以,他们不会给我们带来惊喜的。以现有的阵容,卡纳瓦罗能够在中超夺冠吗?相信,这是很多恒大球迷的担忧。不过,卡纳瓦罗在此之前,还有一件烦心事。据《体坛网》消息,广州恒大计划在卡纳瓦罗最后两年的合同中加入成绩要求的条款。众所周知,现在卡纳瓦罗合同中,没有成绩条款的要求。这,是当年恒大最大的失误。
wangwei:wangwei
e票联:e票联
SHEIN首次公开招商 或进行平台化转型尝试:SHEIN首次公开招商 或进行平台化转型尝试
心怡物流:心怡物流
年终旺季广告引流如何入手?:年终旺季广告引流如何入手?

2021年2月1日星期一

【WPF学习笔记】WPF中行为(Behavior)的简单使用

WPF中行为(Behavior)的简单使用

在我之前的 WPF 开发中,需要实现一些页面效果时,常使用到的方式就是重写元素的样式(Style),然后再样式里面设置使用元素的各类触发器(Trigger)来实现效果。这样常常需要编写大量的代码。

近日学习到 WPF 中有一个叫做 Behavior 的扩展方式,可以用来实现页面效果,实现方式更为简便。学习笔记如下:

添加需要的DLL库

要使用 Behavior 的相关功能需要先添加 "System.Windows.Interactivity" 库。可以通过 Nuget 进行安装。

如下图:

安装完成后如下图:

编写自己需要的 EffectBehavior 类

如下代码中,定义的 Behavior 类的为 EffectBehavior。EffectBehavior 需要继承自 Behavior<T>。

按 F12 进入 Behavior 的源码中可知,T (下面代码中为 FrameworkElement)为该行为需要产生作用的元素的类型,通过 AssociatedObject 进行关联。

代码如下:实现了鼠标悬停的时候,元素进行红色边框高亮显示。

using System.Windows;using System.Windows.Interactivity;using System.Windows.Media;using System.Windows.Media.Effects;namespace BehaviorDemo{ // Behavior<T> T设置行为产生作用的元素类型 public class EffectBehavior : Behavior<FrameworkElement> {  //使用 Behavior 必须重写以下两个虚方法  protected override void OnAttached()  {   base.OnAttached();   //AssociatedObject为关联对象, 是Behavior<T>中的T   AssociatedObject.MouseMove += AssociatedObject_MouseMove;   AssociatedObject.MouseLeave += AssociatedObject_MouseLeave;  }  private void AssociatedObject_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e)  {   var element = sender as FrameworkElement;   element.Effect = (Effect)new DropShadowEffect() { Color = Colors.Transparent, ShadowDepth = 0 };  }  private void AssociatedObject_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)  {   var element = sender as FrameworkElement;   element.Effect = (Effect)new DropShadowEffect() { Color = Colors.Red, ShadowDepth = 0 };  }  protected override void OnDetaching()  {   base.OnDetaching();   AssociatedObject.MouseMove -= AssociatedObject_MouseMove;   AssociatedObject.MouseLeave -= AssociatedObject_MouseLeave;  } }}

界面中引用 EffectBehavior

要在 XAML 代码中使用 Behavior,需要引入命名空间

具体代码如下:

<Window x: 

实现效果如下:









原文转载:http://www.shaoqun.com/a/522371.html

跨境电商:https://www.ikjzd.com/

败欧洲:https://www.ikjzd.com/w/1555

cares:https://www.ikjzd.com/w/1302


WPF中行为(Behavior)的简单使用在我之前的WPF开发中,需要实现一些页面效果时,常使用到的方式就是重写元素的样式(Style),然后再样式里面设置使用元素的各类触发器(Trigger)来实现效果。这样常常需要编写大量的代码。近日学习到WPF中有一个叫做Behavior的扩展方式,可以用来实现页面效果,实现方式更为简便。学习笔记如下:添加需要的DLL库要使用Behavior的相关功能需要先
dmm.adult:dmm.adult
auditor:auditor
为什么偏偏迪拜被视为中东电子商务的"热气球"?:为什么偏偏迪拜被视为中东电子商务的"热气球"?
跨境电商到底要如何选择建站平台?:跨境电商到底要如何选择建站平台?
口述:富婆寂寞游戏竟让送水工当真(4/4):口述:富婆寂寞游戏竟让送水工当真(4/4)

惊悚一幕!前罗马中卫卡斯坦蹬踏对手面部被罚下_巴伊亚

原标题:惊悚一幕!前罗马中卫卡斯坦蹬踏对手面部被罚下

在北京时间2月1日凌晨举行的一场巴甲联赛中,达伽马对阵巴伊亚,主队中卫卡斯坦在一次定位球进攻中,直接用鞋底蹬踏了对方门将的面部,当即被红牌罚下,受伤的巴伊亚门将缝了5针。

比赛进行到第80分钟时,达伽马前场获得定位球,卡斯坦在抢点时没有踢到皮球,反而一脚踹在了对方门将的脸上,这一严重的犯规使得他立马被红牌罚下,而对方门将的脸部也被鞋钉重创,并且立刻接受了缝针处理。

赛后,卡斯坦第一时间在社交媒体上对巴伊亚门将进行了道歉,表示自己没收住脚,并非故意伤人,后者也大度的接受了他的道歉。

卡斯坦曾为罗马俱乐部效力多年,2018年,他返回巴西联赛为瓦斯科达伽马队效力。返回搜狐,查看更多

责任编辑:

原文转载:http://sport.shaoqun.com/a/390662.html

跨境电商:https://www.ikjzd.com/

笨鸟转运:https://www.ikjzd.com/w/1550

执御:https://www.ikjzd.com/w/717.html


原标题:惊悚一幕!前罗马中卫卡斯坦蹬踏对手面部被罚下在北京时间2月1日凌晨举行的一场巴甲联赛中,达伽马对阵巴伊亚,主队中卫卡斯坦在一次定位球进攻中,直接用鞋底蹬踏了对方门将的面部,当即被红牌罚下,受伤的巴伊亚门将缝了5针。比赛进行到第80分钟时,达伽马前场获得定位球,卡斯坦在抢点时没有踢到皮球,反而一脚踹在了对方门将的脸上,这一严重的犯规使得他立马被红牌罚下,而对方门将的脸部也被鞋钉重创,并且立刻
淘粉8:淘粉8
prime day:prime day
不含有害化学品产品的豁免表填写方法如下::不含有害化学品产品的豁免表填写方法如下:
跨境独立站之Facebook引流技巧:跨境独立站之Facebook引流技巧
淘粉8:淘粉8

日本时尚电商平台ZOZOTOWN推出化妆品销售新方式

ZOZOTOWN作为日本最大的时尚网站拥有533万活跃女性会员,一直以来都广受许多化妆品卖家的关注,对中国卖家来说,ZOZOTOWN这一垂直电商也是个不错的选择。

 

近日,ZOZOTOWN推出了一款肤色测量眼镜,可以帮助消费者在网上体验并订购化妆品。


微信截图_20210201163546.png


这款名为"Zozoglass"的眼镜上覆盖着色块和标记,用智能手机扫描它就能检测自己的肤色,从而通过ZOZO专有的科技算法为用户推荐定制的化妆品从而完美匹配独特的肤色。Zozoglass目前已开始预购,将于3月开始发货,最初将仅限于基础产品,之后会扩展到其他产品系列。

 

根据ZOZO内部调查,在ZOZOTOWN的客户中,时尚是社交媒体上搜索量最大的话题,其次是美容和化妆品。

 t4519019690361856.jpg


ZOZOTOWN的活跃女性会员平均每年在化妆品上的花费82299日元,这比日本普通家庭在化妆品上的平均花费(37794日元)高出2.2倍。此外,ZOZOTOWN的女性会员中有73.7%是在线购买化妆品的,其中36%的在线消费是化妆品。

 

传统上日本民众会去大型百货公司,然后去柜台,然后再试用产品毕竟化妆品行业是一个由感觉驱动的行业,现场咨询和产品测试才能得出适合自己的产品

 

而由于疫情爆发,缺乏感官经验,社交活动受限,日本民众2020年对化妆品的需求下降了70%。

 1.jpg


需求下降并不意味着失去了所有希望。ZOZOTOWN作为日本最大的时尚电商平台推出的这款独具匠心的增强现实体验的产品向人们展示了化妆品行业的另一种未来电商平台使用时尚技术,帮助消费者克服对在线购买的担忧,使消费者获得良好的购物体验。

 

时尚技术也为卖家提供了一种新的发展方向。作为电商平台的参与者之一,卖家也能享受到这种变化带来的红利,旗下产品能更好的获得消费者的认同和青睐。




原文转载:http://www.shaoqun.com/a/522364.html

跨境电商:https://www.ikjzd.com/

杨颜:https://www.ikjzd.com/w/1820

c2c模式:https://www.ikjzd.com/w/1576


ZOZOTOWN作为日本最大的时尚网站,拥有533万活跃女性会员,一直以来都广受许多化妆品卖家的关注,对中国卖家来说,ZOZOTOWN这一垂直电商也是个不错的选择。近日,ZOZOTOWN推出了一款肤色测量眼镜,可以帮助消费者在网上体验并订购化妆品。这款名为"Zozoglass"的眼镜上覆盖着色块和标记,用智能手机扫描它就能检测自己的肤色,从而通过ZOZO专有的科技算法,为用户推荐定制的化妆品,从而
邮政电话:邮政电话
1号团:1号团
美国再次推迟对华为的禁令,华为硬气回应!:美国再次推迟对华为的禁令,华为硬气回应!
eBay将为奢侈品牌手表卖家推出"全套新服务":eBay将为奢侈品牌手表卖家推出"全套新服务"
回报率500%!他们是怎么用好wish PB广告的?:回报率500%!他们是怎么用好wish PB广告的?

防侵权预警205:水槽过滤器在美国市场的外观专利情况

防侵权预警205:水槽过滤器在美国市场的外观专利情况
 

跨境电商平台在销产品目标国家外观专利排查,

拒绝马后炮,提前预警,杜绝侵权事件的发生!

这些年来,见过很多爆款,我小结爆款的规律是:需求基数足够大,价格合适,直击痛点。就如下面这款水槽过滤器:

这款水槽过滤器,在亚马逊美国站,它带有#1 Best Seller标志,现有留评数70725(不要小看任何一款产品,做好了,足够成全你在深圳湾买一套房),售价是12.99美元:

经检索,发现是真的存在在先美国外观专利的,下面给出该款产品的美国外观专利图截图:


活该它业绩这么好(留评数70725,售价是12.99美元),选对产品,还有专利加持,偷着乐!

(来源:跨境电商产品防侵权预警)

文章来源:https://www.ikjzd.com/home/141712

跨境电商:https://www.ikjzd.com/

贝贝母婴网:https://www.ikjzd.com/w/1321

东西网:https://www.ikjzd.com/w/1238

outfit:https://www.ikjzd.com/w/938

防侵权预警205:水槽过滤器在美国市场的外观专利情况

这些年来,见过很多爆款,我小结爆款的规律是:需求基数足够大,价格合适,直击痛点。就如下面这款水槽过滤器:

更宽松!Wish延迟确认妥投赔款等3项政策,取消!

这个春节,海外仓是所有商户发展的重点,Wish也及时推出了一系列变更:"二级仓库"更新、5%订单金额返利福利、Uni-Freight(联运)的头程物流支持等。

但这些不是全部!要让大家能够更灵活、更没有后顾之忧地使用、拓展海外仓的发展,Wish将对取消、更新部分海外仓政策,为大家的海外仓发展创造更广阔的空间!

一、海外仓政策更新及调整

本次政策更新及调整,涉及海外仓的注册、履行等多个重点环节。

1、使用海外仓,并参与Wish Express无需注册

各位商户无需申请、注册即可加入Wish Express项目,将产品加入到"二级仓库"中,为对应的WE目的国设置产品的"最长妥投天数",若达到WE时效要求,产品即为WE产品,享受WE项目的各项政策支持。

总之,不用注册,直接使用,有海外仓产品就直接卖它!

2、原商户政策10.2取消

政策取消后,各位商户将不会再因为海外仓产品在某些目的国(或地区)的订单频繁延时履行而被暂停该路向的WE海外仓资格,商户也不会因为多次被暂停WE海外仓资格而被禁用WE海外仓。

3、原商户政策10.3取消

WE海外仓订单如果没有在规定的妥投时间之后的五个工作日内确认妥投,订单付款将被暂扣的政策也取消了;但是Wish仍然建议商户保持良好的海外仓订单履行及妥投,虽然上述政策取消了,根据新发布的"仓库履行政策",某些情况下,仍有可能会暂扣付款。详细说明,请继续阅读本文。

4、原商户政策10.4取消

延迟确认妥投的海外仓订单的赔款相关的政策也被取消了,但这并不意味着Wish的全球用户对于订单时效的要求降低了,相反,时效更快、更稳定的产品更受消费者的欢迎。虽然延迟妥投的相关处理取消了,但是Wish也更加关注产品的妥投率表现

同时,订单需要在设定的"最长妥投天数"(无论该天数是否符合WE妥投时限要求)内完成妥投,以及延时妥投的海外仓订单的退款责任将由商户承担的政策仍然继续有效

5、新增"仓库履行政策"

"二级仓库"更新已经发布且生效,为适应新的变化,Wish也新增了商户政策13——"仓库履行政策"

政策主要是对主仓库、"二级仓库"的产品设置各个目的国(或地区)的"最长妥投天数"的履行做出要求及规定。

如果商户为产品设置了"最长妥投天数",则该产品的订单须在商户设置的"最长妥投天数"内确认妥投(如果商户没有为产品设置"最长妥投天数",则该产品的"最长妥投天数"将默认是本文中提供的WE规定妥投天数。"仓库履行政策"对这种情况依然适用)。

同时,无论产品因商户设置的"最长妥投天数"而符合或是不符合 Wish Express资格,Wish 都会基于您设置的"最长妥投天数"向用户显示预计到货日期。

如果订单未能在商户设置的"最长妥投天数"内妥投,在发生用户退款的情况下,退款责任将由商户承担;此外,在某些特定情况下,延时妥投的订单可能会被暂扣付款

那么,哪些情况属于"某些特定情况"呢?Wish也对此作了较为详细的说明,这里要提醒各位商户尤其要注意仓库的订单延时率,因为这对于订单付款是否可能被暂扣,有很大的影响。

比如,X日到(X+7)日,某二级仓库共用100个订单应该在这个时间里实现妥投,最终有95个订单完成,5个订单未完成,则,这7天的仓库延时妥投率为5%。

"仓库履行政策"的适用情况,根据产品的"最长妥投天数"有所不同:

要说明的是,因为系统数据汇总时间的问题

如果确认妥投日期是当周的周三、周四、周五、周六或周日,则使用确认妥投日期的上周(周一到周日)的数据来确定"仓库订单延时率"。

如果确认妥投日期是当周的周一或周二,则使用确认妥投日期的上上周(周一到周日)的数据确定"仓库订单延时率"。

作为衡量标准的订单延时率使用的都是产品所在"二级仓库"的仓库订单延时率。

如果你对付款暂扣有疑义,可以在订单付款被暂扣之日起的30个自然日内对相关延时妥投订单提出申诉,如果确定订单已按时妥投,该订单或可再次获得付款资格,且不会计入该商户的"仓库订单延时率"。

举例说明:

【案例1】

一位商户在海外设置了一个"二级仓库",路向为法国,商户将产品A加入此仓库,设置"最长妥投天数"9个工作日。系统于2021年2月1日释放一个"二级仓库"海外仓订单给商户,2月17日(周三,订单释放后的第12个工作日)显示确认妥投,同时在2月17日上周该"二级仓库"的仓库订单延时率为3%。

1、该订单为超时妥投订单,但超时天数少于5个工作日;

2、妥投上一周的仓库订单延时率为3%,比较优良;

3、该商户可以正常获得该订单的付款。

4、该订单为延时妥投订单,将会影响订单相应妥投时间那一周的仓库订单延时率,商户需关注订单的妥投时效问题。

【案例2】

一位商户在海外设置了一个"二级仓库",路向为德国,商户将产品A加入此仓库,设置"最长妥投天数"5个工作日。系统于2021年2月10日释放一个"二级仓库"海外仓订单给商户,3月3日(周三,订单释放后的第15个工作日)显示确认妥投,同时在3月3日上周(2月22日至2月28日,周一至周日)该"二级仓库"的仓库订单延时率为2%。

1、该订单为超时妥投订单,同时超时天数大于5个工作日;

2、即使妥投上一周的仓库订单延时率为2%,比较优良,该订单的付款依然将被暂扣至少12周;且会影响订单相应妥投时间那一周的仓库订单延时率,商户需关注订单的妥投时效问题。

点击此处,查看更多关于Wish海外仓政策的说明。点击此处,查看更多关于仓库履行政策。

仔细研究这些海外仓政策的变化,你发现了什么?

没错!结合之前已经发布的Uni-Freight(联运)服务、5%订单金额返利福利、"二级仓库"更新,Wish正在从项目、政策等多个方面积极支持各位商户开展海外仓的运营与发展,让各位商户可以更加灵活地使用海外仓。而在各项政策中,Wish也非常明确地表达了对于物流时效及妥投率的坚持,更好的物流时效能够给全球消费者更好的购物体验,也能为每一位商户带来更好的销售前景!

政策已经发布,你的海外仓准备好了吗?扬帆海外,就从这个春节开始吧!

推荐阅读:

1、"二级仓库"功能更新

2、订单履行时间延长方案

3、Uni-Freight(联运)项目:支持你的海外仓头程

Wish 2021春节运营支持说明

微信图片_20210201144829.png


文章来源:https://www.ikjzd.com/home/141739

跨境电商:https://www.ikjzd.com/

史泰博:https://www.ikjzd.com/w/2112

新蛋:https://www.ikjzd.com/w/79

文化衫事件:https://www.ikjzd.com/w/1932

更宽松!Wish延迟确认妥投赔款等3项政策,取消!

最高罚款5亿韩元!韩国电商新规从2月1日起正式实施

据悉,韩国公平交易委员会31日表示,将于2月开始实施《网上商城业务不正当交易行为审查指南》,其中包含了对不正当行为的筛查标准和一些违规案例。

 

新准则规定除非事先制定了销售激励措施否则禁止在线购物中心损害卖家经济利益,并表示以收取卖家广告费用、服务器费用并要求捐赠和赞助资金的行为,将作为此类法律重点检查方向。

 

另外,它还规定在线购物中心要想适当合法获得销售利益所实施的准则必须与促销有关并且对卖家有利。如果违反这法律条款和准则,公平交易委员会可以在不超过交付货款或年租金的情况下处以罚款如果难以计算销售额,将处以不超过5亿韩元的罚款。

 

还对其他类型的违规行为作以规定,例如禁止不正当退货转移促销成本以及对管理信息的需求。禁止以消费者取消购买为由,将在线中心已收到的物品返还给卖家的行为。

 

在信用卡免息分期付款活动,将分期付款手续费全部转嫁给卖家的行为,以及以与消费者直接交易为目的,要求卖家提供人员信息的行为,相当于违反了促销活动费不正当转嫁和禁止提供经营信息的要求。

 

据悉,新准则适用于年销售额超过1000亿韩元的在线购物中心NAVER等平台中介服务商将接受公平委正在推进的在线平台公平化法

 

在这些准则中,关于禁止转让促销费用有关的条例将于已经确定的准则申请期(明年12月底)结束后于2022年1月1日生效其他规定将从今年2月1日起适用。





原文转载:http://www.shaoqun.com/a/522291.html

跨境电商:https://www.ikjzd.com/

extra:https://www.ikjzd.com/w/1736

跨境通:https://www.ikjzd.com/w/1329


据悉,韩国公平交易委员会31日表示,将于2月开始实施《网上商城业务不正当交易行为审查指南》,其中包含了对不正当行为的筛查标准和一些违规案例。新准则规定除非事先制定了销售激励措施,否则禁止在线购物中心损害卖家的经济利益,并表示以收取卖家广告费用、服务器费用并要求捐赠和赞助资金的行为,将作为此类法律重点检查方向。另外,它还规定在线购物中心要想适当、合法获得销售利益,所实施的准则必须与促销有关并且对卖家
深兰科技:深兰科技
邮乐网购:邮乐网购
亚马逊5.25事件:亚马逊5.25事件
什么是英国数字服务税?卖家会提高售价吗?:什么是英国数字服务税?卖家会提高售价吗?
干货 || 四种Facebook Messenger营销策略全解!:干货 || 四种Facebook Messenger营销策略全解!

Shopify合作应用被曝泄露用户隐私,近17000卖家受影响

近日,Shopify合作应用Topdser被曝正在泄露客户的隐私数据,包括用户的信用卡数据和个人详细信息,数千名购物者受影响。

 

据悉,数据泄露的根源尚不能100%确定下来,但是有相当多地证据表明Topdser是造成了此次信息泄露的原因。数据中嵌入的链接指向了Topdser的网站,而其他公司无法获得访问或创建这些链接的权限。

 

TopdserShopify的合作应用程序,可支持Shopify卖家从AliExpress和1688导入商品并一键发布到Shopify商店中,降低成本的同时获得3倍的运输速度;以及自动化批量订购,Shopify卖家可以在几秒之内利用AliExpress的官方接口无缝下单,最高可达300个订单,订单与订单之间无需等待。


插图有1.png

TopdserShopify应用商店的展示页面

 

1.7万Shopify卖家受影响

 

研究人员指出,有超过1.7万家Shopify商店的10万笔购买数据遭到泄露,暴露的数据总量高达13GB,而在Shodan搜索引擎上的数据总量也才95GB多一点。

 

与此同时,研究人员指出,刚发现的时候泄露的信息记录为1750万份,然而Shodan透露总共有2300万份记录被泄露,这意味着此次数据泄露可能影响了大约8万至10万名消费者。

 

VPNMentor分享出来的截图显示泄露的数据包括订单详细信息、信用卡和PII(个人身份信息)数据。


popular-shopify-app-exposes-private-data-of-thousands-of-shoppers-2-768x516.jpg


hackread网站,VPNMentor早在2020年11月21日便发现了Shopify存在数据泄露的问题,并立即通知了Shopify,但Shopify并未对此事负责。

 

Topdser也接到了同样的提醒,VPNMentor建议其关闭漏洞并采取措施保护被暴露的数据。

 

涉事数据库已在2020年11月24日关闭,但这两家公司均为对此事做出回应或发布正式声明。而数据泄露可能会带来窃取或欺诈的隐患。

 

Shopify数据泄露事件时有发生

 

不久前Shopify还被曝出其安全漏洞泄露了加密货币硬件钱包提供商Ledger的用户信息,预计将使20000名分类账客户面临风险。


插图3.png


由于用户全名、家庭住址和电子邮件遭泄露,一些用户遭遇了不法分子的网络钓鱼,甚至有人报告了涉及死亡威胁的勒索案件。

 

此外,2020年9月22日,Shopify被曝出其两名员工窃取了大约200名商家的交易记录,但涉事员工在去年4月和6月就已经将数据泄露了出去,其中也包括Ledger客户的信息。

 

据悉,Shopify正与美国联邦调查局和其他国际执法机构合作调查这起事件,Ledger也已向法国数据保护机构报告了Shopify事件,并及时告知了涉及隐私泄露的用户事件进展。

 

看来以后Shopify还得在保护用户隐私上面多上点心,加强网络安全建设,避免此类事件的再次发生。




原文转载:http://www.shaoqun.com/a/522285.html

跨境电商:https://www.ikjzd.com/

宝付:https://www.ikjzd.com/w/539

俄罗斯灰色清关:https://www.ikjzd.com/w/1409


近日,Shopify合作应用Topdser被曝正在泄露客户的隐私数据,包括用户的信用卡数据和个人详细信息,数千名购物者受影响。据悉,数据泄露的根源尚不能100%确定下来,但是有相当多地证据表明Topdser是造成了此次信息泄露的原因。数据中嵌入的链接指向了Topdser的网站,而其他公司无法获得访问或创建这些链接的权限。Topdser是Shopify的合作应用程序,可支持Shopify卖家从Ali
tm商标:tm商标
stylenanda:stylenanda
卖家爆哭!遇上亚马逊"真Reviewer",一夜损失上千刀!:卖家爆哭!遇上亚马逊"真Reviewer",一夜损失上千刀!
无忧达(51 Delivery):无忧达(51 Delivery)
返校季:这22款单品可能会爆!:返校季:这22款单品可能会爆!

C# 使用 sid 连接 Oracle(无需安装 Oracle 客户端)

最接我们公司的软件产品,决定增加支持新的数据库:Oracle 数据库。偶尔发现,有个方法,C# 使用 sid 连接 Oracle(无需安装 Oracle 客户端),可以成功。特记录,以防遗忘。兼供各位参考。

最接我们公司的折桂打印平台系统,决定增加支持新的数据库:Oracle 数据库。其中主要代码是 C#, 其次是 Java。 Java 连各种数据库,很容易,下载 JDBC 驱动程序就可以了。C# 相对麻烦一点,我决定花点时间,进行调研/学习,调通 C# 连接 Oracle(无需安装 Oracle 客户端)。

经过几天的网上搜索,中文、英文的资料,都看了不少。绝大多数,不靠谱,根本行不通,说是可以不需要安装 Oracle 客户端,文章下方有人反馈,不安装Oracle 客户端运行时会报错,博主都不回应。

偶尔发现,有个方法,C# 使用 sid 连接 Oracle(无需安装 Oracle 客户端),可以成功。特记录,以防遗忘。兼供各位参考。

 

以下是详细步骤:

a.使用 NuGet 安装 Oracle.ManagedDataAccess 到项目。

使用 Visual Studio 打开项目,右键点击项目,弹出菜单选择"管理 NuGet 程序包",搜索并安装 Oracle.ManagedDataAccess。

此处,我使用的是 Visual Studio Community 2019 , NuGet 搜索后安装的是 Oracle.ManagedDataAccess 19.10.1 。

如果弹出窗口,要求接收协议,选择"是"。

 

b. 编写代码,连接 Oracle 数据库,使用 sid, 不使用 tnsname。

示例代码如下:

 1 public void test() 2 { 3  //OK 4  string strConnectBySid = "Data Source =(DESCRIPTION =(ADDRESS=(PROTOCOL=TCP)(HOST =" + OracleConnectInfo.strDbIPOrHostName 5   + ")(PORT=" + OracleConnectInfo.iDbPort + "))(CONNECT_DATA=(SID =" + OracleConnectInfo.strDbServiceName 6   + "))); User Id = " + OracleConnectInfo.strDbUser + "; Password=" + OracleConnectInfo.strDbPassword + ";"; 7  8  using (OracleConnection conn = new OracleConnection(strConnectBySid)) 9  {10   conn.Open();11   string sql = "select 1 from dual";12   //string sql = "select cname from tm_user where id = 21728";13 14   using (OracleCommand cmd = new OracleCommand(sql, conn))15   {16    object o = cmd.ExecuteScalar();17    System.Console.WriteLine("ExecuteScalar:" + o);18   }19   conn.Close();20  }21 }

请注意,如果使用 tnsname, 则需要安装 oracle 客户端。而直接使用 sid, 则不需要安装 oracle 客户端。

 

===============欢迎转载,转载请注明出处:https://www.cnblogs.com/jacklondon/









原文转载:http://www.shaoqun.com/a/522277.html

跨境电商:https://www.ikjzd.com/

邮乐购物商城:https://www.ikjzd.com/w/1776

acedota:https://www.ikjzd.com/w/2070


最接我们公司的软件产品,决定增加支持新的数据库:Oracle数据库。偶尔发现,有个方法,C#使用sid连接Oracle(无需安装Oracle客户端),可以成功。特记录,以防遗忘。兼供各位参考。最接我们公司的折桂打印平台系统,决定增加支持新的数据库:Oracle数据库。其中主要代码是C#,其次是Java。Java连各种数据库,很容易,下载JDBC驱动程序就可以了。C#相对麻烦一点,我决定花点时间,进
折扣网站:折扣网站
myshow:myshow
黑帽or白帽?能邀评就是好帽!亚马逊14种邀评策略大盘点(二):黑帽or白帽?能邀评就是好帽!亚马逊14种邀评策略大盘点(二)
跨境卖家注意!4月即将实施的海关新政整合:跨境卖家注意!4月即将实施的海关新政整合
警惕!下架listing,暂停销售权限,甚至永久关闭店铺 ​:警惕!下架listing,暂停销售权限,甚至永久关闭店铺 ​

亚马逊广告做的好,这些知识少不了

亚马逊上的产品,如果能正常的卖出去,要依靠的流量来源就那么几条。

站内的和站外的,免费的和付费的,自己选择的和系统自带的,等等。

这个销售流量的来源,我在之前的文章中已经有过详细的说明,这里就不再赘述。

这里只讲一下站内推广的方式之一,站内CPC广告。

在做站内广告之前,我们先来看一下广告有什么作用:

1、快速获得流量。

这一点主要是针对新品,新品上线后由于关键词权重低,大部分产品靠自然曝光很难获得流量。

广告可以为新品快速的带来一定的流量,为新品的快速站稳脚跟贡献能量。

2、挖掘关键词

广告活动报表要定期进行下载和分析,其中出现的高点击、高转化的词就是该产品的主要出单词。

3、拉升销量

广告关键词位置的高低是一系列综合因素作用的结果,包括但不限于竞价、产品价格、星级评分、review数量等。

如果想要拉升销量,提升产品广告竞价是最为有效的方式之一。

就像下面这个产品,只有5个review的情况下,出现在了主关键词搜索界面第一的广告位置上,把bestseller产品和其他一众review大于2000+的产品甩在身后。

4、品牌推广

这是对于做了品牌旗舰店的卖家来说,广告,尤其是搜索界面上端的横幅广告,是很不错的品牌推广位置。

5、提升自然关键词排名

广告关键词的排名提升后,会将该关键词的自然排名也相应向前拉升。

这是大量广告活动测试后的结论。

但是现在A9算法已经有了较大的改变,广告关键词对自然排名的提升,已经越来越小了。

在了解了广告的主要功能以后,我们来看一下新手卖家在广告中主要存在哪些问题?

1、为什么产品没有广告资格?

这个有多方面的原因,第一个可能的原因是新品上线暂时没有购物车。

没有购物车的产品是做不了广告的。

第二个原因可能是产品类目是属于禁止做广告的类目,比如成人用品、二手产品等。

第三个比较常见的原因,就是产品处于了不可售的状态,至于为什么不可售,那原因就比较多了,可能是缺货,也可能是被下架等原因。

2、竞价已经出的很高,广告关键词依然上不去

这就是我前面说过的问题,广告位置的高低,竞价是主要因素,但不是唯一因素。

亚马逊还要考量你产品的权重、星级评分、价格、转化率等因素。

否则,如果很多的垃圾产品都出一个高的竞价,那亚马逊的首页岂不是要被大量的垃圾产品占据。

那样就对亚马逊的品牌打击太大了。

如果你的产品竞价已经出的很高,但是还是不能排到前面的广告位置上去,这时候就要审视一下自己产品的内在问题。

产品质量如何,是不是差评太多导致评分降低?

产品的转化率如何?是不是最近转化率过低而影响了广告权重?

这些问题都要从多方面去思考。

3、广告点击很少

这种情况比较复杂,在不知道具体产品和不了解具体类目的情况下很难做出精确的判断。

如果是产品的曝光较少,那么没有点击也是很正常的。

如果产品的曝光较多,而产品的点击却很少,这个时候就要审视一下产品的关键词是否与产品自身是高度吻合的。

例如,当一个卖家搜索的是"japan knife",而你的"hunt knife "却出现在了搜索结果中,这样驴头不对马嘴的产品,肯定是不会获得点击的。

还有,如果曝光很多,而点击很少,除了审视关键词的契合度之外,还要审视一下自己产品的价格、listing内容、图片等因素,和竞品相比有何不足之处。

因为具体到某个类目中,除了季节性产品和节日性产品,每个类目的总体销量其实是比较稳定的。

也就是说,如果你多卖一个,你的竞争对手就可能会少卖一个。

所以,在你的产品listing、产品价格等因素逊色于竞争对手的前提下,产品获得的点击数量较少也就不足为奇了。

4、否定关键词要不要设

这个是肯定要设的,如果你想节省大把广告费的话。

否定关键词就像一道"滤网"一样,可以把那些曝光率高但是又与你产品关联性不强的产品给屏蔽掉,从而减少这类无关关键词的点击花费。

比如你卖的产品是"japan knife(日本刀)",而在你的广告报表中,出现了很多的"hunt knife"、"pocket knife"、"tactical knife"等关键词。

这些词与你的产品差异较大,而且在浪费你的广告预算,完全可以将这些词给精准或词组否定掉。

亚马逊给出的否定关键词形式有"词组否定"和"精准否定"两种,具体怎样设定要根据自己的产品来定。

希望上述内容可以带给你一点点收获。

(来源:跨境老鸟Mike)

文章来源:https://www.ikjzd.com/home/141722

跨境电商:https://www.ikjzd.com/

启明星:https://www.ikjzd.com/w/1436

oklink:https://www.ikjzd.com/w/1362

pocket:https://www.ikjzd.com/w/1903

亚马逊广告做的好,这些知识少不了

亚马逊上的产品,如果能正常的卖出去,要依靠的流量来源就那么几条。站内的和站外的,免费的和付费的,自己选择的和系统自带的,等等。这个销售流量的来源,我在之前的文章中已经有过详细的说明,这里就不再赘述。这里只讲一下站内推广的方式之一,站内CPC广告。在做站内广告之前,我们先来看一下广

吃土豆能减肥?这些好处你知道吗

核心提示:冬天是一年四季当中最寒冷的季节,到了冬天很多瓜果类的食物随处可见。这些都属于应季的、非常新鲜的食材,而土豆就是其中之一。作为餐桌上非常常见的食物,土豆深受大家的喜爱。无论是清炒还是和其他的食材一起搭配,其味道都非常鲜美。虽然说土豆一年四季都能够买到,但是在秋冬季的土豆是最为新鲜的,也是最适合秋冬季吃的食物。

冬天是一年四季当中最寒冷的季节,到了冬天很多瓜果类的食物随处可见。这些都属于应季的、非常新鲜的食材,而土豆就是其中之一。作为餐桌上非常常见的食物,土豆深受大家的喜爱。无论是清炒还是和其他的食材一起搭配,其味道都非常鲜美。虽然说土豆一年四季都能够买到,但是在秋冬季的土豆是最为新鲜的,也是最适合秋冬季吃的食物。


吃土豆的好处有哪些?

1、减肥

土豆可以帮助减肥,是因为土豆里面的脂肪含量非常低,它的脂肪含量仅含有0.1%。因此对于减肥的人来说,多吃土豆是非常好的主食选择。多吃土豆不仅有很强的饱腹感,而且可以摄入非常少的脂肪。并且土豆对于脂肪的转换有很大的帮助,能将身体内多余的脂肪慢慢代谢掉,从而起到减肥的效果。

2、预防心血管疾病

对于有心血管疾病或者冠心病的人群来说,平常可以多吃一些土豆,因为土豆有丰富的钾元素,能够中和掉体内多余的钠元素,从而起到清理血管、稳定血压的作用。而且土豆中大量的钾元素,能够帮助提高机体的能量。对于肌肉无力的人来说,是很不错的补品。

3、美容养颜

新鲜的土豆对于皮肤的增白作用非常明显,可以试着将土豆榨成汁敷于脸部。这是纯天然的面膜,比任何有添加剂成分的面膜效果好很多,而且没有任何副作用,肌肤也非常容易吸收。尤其在炎热的夏天,经过太阳的毒晒之后,有很好的镇静修复、美白的作用,对于女性朋友来说,可以将土豆榨成汁,平时用于替代面膜。

4、抗衰老

土豆是很好的抗衰老食物,这是因为土豆里面含有大量的b族维生素和优质纤维素。它们对于延缓机体衰老,都是有一定帮助作用的,另外它还含有大量的矿物质元素和微量元素。对于协调机体的营养平衡很有效果,从而能够延缓衰老。


吃土豆要注意些什么?

虽然说吃土豆的好处有很多,但是平常在食用土豆的时候,一定要记得不要和柿子以及西红柿一起吃。因为土豆本身就容易分泌出大量的盐酸,如果这个时候再用一些过酸的食物,在这种酸性环境当中,很容易产生过多的沉淀,从而造成肠胃虚弱、消化不良等情况。

土豆具有很强的饱腹感,其脂肪含量又非常低,非常适合在餐桌上食用,既不容易担心长胖,又有很好的养生作用,可以说是老少皆宜。多吃土豆,对维持身体健康有很大的帮助!


原文转载:http://health.shaoqun.com/a/149022.html

跨境电商:https://www.ikjzd.com/

1淘网:https://www.ikjzd.com/w/1698

trademanager:https://www.ikjzd.com/w/730


核心提示:冬天是一年四季当中最寒冷的季节,到了冬天很多瓜果类的食物随处可见。这些都属于应季的、非常新鲜的食材,而土豆就是其中之一。作为餐桌上非常常见的食物,土豆深受大家的喜爱。无论是清炒还是和其他的食材一起搭配,其味道都非常鲜美。虽然说土豆一年四季都能够买到,但是在秋冬季的土豆是最为新鲜的,也是最适合秋冬季吃的食物。 冬天是一年四季当中最寒冷的季节,到了冬天很多瓜果类的食物随处可见。这些都属于应季
易麦:易麦
汇通天下:汇通天下
跨境电商代运营靠谱吗?如何避免被坑?:跨境电商代运营靠谱吗?如何避免被坑?
口述:老公怪我没小三床上懂风情(2/2):口述:老公怪我没小三床上懂风情(2/2)
美国Overstock平台简介!:美国Overstock平台简介!

成人用品市场潜力大,定制性爱机器人成新趋势

成人用品市场潜力大,定制性爱机器人成新趋势

从发色到身体形状,再到个性,一家性爱机器人生产商揭露了新的定制市场趋势。美国性玩具商True Companion,讲述了他们如何培养出客户粘性。

True Companion研发出全球首个人工智能性爱机器人Roxxxy(售价9995美元),能根据客户调整机器人的各项属性。

当客户订购产品时,他需要进行一系列选择(包括发型、皮肤颜色、妆容等等),这决定着他的AI爱人长什么样。

Roxxxy的设计师Douglas Hines称,当客户定制爱人时,会出现很多临时性细节问题。

"深褐色头发最受欢迎,蓝色眼睛也很热门,而在肤色选择上,人们偏爱棕色,这种肤色能给人一种和善而温暖的感觉,"他说

该设计师补充道,可以预见客户都喜欢大胸脯的身材丰满的机器人。除了细细的眼线,客户也喜欢机器人涂有鲜红的口红。

当然,机器人并不止步于外观。它们安置的预设程序能识别出主人的兴趣,喜欢什么,不喜欢什么。

客户还可以选择AI爱人的行为模式,其中最受欢迎的是"成熟玛莎"(Mature Martha)设定,机器人会表现的"很温和、有爱,关心人"。

Douglas称:"玛莎偏向于主妇,喜欢跟人拥抱依偎。这对于很多客户来说,是个非常重要的特性。"

与Mature Martha同样受欢迎的,是"Wild Wendy",一种比较聪明的个性。

当机器人Roxxxy处于这种个性时,会比较外向,富于冒险精神。

另外,还有一种很流行的定制趋势是,客户要求公司将机器人的外观做的与死去妻子一模一样。(编译/ 杨雪平)


文章来源:https://www.ikjzd.com/home/141701

跨境电商:https://www.ikjzd.com/

环球b2b:https://www.ikjzd.com/w/1762

acca:https://www.ikjzd.com/w/1370

东西网:https://www.ikjzd.com/w/1238

成人用品市场潜力大,定制性爱机器人成新趋势

从发色到身体形状,再到个性,一家性爱机器人生产商揭露了新的定制市场趋势。美国性玩具商TrueCompanion,讲述了他们如何培养出客户粘性。TrueCompanion研发出全球首个人工智能性爱机器人Roxxxy(售价9995美元),能根据客户调整机器人的各项属性。当客户订购产品

为什么有人生完孩子会很瘦,有些人却虎背熊腰,这4个原因要知道

核心提示:不管是变瘦了,还是变胖了,健康最重要

小洁没生孩子之前体重一直是三位数,不管怎么减,体重就是下不来。神奇的是,生了孩子之后,体重基本上保持在两位数了,高兴的同时还有点疑惑,为啥有人生完孩子变得很肥,有些人却瘦下来了呢?


一、产后容易发胖,是因为什么?

每个人的情况不一样,大部分宝妈都会变胖了,主要体现在以下4点:


吃得多,营养过剩:产后进行母乳,这时候宝妈吃得比较多,而且都是营养充足的,几个月下来就会出现长胖的情况了。

睡不好,睡眠不足:正常来说母乳是两个小时一次,这样一来宝妈就无法保证睡眠时间,而且刚出生的宝宝经常哭闹,需要宝妈照顾孩子,哪怕有家人照顾孩子,也会影响宝妈的睡眠质量,熬夜、睡眠不足也是会导致人发胖的。

缺乏运动:宝妈要坐月子、要照顾孩子,没法保持一定的运动,而饮食方面是比较丰富的,这样一来也会长胖了。

没做康复锻炼:女性生宝宝后,肚子还是处于腹直肌分离的状态,还是像怀孕几个月的样子,产后是要做一些康复锻炼,以进行身体的恢复,但是很多宝妈都没有这个时间去进行康复锻炼,几个月下来后就呈现一种胖的状态了。

二、同样是母乳喂养,为什么有的宝妈变瘦了?

同样的母乳喂养,有些人却变瘦了,这跟个人身体情况有关,也跟产后锻炼有关。


1、营养被吸收,有些宝妈在母乳时,宝宝把能量、营养都吸收走,几个月的母乳喂养后,宝妈的体重无法增加,也会变瘦了。

2、带孩子,一些宝妈自己带孩子,喂夜奶、换尿布、清洗宝宝衣服,同时还要兼顾家里的一些琐碎事情等,辛苦和操劳很容易让人瘦下来。

3、恢复好,有些宝妈产后坚持做康复锻炼,还能保证一定的睡眠质量,让身体得到好的恢复自然就瘦下来了。

关于产后恢复身材,可以做康复锻炼,如盆底肌锻炼、收缩子宫,也可以做产妇操,以及适当的运动,这些都是有利于产后恢复身材的。

需要注意的是,宝妈不能过度补充营养,不能暴饮暴食,不能长期卧床,不能过早进行性生活,也不能盲目减肥,一切以自身情况出发。

延伸阅读:女人生完孩子有哪些变化?

生完孩子,宝妈不仅仅身体上有所变化,在其它感觉上也会有所变化。


1、免疫力下降,生完孩子的宝妈,身体变差了,很容易出现感冒、发烧、头痛等小疾病,而且恢复能力也不如往前了。

2、记忆力变差,产后的宝妈,记忆大不如前,会忘记东西放哪了,也会忘记说过的话,这也是人们常说的"一孕傻三年"。

3、变得爱唠叨,很多人产后经常唠叨孩子、唠叨家人,话变多了,担心、操心的事情也变多了。

4、变得怕冷,这一点主要是月子没做好,身体没有恢复好,从而影响宝妈的身体,变得怕冷。

5、不那么怕痛,经历过分娩痛,很多宝妈产后承受痛感的能力变大了,不再那么怕痛。

对准妈妈们来说,生孩子是一件非常辛苦,却又开心开始的事情。不管是变瘦了,还是变胖了,健康最重要,宝妈一定要善待自己,养好身体,锻炼身体,让身体恢复往常。

互动:你生完孩子变胖了还是变瘦了?

参考资料

[1]《产后恢复注意这8点,让你远离产后困扰!》.东莞万福妇产医院.2020年4月12日


[2]《女人生完孩子后的4大可怕变化》.育儿网.2014年7月4日

未经作者允许授权,禁止转载

39健康网()原创内容,未经授权不得转载,违者必究。内容合作请联系:020-85501999-8819或39media@mail.39.net

原文转载:http://health.shaoqun.com/a/149006.html

跨境电商:https://www.ikjzd.com/

tracker:https://www.ikjzd.com/w/2720

cb体系:https://www.ikjzd.com/w/2063


核心提示:不管是变瘦了,还是变胖了,健康最重要 小洁没生孩子之前体重一直是三位数,不管怎么减,体重就是下不来。神奇的是,生了孩子之后,体重基本上保持在两位数了,高兴的同时还有点疑惑,为啥有人生完孩子变得很肥,有些人却瘦下来了呢?一、产后容易发胖,是因为什么?每个人的情况不一样,大部分宝妈都会变胖了,主要体现在以下4点:吃得多,营养过剩:产后进行母乳,这时候宝妈吃得比较多,而且都是营养充足的,几个月
woot:woot
ideal:ideal
口述:怀孕9个月 我却不想生了:口述:怀孕9个月 我却不想生了
如何制作动态Excel图表,更好的做号数据分析:如何制作动态Excel图表,更好的做号数据分析
分享学习:5个instagram超强自动营销工具!:分享学习:5个instagram超强自动营销工具!

乐器也疯狂!美国Sweetwater线上收入首超10亿美元

疫情推动了电商的快速发展,线上消费者普遍增多,各行各业均在转变策略,以应对消费者需求的改变。

 

同样,对于乐器零售商来说也是如此,2020年,美国乐器零售商的在线销售急剧飙升。

 

Sweetwater收入超10亿

 

美国乐器和专业音频设备在线零售商Sweetwater报告了2020年创纪录的收入,称在其42年的历史上,Sweetwater的收入首次超过10亿美元2020年,Sweetwater为超过150万客户提供服务,高于2019年的100万。

 

Sweetwater首席执行官Chuck Surack表示,在这一年中的大部分时间,其每天订单的出货量为15000至20000个,与上一年相比增长了约40%。而且,"黑色星期五"时期,每天的订单量增加到22000至24000个,最高时达到30000个

 

Guitar Center在线销售增长了一倍以上

 

美国乐器零售商Guitar Center首席营销和传播官Jeannine Davis D 'Addario表示,由于消费者的访问频率显著提高,Guitar Center的在线业务一直在蓬勃发展,与2019年相比,其大多数类别的乐器销售额大幅上升。

 

根据Guitar Center的数据,2019年相比,2020年的在线销售量增长了一倍以上。

 

Reverb线上销售额攀升

 

Etsy于2019年收购了Reverb.com这家在线乐器零售商,虽然目前尚未公布第四季度的商品销售总额数据,但其首席执行官David Mandelbrot告诉Rolling Stone,2020年第二季度Reverb的商品销售总额达到了有史以来的最高水平。

 

吉他成最受欢迎产品

 

美国这三家乐器零售商Sweetwater、Guitar Center和Reverb都表示,吉他是疫情隔离期间最受欢迎的产品。

 

Reverb的Mandelbrot说:"根据我们在2020年看到的情况,有一件事是肯定的,吉他正在蓬勃发展,吉他的订单和搜索量大幅上升。同时,与吉他搭配的音乐设备搜索量也呈现上升趋势,如音箱,吉他表带,效果踏板等。"

 

Sweetwater的Surack补充说:"我们现在每天销售一千把吉他,这令人感到震惊。"

 

Gibson的首席执行官James ' JC ' Curleigh表示:"即使在后疫情时代,我认为吉他和音乐行业也会形成在线销售和实体店销售各占一半的局面。"

 

由此可见,乐器行业的在线销售或将持续增长,这对于乐器零售商来说,或许是一个巨大的增长机遇。





原文转载:http://www.shaoqun.com/a/522254.html

跨境电商:https://www.ikjzd.com/

reverb:https://www.ikjzd.com/w/1273

兰亭集势:https://www.ikjzd.com/w/820


疫情推动了电商的快速发展,线上消费者普遍增多,各行各业均在转变策略,以应对消费者需求的改变。同样,对于乐器零售商来说也是如此,2020年,美国乐器零售商的在线销售急剧飙升。Sweetwater收入超10亿美国乐器和专业音频设备在线零售商Sweetwater报告了2020年创纪录的收入,称在其42年的历史上,Sweetwater的收入首次超过10亿美元。2020年,Sweetwater为超过150万
amazon go:amazon go
patpat:patpat
亚马逊各类计划大集结:亚马逊各类计划大集结
选品攻略:你不得不知的亚马逊选品法则(一)站内Best Sellers选品法:选品攻略:你不得不知的亚马逊选品法则(一)站内Best Sellers选品法
亚马逊listing如何自建,五点listing优化技巧介绍..:亚马逊listing如何自建,五点listing优化技巧介绍..

2021年1月31日星期日

Spring整合SpringMVC + Mybatis基础框架的配置文件

目录
  • 前言
  • 1. Mybatis层编写
  • 2. Spring层编写
    • 1. Spring整合Mybatis
    • 2. Spring整合service
  • 3. SpringMVC层编写
    • 1. 编写web.
    • 2. 编写spring-mvc.
  • 4. Spring配置整合文件,applicationContext.
  • 依赖

前言

新建一个普通的Maven项目

基本目录结构

├── src     	# │ ├── main    	# │ │	└── java   	# java代码目录│ │	└── resources  # 配置文件目录, 存放下面Spring配置文件│ ├── test   		# 单元测试目录├── web     	# web目录│ └── WEB-INF   	# web.


1. Mybatis层编写

1、在 resources 目录下新建数据库配置文件 database.properties

jdbc.driver=com.mysql.jdbc.Driver# 如果是使用 MySQL8.0+ 那么还需要增加一个时区的配置; serverTimezone=Asia/Shanghaijdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=true&useUnicode=true&characterEncoding=utf8jdbc.username=rootjdbc.password=123456

2、在 resources 目录下创建Mybatis配置文件 mybatis-config.

<?


2. Spring层编写

1. Spring整合Mybatis

  1. 配置Spring整合MyBatis,这里数据源使用c3p0连接池;

  2. 编写Spring整合Mybatis的相关的配置文件;在 resources 目录下创建 spring-dao.

注意:这里要引入上面Mybatis层的两个配置文件,配置文件的名称不要写错

<?

2. Spring整合service

将业务层的类注入到Spring中,在 resources 目录下创建 spring-service.

<?


3. SpringMVC层编写

resources 目录下创建 spring-mvc.

<?


依赖

<!--依赖--><dependencies> <dependency>  <groupId>org.projectlombok</groupId>  <artifactId>lombok</artifactId>  <version>1.18.10</version> </dependency> <!--Junit--> <dependency>  <groupId>junit</groupId>  <artifactId>junit</artifactId>  <version>4.13</version> </dependency> <!--数据库驱动--> <dependency>  <groupId>mysql</groupId>  <artifactId>mysql-connector-java</artifactId>  <version>5.1.47</version> </dependency> <!--数据库连接池--> <dependency>  <groupId>com.mchange</groupId>  <artifactId>c3p0</artifactId>  <version>0.9.5.2</version> </dependency> <!--Servlet - JSP --> <dependency>  <groupId>javax.servlet</groupId>  <artifactId>servlet-api</artifactId>  <version>2.5</version> </dependency> <dependency>  <groupId>javax.servlet.jsp</groupId>  <artifactId>jsp-api</artifactId>  <version>2.2</version> </dependency> <dependency>  <groupId>javax.servlet</groupId>  <artifactId>jstl</artifactId>  <version>1.2</version> </dependency> <!--Mybatis--> <dependency>  <groupId>org.mybatis</groupId>  <artifactId>mybatis</artifactId>  <version>3.5.2</version> </dependency> <dependency>  <groupId>org.mybatis</groupId>  <artifactId>mybatis-spring</artifactId>  <version>2.0.2</version> </dependency> <!--Spring--> <dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-webmvc</artifactId>  <version>5.1.9.RELEASE</version> </dependency> <dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-jdbc</artifactId>  <version>5.1.9.RELEASE</version> </dependency> <dependency>  <groupId>org.aspectj</groupId>  <artifactId>aspectjweaver</artifactId>  <version>1.9.4</version> </dependency></dependencies><!--静态资源导出问题--><build> <resources>  <resource>   <directory>src/main/java</directory>   <includes>    <include>**/*.properties</include>    <include>**/*.








原文转载:http://www.shaoqun.com/a/521234.html

跨境电商:https://www.ikjzd.com/

f2c:https://www.ikjzd.com/w/1242

凹凸曼:https://www.ikjzd.com/w/1392


目录前言1.Mybatis层编写2.Spring层编写1.Spring整合Mybatis2.Spring整合service3.SpringMVC层编写1.编写web.2.编写spring-mvc.4.Spring配置整合文件,applicationContext.依赖前言新建一个普通的Maven项目基本目录结构├──src #│├──main #││ └──java #java代码目录││ └──
环球市场:环球市场
f2c:f2c
火星人图片_火星人图片新闻资讯_火星人图片报道:火星人图片_火星人图片新闻资讯_火星人图片报道
注意!亚马逊又一站点卖家要求上传营业税ID!:注意!亚马逊又一站点卖家要求上传营业税ID!
阿里巴巴国际站公布扶持举措 面向全网商家增投海外流量:阿里巴巴国际站公布扶持举措 面向全网商家增投海外流量

操作系统swap对redis的性能的影响以及解决方案

操作系统swap对redis的性能的影响以及解决方案

目录
  • 一、操作系统SWAP
  • 二、Redis为什么会触发swap
  • 三、查看Redis swap情况
  • 四、解决Redis swap

一、操作系统SWAP

swap是操作系统的行为,是指当内存不足时,操作系统将内存的数据拿出一部分放入磁盘,数据从内存和磁盘换入换出的机制,涉及到磁盘的IO。一旦发生swap,内存对应的进程的性能都会受到影响,因为硬盘的访问速度远远小于内存。

redis作为内存数据库,如果redis对应的内存发生了swap,那么redis的性能会受到极大的影响。

二、Redis为什么会触发swap

触发swap的核心原因是机器内存不足,对于redis来说有两个原因会触发swap:

  1. redis自身占用了大量内存,导致机器可用内存不足
  2. redis所在机器其他进程占用内存,导致内存不足。

三、查看Redis swap情况

查找redis对应的进程id

src/redis-cli info | grep process_id

进入redis对应的进程目录

 cd /proc/5910

查看swap

cat smaps | egrep '^(Swap|Size)'

上图中size代表redis实例占用的一块内存空间,都有一个对应的Swap,swap的大小代表该内存空间区域有多少已经被换到硬盘了,如果size和swap相等,则代表已经全部被换到了内存空间。

如果出现几百MB设置GB级别的swap时,说明redis的内存压力极大,会变慢,这个时候就需要解决这个问题。

四、解决Redis swap

最直接的办法就是增大redis实例所在机器的内存

集群部署的redis可以通过增加实例个数,减少每个实例所需要的内存。

另外一个办法就是把redis单独部署,不要和其他应用程序一起部署,这也是比较常规的实践,同时也避免了cpu的竞争。









原文转载:http://www.shaoqun.com/a/521233.html

跨境电商:https://www.ikjzd.com/

杨帆:https://www.ikjzd.com/w/1648

photobucket:https://www.ikjzd.com/w/132


操作系统swap对redis的性能的影响以及解决方案目录一、操作系统SWAP二、Redis为什么会触发swap三、查看Redisswap情况四、解决Redisswap一、操作系统SWAPswap是操作系统的行为,是指当内存不足时,操作系统将内存的数据拿出一部分放入磁盘,数据从内存和磁盘换入换出的机制,涉及到磁盘的IO。一旦发生swap,内存对应的进程的性能都会受到影响,因为硬盘的访问速度远远小于内
福茂:福茂
google趋势:google趋势
支付清算协会称,将充分发挥线上优势,提供远程服务:支付清算协会称,将充分发挥线上优势,提供远程服务
2019年中国对外贸易形势预测报告!:2019年中国对外贸易形势预测报告!
口述:老公爱爱时经常叫女老板的名:口述:老公爱爱时经常叫女老板的名

Java 数组模拟队列 + 优化

队列介绍

队列是一个有序列表,可以用数组或是链表来实现。 遵循先入先出的原则。

即:先存入队列的数据,要先取出。后存入的要后取出 示意图:(使用数组模拟队列示意图)

 

 

 数组模拟队列

队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队列的最大容量。

因为队列的输出、输入是分别从前后端来处理,因此需要两个变量 front及 rear分别记录队列前后端的下标,front 会随着数据输出而改变,而 rear则是随着数据输入而改变,

如图所示:

当我们将数据存入队列时称为"addQueue",

addQueue 的处理需要有两个步骤:

思路分析 将尾指针往后移:

  rear+1 , 当front == rear 【空】 若尾指针 rear 小于队列的最大下标 maxSize-1,则将数据存入 rear所指的数组元素中,否则无法存入数据。

  rear == maxSize - 1[队列满] 代码实现 问题分析并优化

 

代码实现

package com.lin.queue_0131;import java.util.Scanner;public class Array_Queue { public static void main(String[] args) {  ArrayQueue arrayQueue = new ArrayQueue(4);  Scanner scanner = new Scanner(System.in);  char c;  while(true) {   System.out.println("------------------------------");   System.out.println("|");   System.out.println("|");   System.out.println("------------------------------");   System.out.println("-1 s(show):显示队列, -2 e(exit):退出程序, -3 a(add):添加数据到队列, -4 g(get):获取队列的数据, -5 h(head):查看队列头数据 ");   System.out.println("请输入以上提示字符:");   c = scanner.next().charAt(0);   switch (c) {   case 's':    arrayQueue.showQueue();    break;   case 'e':    System.exit(0);    break;   case 'a':    System.out.println("请输入添加数据:");    int n = scanner.nextInt();    arrayQueue.addQueue(n);    break;   case 'g':    try {     System.out.println("出队:" + arrayQueue.getQueue());    } catch (NullQueueException e) {     System.err.println(e.getMessage());    }    break;   case 'h':    try {     System.out.println("头数据:" + arrayQueue.headQueue());    } catch (NullQueueException e) {     System.err.println(e.getMessage());    }    break;   default:    break;   }  } }}class ArrayQueue{  private int fornt; private int rear; private int maxSize; private int[] arr;  // 创建队列构造器 public ArrayQueue(int maxSize){  this.arr = new int[maxSize];  this.maxSize = maxSize;  this.rear = -1;  // 指向队尾的数据  this.fornt = -1; // 指向队列头的前一位置 }  // 判断队列是否已满 public boolean isFull() {  return rear == (maxSize - 1); }  // 判断队列是否为空 public boolean isEmpty() {  return rear == fornt; }  // 入队 public void addQueue(int n) {  if(!isFull()) {   arr[++rear] = n;   System.out.println("添加成功!");  } else {   System.out.println("队列已满!");  } }  // 出队 public int getQueue() throws NullQueueException {  if(isEmpty()) {   throw new NullQueueException("队列为空!"); // 自定义异常  }  int arrNum = arr[++fornt];  arr[fornt] = 0;  return arrNum;   }  // 遍历队列 public void showQueue() {  if(isEmpty()) {   System.out.println("队列为空,无法输出数据!");   return;  }  for (int i = 0; i < arr.length; i++) {   System.out.print("arr[" + i + "] = " + arr[i] + "\t");  }  System.out.println(); }  // 显示队列的头数据 public int headQueue() throws NullQueueException {  if(isEmpty()) {   throw new NullQueueException("队列为空!"); // 自定义异常  }  return arr[fornt +1]; }}
注意:没有优化的代码数组只能用一次,即使队列为空,也无法添加数据。

优化后的代码
环形队列调整思路(其中的一种办法):
front变量的含义:front指向队列的第一个元素,也就是说arr[front]就是队列的第一个元素,之前的front是指向队列头元素的前一个位置。初始值为0。
rear变量的含义:rear指向队列的最后一个元素的后一个位置。希望空出一个空间作为约定。初始值为0。
当队列满时,条件是(rear + 1)%maxSize == front。
当队列为空时,条件是rear == front。
有效个数:(rear + maxSize - front)%maxSize。

package com.lin.queue_0131;import java.util.Scanner;public class ArrayQueuePuls {  public static void main(String[] args) { ArrayQueue2 arrayQueue2 = new ArrayQueue2(4); Scanner scanner = new Scanner(System.in); char c; while(true) {  System.out.println("------------------------------");  System.out.println("|");  System.out.println("|");  System.out.println("------------------------------");  System.out.println("-1 s(show):显示队列, -2 e(exit):退出程序, -3 a(add):添加数据到队列, -4 g(get):获取队列的数据, -5 h(head):查看队列头数据,-1 printFornt,-2 printRear ");  System.out.println("请输入以上提示字符:");  c = scanner.next().charAt(0);  switch (c) {  case 's':   arrayQueue2.showQueue();   break;  case 'e':   System.exit(0);   break;  case 'a':   System.out.println("请输入添加数据:");   int n = scanner.nextInt();   arrayQueue2.addQueue(n);   break;  case 'g':   try {    System.out.println("出队:" + arrayQueue2.getQueue());   } catch (NullQueueException e) {    System.err.println(e.getMessage());   }   break;  case 'h':   try {    System.out.println("头数据:" + arrayQueue2.headQueue());   } catch (NullQueueException e) {    System.err.println(e.getMessage());   }   break;  case '1':   arrayQueue2.printFront();   break;  case '2':   arrayQueue2.printRear();   break;  default:   break;  } }}}class ArrayQueue2{  private int fornt; private int rear; private int maxSize; private int[] arr;  // 创建队列构造器 public ArrayQueue2(int maxSize){  this.arr = new int[maxSize];  this.maxSize = maxSize;  this.rear = 0;  // 指向队尾的数据  this.fornt = 0; // 指向队列头的前一位置 }  // 判断队列是否已满 public boolean isFull() {  return (rear + 1)%maxSize == fornt;  }  // 判断队列是否为空 public boolean isEmpty() {  return rear == fornt; }  // 入队 public void addQueue(int n) {  if(!isFull()) {   arr[rear] = n;   rear = (rear + 1)%maxSize;   System.out.println("添加成功!");  } else {   System.out.println("队列已满!");  }   }  // 出队 public int getQueue() throws NullQueueException {  if(isEmpty()) {   throw new NullQueueException("队列为空!"); // 自定义异常  }  int arrNum = arr[fornt];  fornt = (fornt + 1)%maxSize;  return arrNum;   }  // 遍历队列 public void showQueue() {  if(isEmpty()) {   System.out.println("队列为空,无法输出数据!");   return;  }  for (int i = fornt; i < fornt + numSize(); i++) {    System.out.print("arr[" + i%maxSize + "] = " + arr[i%maxSize] + "\t");  }  System.out.println(); }  public int numSize() {  return (rear + maxSize - fornt)%maxSize; // (rear + maxSize - fornt)%maxSize环形队列元素的实际个数 } // 显示队列的头数据 public int headQueue() throws NullQueueException {  if(isEmpty()) {   throw new NullQueueException("队列为空!"); // 自定义异常  }  return arr[fornt]; } public void printFront() {  System.out.println(this.fornt); } public void printRear() {  System.out.println(this.rear); }}

虽然数组size为4,但容量只有3

最后,fornt单词写错了,应该是front。

 

仅供参考,有错误还请指出!

有什么想法,评论区留言,互相指教指教。









原文转载:http://www.shaoqun.com/a/521230.html

跨境电商:https://www.ikjzd.com/

ideal:https://www.ikjzd.com/w/2286

友家速递:https://www.ikjzd.com/w/1341


队列介绍队列是一个有序列表,可以用数组或是链表来实现。遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出示意图:(使用数组模拟队列示意图)数组模拟队列队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图,其中maxSize是该队列的最大容量。因为队列的输出、输入是分别从前后端来处理,因此需要两个变量front及rear分别记录队列前后端的下标,front会
急速:急速
瀚霖:瀚霖
eBay全线沟通模板!基本等于全部身家:eBay全线沟通模板!基本等于全部身家
优秀的亚马逊选品有哪些流程?具体应该怎样操作?:优秀的亚马逊选品有哪些流程?具体应该怎样操作?
如何有效降低推广成本?这些方法一定要知道!:如何有效降低推广成本?这些方法一定要知道!

两面派!FIFA主席遭指控 他是推动欧超幕后大佬_弗洛伦蒂诺

原标题:两面派!FIFA主席遭指控 他是推动欧超幕后大佬

据《太阳报》消息,日前,有关欧洲超级联赛的话题又开始成为一大焦点,据称,皇马主席弗洛伦蒂诺以及尤文主席阿涅利,乃至曼联、利物浦都在尝试推动欧超的建立。而国际足联、欧足联对此进行了坚决的抵制。但是,近来西甲主席特巴斯指控国际足联主席因凡蒂诺,认为他在表面上反对欧超,但实际上是真正幕后策划欧超联赛的大佬。

此前,国际足联主席因凡蒂诺、欧足联主席切费林以及另外其他五位足联主席,共同签署了一份联合声明,警告如果欧洲超级联赛建立,其参与球员将无法参加欧洲杯、世界杯这些最高规格的赛事。

不过特巴斯指出,因凡蒂诺在其中是两面派,他是策划欧超联赛的幕后人物。特巴斯说道:"很明显,因凡蒂诺参加了他们的会议,并主持了俱乐部的组织工作,以便他能够在超级联赛中有发言权。他一直在研究这个项目,甚至鼓励他们建立这个项目。我们查阅的关于超级联赛的文件中提到了一个代号W01,很明显这个代号就是因凡蒂诺先生。如果我错了,我会道歉,但我们掌握的信息和事实似乎就在那里。"

特巴斯暗示因凡蒂诺与皇马主席弗洛伦蒂诺、曼联老板格雷泽、利物浦老板约翰-亨利以及米兰CEO加齐迪斯联系在一起,并已经达成了一个"魔鬼协议"。不过,国际足联一直否认他们与来自美国的金融巨头们有任何关联。

特巴斯甚至说道:"我手上的文件显示,这项计划将于2月份公布。他们说他们将在三月份出售转播权,这一切将从2022年开始。对此,我不敢肯定,因为这些俱乐部已经参与了有关2021年至2024年欧洲冠军联赛转播权的决定。不管是对欧超联赛知情与不知情的俱乐部,让我们看看会发生什么,即使这个联赛建立了,这些俱乐部在中短期内赚到更多的钱,但从长远来看,这对足球、对他们来说都不是好事。"返回搜狐,查看更多

责任编辑:

原文转载:http://sport.shaoqun.com/a/389646.html

跨境电商:https://www.ikjzd.com/

斑马物联网:https://www.ikjzd.com/w/1316

e邮宝:https://www.ikjzd.com/w/594.html?source=tagwish


原标题:两面派!FIFA主席遭指控他是推动欧超幕后大佬据《太阳报》消息,日前,有关欧洲超级联赛的话题又开始成为一大焦点,据称,皇马主席弗洛伦蒂诺以及尤文主席阿涅利,乃至曼联、利物浦都在尝试推动欧超的建立。而国际足联、欧足联对此进行了坚决的抵制。但是,近来西甲主席特巴斯指控国际足联主席因凡蒂诺,认为他在表面上反对欧超,但实际上是真正幕后策划欧超联赛的大佬。此前,国际足联主席因凡蒂诺、欧足联主席切费林
feedly:feedly
徐家骏:徐家骏
产品毛利+系统备货逻辑计算公式:产品毛利+系统备货逻辑计算公式
外贸名人堂:外贸名人堂
福鑫国际:福鑫国际

Kafka 如果丢了消息,怎么处理的?

Kafka存在丢消息的问题,消息丢失会发生在Broker,Producer和Consumer三种。

Broker

Broker丢失消息是由于Kafka本身的原因造成的,kafka为了得到更高的性能和吞吐量,将数据异步批量的存储在磁盘中。消息的刷盘过程,为了提高性能,减少刷盘次数,kafka采用了批量刷盘的做法。即,按照一定的消息量,和时间间隔进行刷盘。这种机制也是由于linux操作系统决定的。将数据存储到linux操作系统种,会先存储到页缓存(Page cache)中,按照时间或者其他条件进行刷盘(从page cache到file),或者通过fsync命令强制刷盘。数据在page cache中时,如果系统挂掉,数据会丢失。

Broker在linux服务器上高速读写以及同步到Replica

上图简述了broker写数据以及同步的一个过程。broker写数据只写到PageCache中,而pageCache位于内存。这部分数据在断电后是会丢失的。pageCache的数据通过linux的flusher程序进行刷盘。刷盘触发条件有三:

  • 主动调用sync或fsync函数
  • 可用内存低于阀值
  • dirty data时间达到阀值。dirty是pagecache的一个标识位,当有数据写入到pageCache时,pagecache被标注为dirty,数据刷盘以后,dirty标志清除。

Broker配置刷盘机制,是通过调用fsync函数接管了刷盘动作。从单个Broker来看,pageCache的数据会丢失。

Kafka没有提供同步刷盘的方式。同步刷盘在RocketMQ中有实现,实现原理是将异步刷盘的流程进行阻塞,等待响应,类似ajax的callback或者是java的future。下面是一段rocketmq的源码。

GroupCommitRequest request = new GroupCommitRequest(result.getWroteOffset() + result.getWroteBytes());service.putRequest(request);boolean flushOK = request.waitForFlush(this.defaultMessageStore.getMessageStoreConfig().getSyncFlushTimeout()); // 刷盘

也就是说,理论上,要完全让kafka保证单个broker不丢失消息是做不到的,只能通过调整刷盘机制的参数缓解该情况。比如,减少刷盘间隔,减少刷盘数据量大小。时间越短,性能越差,可靠性越好(尽可能可靠)。这是一个选择题。

为了解决该问题,kafka通过producer和broker协同处理单个broker丢失参数的情况。一旦producer发现broker消息丢失,即可自动进行retry。除非retry次数超过阀值(可配置),消息才会丢失。此时需要生产者客户端手动处理该情况。那么producer是如何检测到数据丢失的呢?是通过ack机制,类似于http的三次握手的方式。

The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. The following settings are allowed: acks=0 If set to zero then the producer will not wait for any acknowledgment from the server at all. The record will be immediately added to the socket buffer and considered sent. No guarantee can be made that the server has received the record in this case, and the retries configuration will not take effect (as the client won't generally know of any failures). The offset given back for each record will always be set to -1. acks=1 This will mean the leader will write the record to its local log but will respond without awaiting full acknowledgement from all followers. In this case should the leader fail immediately after acknowledging the record but before the followers have replicated it then the record will be lost. acks=allThis means the leader will wait for the full set of in-sync replicas to acknowledge the record. This guarantees that the record will not be lost as long as at least one in-sync replica remains alive. This is the strongest available guarantee. This is equivalent to the acks=-1 setting.

  • acks=-1,leader broker收到消息后,挂起,等待所有ISR列表中的follower返回结果后,再返回ack。-1等效与all。这种配置下,只有leader写入数据到pagecache是不会返回ack的,还需要所有的ISR返回"成功"才会触发ack。如果此时断电,producer可以知道消息没有被发送成功,将会重新发送。如果在follower收到数据以后,成功返回ack,leader断电,数据将存在于原来的follower中。在重新选举以后,新的leader会持有该部分数据。数据从leader同步到follower,需要2步:

    1. 数据从pageCache被刷盘到disk。因为只有disk中的数据才能被同步到replica。
    2. 数据同步到replica,并且replica成功将数据写入PageCache。在producer得到ack后,哪怕是所有机器都停电,数据也至少会存在于leader的磁盘内。
  • 上面第三点提到了ISR的列表的follower,需要配合另一个参数才能更好的保证ack的有效性。ISR是Broker维护的一个"可靠的follower列表",in-sync Replica列表,broker的配置包含一个参数:min.insync.replicas。该参数表示ISR中最少的副本数。如果不设置该值,ISR中的follower列表可能为空。此时相当于acks=1。

    如上图中:

    • acks=0,总耗时f(t) = f(1)。
    • acks=1,总耗时f(t) = f(1) + f(2)。
    • acks=-1,总耗时f(t) = f(1) + max( f(A) , f(B) ) + f(2)。

    性能依次递减,可靠性依次升高。

    Producer

    Producer丢失消息,发生在生产者客户端。

    为了提升效率,减少IO,producer在发送数据时可以将多个请求进行合并后发送。被合并的请求咋发送一线缓存在本地buffer中。缓存的方式和前文提到的刷盘类似,producer可以将请求打包成"块"或者按照时间间隔,将buffer中的数据发出。通过buffer我们可以将生产者改造为异步的方式,而这可以提升我们的发送效率。

    但是,buffer中的数据就是危险的。在正常情况下,客户端的异步调用可以通过callback来处理消息发送失败或者超时的情况,但是,一旦producer被非法的停止了,那么buffer中的数据将丢失,broker将无法收到该部分数据。又或者,当Producer客户端内存不够时,如果采取的策略是丢弃消息(另一种策略是block阻塞),消息也会被丢失。抑或,消息产生(异步产生)过快,导致挂起线程过多,内存不足,导致程序崩溃,消息丢失。

    producer

    根据上图,可以想到几个解决的思路:

    • 异步发送消息改为同步发送消。或者service产生消息时,使用阻塞的线程池,并且线程数有一定上限。整体思路是控制消息产生速度。
    • 扩大Buffer的容量配置。这种方式可以缓解该情况的出现,但不能杜绝。
    • service不直接将消息发送到buffer(内存),而是将消息写到本地的磁盘中(数据库或者文件),由另一个(或少量)生产线程进行消息发送。相当于是在buffer和service之间又加了一层空间更加富裕的缓冲层。

    Consumer

    Consumer消费消息有下面几个步骤:

    1. 接收消息
    2. 处理消息
    3. 反馈"处理完毕"(commited)

    Consumer的消费方式主要分为两种:

    • 自动提交offset,Automatic Offset Committing
    • 手动提交offset,Manual Offset Control

    Consumer自动提交的机制是根据一定的时间间隔,将收到的消息进行commit。commit过程和消费消息的过程是异步的。也就是说,可能存在消费过程未成功(比如抛出异常),commit消息已经提交了。此时消息就丢失了。

    Properties props = new Properties();props.put("bootstrap.servers", "localhost:9092");props.put("group.id", "test");// 自动提交开关props.put("enable.auto.commit", "true");// 自动提交的时间间隔,此处是1sprops.put("auto.commit.interval.ms", "1000");props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);consumer.subscribe(Arrays.asList("foo", "bar"));while (true) {  // 调用poll后,1000ms后,消息状态会被改为 committed ConsumerRecords<String, String> records = consumer.poll(100); for (ConsumerRecord<String, String> record : records) insertIntoDB(record); // 将消息入库,时间可能会超过1000ms}

    上面的示例是自动提交的例子。如果此时,insertIntoDB(record)发生异常,消息将会出现丢失。接下来是手动提交的例子:

    Properties props = new Properties();props.put("bootstrap.servers", "localhost:9092");props.put("group.id", "test");// 关闭自动提交,改为手动提交props.put("enable.auto.commit", "false");props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);consumer.subscribe(Arrays.asList("foo", "bar"));final int minBatchSize = 200;List<ConsumerRecord<String, String>> buffer = new ArrayList<>();while (true) {  // 调用poll后,不会进行auto commit ConsumerRecords<String, String> records = consumer.poll(100); for (ConsumerRecord<String, String> record : records) { buffer.add(record); } if (buffer.size() >= minBatchSize) { insertIntoDb(buffer);    // 所有消息消费完毕以后,才进行commit操作 consumer.commitSync(); buffer.clear(); }}

    将提交类型改为手动以后,可以保证消息"至少被消费一次"(at least once)。但此时可能出现重复消费的情况,重复消费不属于本篇讨论范围。

    上面两个例子,是直接使用Consumer的High level API,客户端对于offset等控制是透明的。也可以采用Low level API的方式,手动控制offset,也可以保证消息不丢,不过会更加复杂。

     try {  while(running) {   ConsumerRecords<String, String> records = consumer.poll(Long.MAX_VALUE);   for (TopicPartition partition : records.partitions()) {    List<ConsumerRecord<String, String>> partitionRecords = records.records(partition);    for (ConsumerRecord<String, String> record : partitionRecords) {     System.out.println(record.offset() + ": " + record.value());    }    long lastOffset = partitionRecords.get(partitionRecords.size() - 1).offset();    // 精确控制offset    consumer.commitSync(Collections.singletonMap(partition, new OffsetAndMetadata(lastOffset + 1)));   }  } } finally { consumer.close(); }

    来源:https://blog.dogchao.cn/?p=305

    近期热文推荐:

    1.Java 15 正式发布, 14 个新特性,刷新你的认知!!

    2.终于靠开源项目弄到 IntelliJ IDEA 激活码了,真香!

    3.我用 Java 8 写了一段逻辑,同事直呼看不懂,你试试看。。

    4.吊打 Tomcat ,Undertow 性能很炸!!

    5.《Java开发手册(嵩山版)》最新发布,速速下载!

    觉得不错,别忘了随手点赞+转发哦!









    原文转载:http://www.shaoqun.com/a/521215.html

    跨境电商:https://www.ikjzd.com/

    heap:https://www.ikjzd.com/w/2012

    欧苏丹:https://www.ikjzd.com/w/1756


    Kafka存在丢消息的问题,消息丢失会发生在Broker,Producer和Consumer三种。BrokerBroker丢失消息是由于Kafka本身的原因造成的,kafka为了得到更高的性能和吞吐量,将数据异步批量的存储在磁盘中。消息的刷盘过程,为了提高性能,减少刷盘次数,kafka采用了批量刷盘的做法。即,按照一定的消息量,和时间间隔进行刷盘。这种机制也是由于linux操作系统决定的。将数据存
    zen cart:zen cart
    淘粉8:淘粉8
    EarData:EarData
    现在入驻shopee还来得及吗?这家企业告诉你!:现在入驻shopee还来得及吗?这家企业告诉你!
    ​干货:亚马逊卖家账号二审最全通关宝典!:​干货:亚马逊卖家账号二审最全通关宝典!

    因涉嫌强迫劳动,Target、Costco不再出售该产品

    近日,善待动物组织(PETA)发表了一份声明,表示总部位于泰国的Chaokoh公司一直在剥削并强迫猴子劳动。在调查该饮料与强迫猴子劳动有关后,TargetCostco等多家线上平台已经决定停售该Chaokoh椰奶。

     

    已有26000家商店停售Chaokoh椰奶

     

    Chaokoh总部位于泰国,是全球主要生产椰奶和椰子产品的大型公司之一,其椰浆产品行销美国、中国、日本以及澳大利亚等36个国家

     

    图1.jpg

     

    据悉,包括Target、WegmansCostcoFood LionStop&Shop等多家美国线上零售平台,都已经停止销售该品牌的产品。据不完全统计,美国线上线下有26000多家商店都已经停止销售该品牌产品,但是包括Publix、Kroger和Albertsons等超市仍在销售。

     

    有多家零售商说:"鉴于Chaokoh椰奶的指控已经被多次证实,我们决定将其产品从我们的产品分类中删除。"也有PETA发言人在一份声明中写道:"我们坚信动物也应该有人道待遇,并希望与我们有业务往来的人也这样做。"

     

    Chaokoh剥削猴子事件屡有发生

     

    2019年,PETA对剥削猴子事件进行首次调查,结果显示泰国多家椰子园区使用猴子摘椰子。猴子奴隶事件引发的轩然大波,还让泰国官方也出面作出了回应,表示将不再使用猴子的人工劳动。

     

    2.jpg

     

    但是 PETA的第二次调查发现,生产商仍在使用猴子劳动,并且他们在讨论如何隐藏猴子直到审计员离开,或雇用猴子承包商,仅在收获季节才引入猴子。

     

    PETA两次秘密调查中发现,许多猴子从出生起就被金属项圈以及锁链控制住,农民会将它们训练成采摘椰子的机器它们每天被迫摘大1000个椰子。

     

    此外,猴子还要为游客做"马戏团式的表演"当不被迫为游客采摘椰子或以马戏表演的形式表演时,这些动物将被束缚,拴在旧轮胎上,或被限制在仅比其身体大的笼子中。

     

    据悉,在泰国、菲律宾、马来西亚、印尼等东南亚国家确实有训练猴子摘椰子的习俗,并且沿袭了数百年,不过现在更多是作为一种观光表演存在。

     

    事实上,不管是人还是动物,都有平等的生存权利。卖家需要注意的是,在上架产品前,需要仔细了解产品,否则牵扯到此类问题,不仅影响产品的销量,还会对卖家的信誉产生严重的影响。





    原文转载:http://www.shaoqun.com/a/521216.html

    跨境电商:https://www.ikjzd.com/

    巴士物流:https://www.ikjzd.com/w/2329

    马士基航运:https://www.ikjzd.com/w/1296


    近日,善待动物组织(PETA)发表了一份声明,表示总部位于泰国的Chaokoh公司一直在剥削并强迫猴子劳动。在调查该饮料与强迫猴子劳动有关后,Target、Costco等多家线上平台已经决定停售该Chaokoh椰奶。已有26000家商店停售Chaokoh椰奶Chaokoh总部位于泰国,是全球主要生产椰奶和椰子产品的大型公司之一,其椰浆产品行销美国、中国、日本以及澳大利亚等36个国家。据悉,包括Ta
    欧舒丹:欧舒丹
    点通:点通
    少妇口述:对老公坦白过去后他让我生不如死:少妇口述:对老公坦白过去后他让我生不如死
    敏哥:揭秘亚马逊A9算法中的关联流量玩儿法:敏哥:揭秘亚马逊A9算法中的关联流量玩儿法
    负面反馈也能化腐朽为神奇?这些方法让你秒变"好评收割机"!:负面反馈也能化腐朽为神奇?这些方法让你秒变"好评收割机"!

    健康的男人,行事时间应该是多长?太长太短都不好

    核心提示:夫妻生活不仅可以调节夫妻之间的感情,也可以借此来了解一个人的身体状况,而同房的频率对健康也有一定联系。

    夫妻生活不仅是调理夫妻双方感情的润滑剂,通过夫妻生活的质量也可以了解一个人的身体状况,那么正常情况下夫妻之间同房的频率是多少,同房过多会对身体造成什么伤害呢?

    正常的同房频率是多少

    多数男人都很在意x生活持续时间,如果持久性太短就会认为自己身体不行会觉得没自信、难堪,其实这种衡量方式并不正确,如果背负着这样的观念很容易导致男性zao泄,一个健康的男人,夫妻生活持续的时间一般在三分钟以上,如果在这个过程当中有适当的停顿也可以延长s精时间,其时间可以长达十分钟到半个小时,也有一些还会超过这个时间。

    而对于夫妻生活的频率,在不同年龄段的人群回答是不同的,没有固定的数值,从身体方面来考虑,应该以第二天不会出现明显疲劳腰酸乏力的现象为基础,不能影响正常的工作以及生活,可见,在不同的年龄段不同的性格不同工作性质的人身上频率是不同的。

    正常而言,不到三十岁的年轻人每个星期在两次到四次,处于三十岁到四十岁的人群每个星期需要保障夫妻生活频率在两次,处于四十岁到五十岁的人群每个星期需要至少保障一次夫妻生活,五十岁以上的人群每三四周一次即可。

    同房过多的危害可不少

    1、影响体质

    夫妻生活是一个耗时耗力的过程,会导致一个人的体力消耗太大,长时间下去自然会影响一个人的身体状况,会出现精神不济记忆力下降等症状。

    2、性器官疲劳

    因为性冲动的连续性发生,就会加重控制性活动的中枢神经,也会给x器官造成负担,x器官在重复性活动下去就会出现功能衰竭,可能会导致zao泄出现。

    3、出现性功能障碍

    经常性进行x生活会延长s精的时间,这样s精时间越来越长也就会埋下阳wei、s精时间迟缓的隐患,长时间下去还会影响夫妻生活的质量。

    4、腰背劳损

    同房时间太过频繁,x器官反复性充血会引发前列腺炎精囊炎的出现概率,长时间下去还会导致女性腰酸背痛以及血精的症状,而女子同房频率太高也会让x器官长时间处于充血的状态会诱发盆腔充血,出现下身沉重的现象。


    5、频繁同房的表现

    如果同房次数太多就会出现面容憔悴、身体消瘦、以及精神倦怠、萎靡不振、心跳气短以及失眠多梦的症状,一旦出现这些信号一定要调整自己的同房频率。

    虽然说夫妻生活可以增加夫妻之间的感情,但是同房太频繁对健康是非常不利的,也会造成身体隐患,因此在生活中一定要注意控制欲望。


    原文转载:http://health.shaoqun.com/a/148974.html

    跨境电商:https://www.ikjzd.com/

    出口易:https://www.ikjzd.com/w/1317

    hunter:https://www.ikjzd.com/w/992


    核心提示:夫妻生活不仅可以调节夫妻之间的感情,也可以借此来了解一个人的身体状况,而同房的频率对健康也有一定联系。 夫妻生活不仅是调理夫妻双方感情的润滑剂,通过夫妻生活的质量也可以了解一个人的身体状况,那么正常情况下夫妻之间同房的频率是多少,同房过多会对身体造成什么伤害呢?正常的同房频率是多少多数男人都很在意x生活持续时间,如果持久性太短就会认为自己身体不行会觉得没自信、难堪,其实这种衡量方式并不正
    writer:writer
    西集网:西集网
    省钱!听说"亚马逊物流轻小商品计划"可以?:省钱!听说"亚马逊物流轻小商品计划"可以?
    亚马逊海卖助手正式停用,功能强大的替代工具4KMILES来袭!:亚马逊海卖助手正式停用,功能强大的替代工具4KMILES来袭!
    写给新卖家- 3.8女神节来临,跨境电商日本樱花爆款产品遍地盛开:写给新卖家- 3.8女神节来临,跨境电商日本樱花爆款产品遍地盛开