2020-10-31

活动可视化搭建系统——你的KPI被我承包了

前言

对于C端业务偏多的公司来说,在增长、运营等各方同学的摧残下永远绕不过去的一个坑就是大量的H5页面开发,它可能是一个下载、需求告知、产品介绍、营销活动等页面。此类需求都有几个明显的缺点:

•开发性价比极低、上线时间紧,每次需要指派单独同学支持。•沟通成本高,而业务逻辑高度相似。•高频次的需求 有句话怎么说来着,世界是"懒人"创造的,当我们烦透了无休止的重复工作时,一些"偷懒"的想法就会蹦出来。对研发而言我们不想花费过多的时间在此类简单重复的工作上;对运营而言他们需要活动更快的迭代、发版,脱离研发的排期等限制;于公司而言节省人力成本就是节省财务成本,更大的提高效率就可以支撑配合更多增长营销策略。

所以从技术赋能业务的角度出发,一套可视化活动编辑系统是每个中大型公司必备的生产利器。

首先让我们来挑几个代表性的页面简单分析一下...

如下图:

 

先从页面上做个分析:

•图1、3都属于简单的引流下载页•图2、4属于普通活动页•图5无任何交互逻辑,只是单纯的一个静态告知页•图6从页面结构和业务逻辑来说,属于复杂活动页

接下来抛开UI细节层面不谈,对页面进行一个拆解

•图1、3 组合方式 ( 背景图 + 按钮 + [ ios、安卓 ]下载链接 )

•图2、4 组合方式 ( 背景 + 按钮 + 活动规则 + 领券逻辑 )•图5 组合方式 ( 背景 + 活动规则 )•图6 组合方式 ( 背景 + 业务模块 + 活动规则 ) 

 

综上分析可见,每个页面由多个小模块构成,可以是基础UI组件,也可以是一个复杂的业务组件,且组合方式多种多样,可以预想到当我们将这些不同组件像组件库那样整合在一起且可以在页面进行可视化的编辑操作时,不同的组件不同的排列即可生成一个全新的活动,就像积木一样拥有无限种可能,开发效率将会大大提高,本文将这两个月鼓捣lego活动可视化搭建系统(以下简称lego)从0到1的心路历程整理出来供各位有相关需求的小伙伴参考,也欢迎大神交流指正。

 

 

核心方案

Lego采用Vue框架开发,通过对组件物料进行拆分再统一管理,形成一个可编辑的组件库。JSON schema 来定义组件JSON规范,配合Vue的动态组件特性来实现动态的页面渲染。动态表单用于根据不同组件特性生成对应配置表单。最后打包并优化多页面,每个页面单独配置域名,一个负责内部编辑、一个负责对外展示。通过活动id获取对应活动JSON数据动态渲染在活动展示页面。

渲染流程:

多页面流程:关于最后的活动页面展示除了多页面外其实还有特别多种方案可选,选择最合适自己业务的就好,后边内容会细说这几种展示方案。

 

关键词:JSON schema、动态渲染、动态表单、组件管理、多页面

技术方案

动态渲染

is

如何将不同的组件打散后再重新拼装并渲染在页面上是整个技术方案最核心的点,好在Vue提供了动态渲染组件方案,通过内置组件conpontent,渲染一个"元组件"为动态组件并根据 is 的值,来决定哪个组件被渲染。

 

 

props

大部分组件的可配置项无非就样式、链接、事件、文案这几种,我们将它们抽离成一个config对象,通过props的方式传递给子组件用于渲染样式或者加一些点击事件等,比如bind绑定传进来的style样式,当然在这之前一定要定好基础config的规范。

 

 

渲染函数

由于一些业务的原因,Lego除基础组件外其它部分开放的自由度并不算高,所以props的方案目前可以满足我们的需求,但如果你想开放更高的自由度,释放系统的完全编程能力,比如配置一些点击事件,事件执行交互等等。那可以试试Render渲染函数。根据官网对它的描述,它比模板要更接近编译器。而它的可配置对象足够你肆意发挥了。

 

 

布局方案

可视化布局的方案抛开大厂不谈,根据公司人员配比,建议大部分中小公司只需要以下两种方案的一种即可。根据不同的优缺点来选择最适合你的方案,如果条件允许也可以二者结合实现。

抽屉式

自上而下顺序排列,可以更换组件位置,但不能实现元素定位,没有层级概念,遇到复杂布局或者需要叠放元素时不够灵活,如果需要实现复杂页面的效果则需要引入复合UI组件的概念,它需要大量现成的UI组件。优点是将可操作程度限定在了一个可控的范围内,对非设计人员来说只需要通过现有UI组件进行拼装即可生成一个美观度较高的页面,lego即采用的是此方案。

 

 

自由式

完全可随意拖拽元素位置,自由度高,只需几个基础UI组件即可,存在层级概念,可任意叠放拼装,在无成品UI组件的情况下diy出复杂页面。但页面不可控,对操作人员的美感要求更高。更适合UI同学操作使用。下图只是一个复杂布局的例子,关注布局即可先不要管业务逻辑如何实现。

 

 

关于自由度

结合布局方案聊一下关于可编辑自由度的问题,编辑自由度应该综合实际情况进行考量。

对于lego而言,UI同学仅参与组件设计的工作而不会去使用此系统去编辑发布活动,而当UI同学不直接参与最后的拼装上线时,高自由度的编辑操作对我们而言其实是个鸡肋,直接开放高自由度给运营人员,由于存在层级叠放且可自由拖拽,这样就会有可能面临着大量的不可控的页面样式,即使在编辑完后UI同学对页面效果把关,但相较于改起来的时间成本和活动质量来说是得不偿失的。而且高自由度带来的是更多的技术的考量和实现成本,嵌套组件的层级规则、拖拽方案、组件定位等等….所以当你的团队技术实力和你能得到支持的资源不是那么充分时,也许抽屉式的半自由度方案更加适合你。

半自由度从布局方案到组件的可配置项上来说开放程度有限,组件方面针对基础UI组件开放相对高的配置编辑项,同时积累大量的成品UI组件可选。在编辑时不需要考虑太细节的样式问题,保证页面质量。

当开发人力和资源和部门协同、工作流程都到位且规范的情况下,两种方式结合其实是最佳的方案。可以提供不同模式来供不同人员使用,甚至可以实现在线编辑器来供研发人员直接进行代码调整。

组件分类

Lego将组件分为了两大类:UI组件、业务组件

UI组件细分为基础组件和复合组件,UI组件仅用来做静态展示用。原则是自身不包含任何业务逻辑,由于采用半开放的布局方案,对于复杂样式来说我们又基于基础组件封装了很多不同功能不同用处的复合型UI组件用以满足更复杂页面的需求。比如不同主题的标题、按钮、都可以单独封装出来直接用于拼装。

 

业务组件是指那些和服务端有交互的有业务逻辑在里的组件,属于独立的功能模块,可以理解成每个业务组件都是一个单独的活动,比如购卡、抽奖、分享等等。lego针对业务组件的唯一原则就是不在系统内提供业务相关可配置入口,仅开放基础样式配置,如大小、主题色等。将权限回收至研发手中,每个业务组件在营销后台中配置数据,通过不同活动id进行区分渲染。因为每个业务组件发布前都经过了QA的完整测试流程,可以最大程度保证活动的稳定性,而不至于影响到业务。

 

 

配置项

每个组件根据自身特性拥有着不同的配置项,在选中组件后展示对应的配置表单是通过动态表单完成的,Lego系统使用了IView的组件库,每个组件除自身属性外还会对应一份配置对象,通过匹配配置对象来描述这个表单的结构,最后还是通过compontent对表单组件进行循环渲染。

 

通信

对页面配置、组件增删、某个元素的配置项等所有编辑后的变化通过Vuex做统一管理进行通知。需要注意的是很多情况下只是改变某个对象下的一个属性,watch监听不到这种对象属性变化,而像是某个样式的其中一个属性变动是很频繁的,所以可以通过添加一个changeStatus的状态,每次属性被改变后可以更改监听changeStatus的状态来通知Vuex进行对应更新,但要注意做好防抖。

 

 

输出页面

当编辑完组件并拼装好整个页面后,如何将这个页面最终暴露给用户,在这个问题上我们设计过两种方案:

A方案:

从公司现有的活动项目新建一个页面,将组件库打包发布到私有npm仓库进行管理并在此处引入,提供一个获取活动配置的接口给它,所有的活动都使用这个页面作为落地页,通过不同的活动id来获取不同的活动配置信息进行动态渲染。好处是上线方便,只要在lego系统进行发布后拿到发布后的活动id进行拼接即可,而无需进行页面部署。缺点也很明显,需要等待接口请求成功后才能进行渲染,一旦接口服务报错线上所有活动全部都会失效,而且渲染速度势必要比静态页面慢。这个方案我们最终放弃了,因为除了上述问题,最关键的阿是从技术方面,我们的node服务开发经验较少,从技术方案到架构方面都比较薄弱,而且最开始从设计之初没有考虑服务并发和数据库压力等,一旦像是通过公众号推送的活动,它承载的的并发是非常非常高的。所以在没有得到服务端同学参与的情况下没有轻易采用此方案。

 

 

B方案

大体思路同上,还是通过活动id取配置信息渲染页面。但把请求node服务拿配置的方式改成了访问本地json文件,并在落地页的归属上做了一些调整。步骤如下:

1.将lego分为两部分:编辑系统、落地页,配置多页面打包。2.优化多页面打包,做好文件分割,两部分各自引用自身需要文件,提升页面加载速度。3.两个页面分别配置一个域名,一个负责对内编辑,一个暴露对外作为落地页展示4.每次上线活动打包前将配置数据拉到本地储存为json,落地页访问本地的静态资源。 这个方案实现了组件库和公共方法的公用,同时针对每个页面做了分割,实现按需加载,保证页面性能。将网络请求node服务改为本地json,解决了并发的性能问题。缺点是当活动越来越多的时候,本地的json会越来越大,如果不及时清理无用数据,会导致页面加载越来越慢。lego目前采用的是这个方案,后续会再进行优化。

 

 

多页面优化

关于多页面的优化使用了splitChunk进行文件的分离,将系统端用到的各种资源单独进行分离。这样一来每个页面只要加载自身需要的即可。

1.删除默认配置2.单独导出chunk3.指定多入口页面单独进行配置chunk

优化后的页面速度

 

总结

1.就这个系统来说还有很多缺陷,但已经可以落地使用。像是落地页的方案目前还有明显缺陷,既配置数据保存在本地在一定程度上会拖慢加载速度。社区里的SSR服务端渲染方案、每个活动打包为单独静态页的方案都可以进行尝试。但还是那句话,根据当前团队的技术实力以及你能动用的资源综合进行方案的比较,有时候最好的方案不一定适合你现在的情况。2.活动搭建系统在一定意义上可以解决90%的简单页面,但复杂的多页面联动的活动还是无法做到。3.组件的积累才是重中之重,在物料不丰富的情况下,开发效率提高有限,而一旦运行一年半载组件库丰富起来,效率将会肉眼可见的提高。4.不要觉得自己的方案一定比别人的差,可以参考社区的大佬们优秀的技术方案和思路,但要从中找到自身需要的点即可。5.坚持独立思考、重视基础建设使技术赋能业务是每个开发人员应有的素质,与公司无关与团队无关,只要你有想法总会有办法将方案推动落地,自身的思考和实现的过程中的经验积累才是最宝贵的财富。

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

mil:https://www.ikjzd.com/w/1285

腾邦:https://www.ikjzd.com/w/1382

usps国际快递查询:https://www.ikjzd.com/w/513


前言对于C端业务偏多的公司来说,在增长、运营等各方同学的摧残下永远绕不过去的一个坑就是大量的H5页面开发,它可能是一个下载、需求告知、产品介绍、营销活动等页面。此类需求都有几个明显的缺点:•开发性价比极低、上线时间紧,每次需要指派单独同学支持。•沟通成本高,而业务逻辑高度相似。•高频次的需求有句话怎么说来着,世界是"懒人"创造的,当我们烦透了无休止的重复工作时,一些"
宝付:https://www.ikjzd.com/w/539
飞书互动:https://www.ikjzd.com/w/1319.html
去厦门旅游要带多少钱呢?:http://tour.shaoqun.com/a/44699.html
中小企业跨境电商做什么产品好?给你一些小建议!:https://www.ikjzd.com/home/111866
希腊旅游攻略 希腊的风土人情概况:http://tour.shaoqun.com/a/26012.html

笑容逐渐消失,中超外援将绿色帽子砸在地上!了解真相前笑开花_阿奇姆彭

原标题:笑容逐渐消失,中超外援将绿色帽子砸在地上!了解真相前笑开花

本轮中超,天津泰达与大连人第二回合比赛前,泰达因为2-0领先,训练气氛极好,阿奇姆彭也是戴着绿色帽子在进行训练。当工作人员提醒他其中的意思后,阿奇姆彭将帽子砸在了地上……

阿奇姆彭是本赛季泰达保级的绝对功臣,而他在首回合对阵大连人的比赛梅开二度,一共4次射门,3次射正,显示了超高的得分效率。另外,阿奇姆彭全场总跑动距离达到10824.8米,高强度跑802.8米,传球成功率达到83%,可以说表现非常出色。阿奇姆彭当选为本轮中超的最佳球员。

本赛季阿奇姆彭打入4球,也是泰达队内头号射手,但是需要注意,阿奇姆彭本赛季打入4球都是在第二阶段打进的,贡献无与伦比。能够提前完成俱乐部的任务,显然阿奇姆彭心情也很好。

因此在备战与大连人第二回合的比赛前,阿奇姆彭出人意料的戴了一顶绿色的帽子,不知道是队友的恶作剧,还是阿奇姆彭认为这很"酷"。在欢声笑语之中,阿奇姆彭成为了训练场的焦点,绿色的帽子也非常抢眼。

此时,一位工作人员或许看不下去了,上前跟阿奇姆彭一番耳语。笑着听完工作人员的解释后,阿奇姆彭瞬间就"懂了",他的笑容逐渐消失,变得气愤,将帽子狠狠地摔在地上!

这样搞笑一幕也成为了训练场有趣的花絮。即将开始的第二回合,我们看看阿奇姆彭还有怎样的发挥。返回搜狐,查看更多

责任编辑:

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

蜜芽宝贝官网:https://www.ikjzd.com/w/1320

知无不言:https://www.ikjzd.com/w/1308

c88:https://www.ikjzd.com/w/1017


原标题:笑容逐渐消失,中超外援将绿色帽子砸在地上!了解真相前笑开花本轮中超,天津泰达与大连人第二回合比赛前,泰达因为2-0领先,训练气氛极好,阿奇姆彭也是戴着绿色帽子在进行训练。当工作人员提醒他其中的意思后,阿奇姆彭将帽子砸在了地上……阿奇姆彭是本赛季泰达保级的绝对功臣,而他在首回合对阵大连人的比赛梅开二度,一共4次射门,3次射正,显示了超高的得分效率。另外,阿奇姆彭全场总跑动距离达到10824.
jpgoodbuy:https://www.ikjzd.com/w/1553
宝付:https://www.ikjzd.com/w/539
荷兰旅游玩什么:http://tour.shaoqun.com/a/59246.html
亚马逊海外大卖都用哪些热门工具做关键词研究?:https://www.ikjzd.com/home/114551
青岛崂山住宿哪里好?星级酒店有几家?:http://tour.shaoqun.com/a/21622.html

Java语言的演进

--整理自《Java核心技术(卷Ⅰ)基础知识(原书第11版)》

版本 | 年份 | 新语言特性

1.0  | 1996 |  语言本身

1.1  | 1997 |  内部类

1.2  | 1998 |  strictfp修饰符

1.3  | 2000 |  无

1.4  | 2002 |  断言

5.0  | 2004 |  泛类型、"for each"循环、可变元参数、自动装箱、元数据、枚举、静态导入

6     | 2006 |  无

7     | 2011 |  基于字符串的选择语句、菱形运算符、二进制字面量、异常处理增强

8     | 2014 |  lambda表达式、包含默认方法的接口、流和日期/时间库

9     | 2017 |  模块、其他的语言和类库增强

 

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

菜鸟网络:https://www.ikjzd.com/w/1547

华翰物流:https://www.ikjzd.com/w/1799

stylenanda官网:https://www.ikjzd.com/w/1675.html


--整理自《Java核心技术(卷Ⅰ)基础知识(原书第11版)》版本|年份|新语言特性1.0|1996|语言本身1.1|1997|内部类1.2|1998|strictfp修饰符1.3|2000|无1.4|2002|断言5.0|2004|泛类型、"foreach"循环、可变元参数、自动装箱、元数据、枚举、静态导入6|2006|无7|2011|基于字符串的选择语句、菱形运算符、二进制字面量、异常处理增强
走秀网:https://www.ikjzd.com/w/2427
雨果网:https://www.ikjzd.com/w/1307
亚马逊荷兰站点正式面向全球卖家开放:https://www.ikjzd.com/home/114598
新增至541家!广西旅游景区对全国医护及家属全年免费:http://tour.shaoqun.com/a/35530.html
亚马逊如何做到精细化运营?这四点必不可少!:https://www.ikjzd.com/home/99198

Vuex 部分

Vuex 部分
官网链接
https://vuex.vuejs.org/zh/

先说一下vuex到底是什么?
vuex 是一个专门为vue.js应用程序开发的状态管理模式。
这个状态我们可以理解为在data中的属性,需要共享给其他组件使用的部分。
也就是说,是我们需要共享的data,使用vuex进行统一集中式的管理。

vuex中,有默认的五种基本的对象:
state:存储状态(变量)
getters:对数据获取之前的再次编译,可以理解为state的计算属性。我们在组件中使用 $sotre.getters.fun()
mutations:修改状态,并且是同步的。在组件中使用$store.commit('',params)。这个和我们组件中的自定义事件类似。
actions:异步操作。在组件中使用是$store.dispath('')
modules:store的子模块,为了开发大型项目,方便状态管理而使用的。这里我们就不解释了,用起来和上面的一样。

vuex action 和 mutation之间的区别
mutation 定义的方法动态修改Vuex 的 store 中的状态或数据。view 层通过 store.commit来分发,必须同步执行。
action可以理解为通过将mutations里面处里数据的方法变成可异步的处理数据的方法,简单的说就是异步操作数据。view 层通过 store.dispath 来分发 action,不能直接操作state。

总结:
各个类型的 API各司其职,mutation 只管存,你给我(dispatch)我就存;action只管中间处理,处理完我就给你,
你怎么存我不管;Getter 我只管取,我不改的。 action放在了 methods 里面,说明我们应该把它当成函数来用
(讲道理,钩子函数也应该可以的) mutation是写在store里面的,这说明,它就是个半成品,中间量,
我们不应该在外面去操作它。getter写在了 computed 里面,这说明虽然 getter我们写的是函数,但是我们应该把
它当成计算属性来用。

Vue+Element项目兼容IE11
链接 https://blog.csdn.net/around_primary/article/details/79087466
Vue+Element ui开发中碰到的IE低版本问题
链接 https://blog.csdn.net/github_38847071/article/details/79993935
Vue+Element的el-scrollbar滚动条
链接 https://www.cnblogs.com/caiyuqin/p/9045684.html
https://www.cnblogs.com/myfirstboke/p/10218138.html

vue devtool的安装与使用(vue bug插件调试工具的安装与使用)
https://blog.csdn.net/AXIMI/article/details/83825042

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

bsci:https://www.ikjzd.com/w/2339

洋老板:https://www.ikjzd.com/w/2779

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


Vuex部分官网链接https://vuex.vuejs.org/zh/先说一下vuex到底是什么?vuex是一个专门为vue.js应用程序开发的状态管理模式。这个状态我们可以理解为在data中的属性,需要共享给其他组件使用的部分。也就是说,是我们需要共享的data,使用vuex进行统一集中式的管理。vuex中,有默认的五种基本的对象:state:存储状态(变量)getters:对数据获取之前的再
点通:https://www.ikjzd.com/w/1913
淘粉吧返利:https://www.ikjzd.com/w/1725
冬天到了 可以去武隆这么玩(吃美食):http://tour.shaoqun.com/a/21288.html
增城汽车客运中心到巽寮湾自驾游怎走?:http://tour.shaoqun.com/a/1733.html
做跨境电商,你需要读懂的事:https://www.ikjzd.com/home/20984

噩耗!前中国男排主教练去世,排协悼念,4天内两大名宿驾鹤_邹志华

原标题:噩耗!前中国男排主教练去世,排协悼念,4天内两大名宿驾鹤

今天对于中国排球来说是令人悲痛的一天,前中国男排主帅邹志华去世。邹志华职业生涯中获得过联赛冠军和全运会金牌,从1984年-1988年担任中国男排主教练,率队获得1986年亚运会冠军。

中国排协发文悼念:

中国排球协会 唁电 惊悉邹志华同志于2020年10月31日凌晨不幸逝世,我们为失去一位优秀排球工作者深感悲痛。

邹志华同志曾担任江苏男排主教练、总教练、中国男排主教练,为中国男排培养了一大批优秀运动员。退休后邹志华同志仍心系排球事业,为中国排球运动的发展献计献策。邹志华同志的生是奉献给中国排球事业的一生。

邹志华同志的逝世是中国排球的损失。值此之际,我们谨向邹志华同志的家属致以最诚挚的慰问 中国排球协会2020年10月31日

邹志华对于中国排球的贡献是非常大的,他和袁伟民是好兄弟,两人在1958年作为应届高中毕业生去到南京,当时邹志华和袁伟民住在上下铺,他们被省排球队教练张然选中,之后成为了江苏男排的主力。不同于袁伟民早早就入选到了国家队,回到省队的邹志华不放弃,在江苏队,邹志华拿下了联赛和全运会等一众冠军头衔。

1984年中国女排正在袁伟民的带领下登上世界之巅的时候,邹志华成为中国男排主教练,当时他的压力是可想而知的。虽然没有打进目标的洛杉矶奥运会,但对于邹志华来说,能够拿下亚运会冠军。88年从中国男排卸任之后的邹志华回到了江苏男篮,65岁的时候退休。在邹志华家里,随处可以看见排球的影子,电视机柜上摆着排球,衣架上挂满了各种国内排球赛事的胸卡。

现在这位曾经带领中国男排取得过辉煌的主教练去世,再加上4天前前中国男足主教练高丰文去世,中国体坛两大名宿驾鹤,确实令人很遗憾,也希望他们在天堂安好。返回搜狐,查看更多

责任编辑:

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

trax:https://www.ikjzd.com/w/1489

woot:https://www.ikjzd.com/w/604

jpgoodbuy:https://www.ikjzd.com/w/1553


原标题:噩耗!前中国男排主教练去世,排协悼念,4天内两大名宿驾鹤今天对于中国排球来说是令人悲痛的一天,前中国男排主帅邹志华去世。邹志华职业生涯中获得过联赛冠军和全运会金牌,从1984年-1988年担任中国男排主教练,率队获得1986年亚运会冠军。中国排协发文悼念:中国排球协会唁电惊悉邹志华同志于2020年10月31日凌晨不幸逝世,我们为失去一位优秀排球工作者深感悲痛。邹志华同志曾担任江苏男排主教练
史泰博办公用品:https://www.ikjzd.com/w/2112
sca:https://www.ikjzd.com/w/2424
最细致亚马逊PPC解析选词大法与概念:https://www.ikjzd.com/tl/2111
端午节北京哪里好玩?端午节北京旅游景点推荐:http://tour.shaoqun.com/a/63202.html
欢乐海岸水秀剧场时间?深圳欢乐海岸水秀剧场开放时间?_深圳:http://tour.shaoqun.com/a/19840.html

速看!法国德国相继封锁,欧洲卖家该何去何从?

速看!法国德国相继封锁,欧洲卖家该何去何从?


10月29日,法国因为疫情再度爆发性增长,法国总统马克龙宣布从10月30日起再次启动全国封锁政策,至少持续到12月1日。

具体规定如下:

1、完全禁止社交聚会。

2、法国居民如果出门在外,则必须填写表格。

3、唯一可以接受的离开居所的理由是进行基本工作,安排医疗服务,帮助弱势群体,在家附近散步以及进行杂货店购物。

4、非基本业务,包括餐馆和酒吧,将关闭。

5、必须尽可能远程进行工作。

6、大学课程大部分将在线进行。

7、学校和托儿所以及工厂,农场和建筑工地将继续开放。

8、禁止在区域之间旅行。

9、法国的国际边界大部分地区将保持关闭,并将对入境者进行强制性的快速COVID-19测试。

10、欧盟边界将保持开放,法国公民可以返回该国。

11、允许访问养老院。葬礼将被允许进行。

12、大多数公共服务将保持开放。

13、新的限制将每两周重新评估一次。

同时,德国也宣布,11月2日起,全国进入封城一个月。将关闭大部分公共设施,餐饮娱乐场所以及限制个人出游。

具体措施如下:

1、学校和幼儿园将保持开放

2、社会接触仅限于两个家庭,最多可容纳10人,旅游业将停止

3、酒吧将关闭,餐厅将仅限于外卖

4、纹身和按摩店将关闭

5、因关闭遭受严重影响的小型公司将获得2019年11月收入的75%的补偿

6、预计默克尔夫人和州总理将在11月11日的电视会议上再次开会,以重新评估情况。

尽管中小学和幼儿园仍继续开放,但其余措施已经以及达到年初的封城力度。

欧洲的疫情有大面积复发的趋势,在德法宣布"封国"的同时,其他国家也纷纷宣布封锁措施。

在看到这些消息的时候,许多欧洲站的卖家开始慌了,特别是黑五网一将近,如果欧洲航线如年初时再次停航,会对销售造成巨大的影响。

为了获得这个问题的答案,咱们贴心的小秘书就提前找到物流商给各位卖家打探了一波消息。

物流并不会停,最多只会影响进仓的速度以及物流的费用,不会对整体的销售造成过大影响。

那么反过来看,这次德法"封国"其实对于线上购物,会带来新一波的增长。在此前就有数据表示,欧洲的线上销售额比去年增长了12.7%。

居民在难以外出的时候,网络购物无疑是首选。根据一份调查报告显示,德国今年将有77%的人参与黑五的购物活动,较2019年增加了16.7%。

欧洲各国"封国"有利也有弊,在第一时间做好充足准备的情况下,相信各位大卖都是可以轻松应对的,也建议大家多关注欧洲的疫情发展,及时调整自己的运营方式。

来源:跨境电商指南

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

智赢:https://www.ikjzd.com/w/1511

盘古集团:https://www.ikjzd.com/w/1448

primc:https://www.ikjzd.com/w/129

海豚村:https://www.ikjzd.com/w/1779

worldfirst:https://www.ikjzd.com/w/289

速看!法国德国相继封锁,欧洲卖家该何去何从?

10月29日,法国因为疫情再度爆发性增长,法国总统马克龙宣布从10月30日起再次启动全国封锁政策,至少持续到12月1日。

nacos 作为配置中心

  通过前两篇文章大家也看出nacos从使用角度来说功能强大,我们现有的配置支持较友好,对项目的侵入性较小。这也是我继续研究他的动力,看看到底是否能引入到项目中来。下面三个主题是我接下来研究的主要方向:

  • 选举机制
  • 数据同步机制
  • 性能     

    nacos作为配置中心的功能是基于raft协议来实现的。为什么要选raft呢?

    答案只有两个字:简单。相比paxos协议来说,raft协议要简单的多。我们日常开发做方案时也应如此,简洁有效方案省时省力、易于实现、易于维护。我们逐渐培养自己从复杂的业务中抽象出最简单直接的方案的能力,培养自己化繁为简的能力。

    接下来不在废话,直接上raft协议中选举机制部分。    

    在raft中,任何时候一个服务器可以扮演下面角色之一:

  1. Leader:  所有请求的处理者,Leader副本接受client的更新请求,本地处理后再同步至多个其他副本;
  2. Follower:  请求的被动更新者,从Leader接受更新请求,然后写入本地日志文件
  3. Candidate候选人:  如果Follower副本在一段时间内没有收到Leader副本的心跳,则判断Leader可能已经故障,此时启动选主过程,此时副本会变成Candidate状态,直到选主结束。
  4. term:这根民主社会的选举很像,每一届新的履职期称之为一届任期  
 

    看到了这里,大家觉的raft的选举过程是怎样的呢?此处可以心里默想5分钟,已检验一下自己做方案的能力。然后再看下牛人是怎么实现的,从对比中学习人家的思路。在做事儿之前要现有自己的观念和看法,先思考一番,先思而后行。这样做有两个好处:

    1、不会盲从,能去其缺点,学习有点;

    2、能锻炼自己的做事儿做方案的能力,能让自己更加独立,不依赖别人,成为团队的核心、顶梁柱。

     选举过程如下:

    

  1. 系统刚刚启动,所有节点的任期都是0,大家的role都是follower
  2. 一个启动的节点第一个触发未检测到心跳超时,自增任期为1,并且重新计时(投票开始时间),给自己投一票,然后向所有的其它节点发起投票
  3. 其它节点当前的任期都为0,且日志也没空,肯定会投票给它,而且这些节点因为收到了candidate的投票选举,清零自己的心跳空白等待时间,未超时前不会发起投票,从而避免多重投票导致无效投票的可能性
  4. 第一个发起投票的节点收到半数投票,成为leader。
     

    1、每次follower收到leader的一次HeartBeat,都会清零自己的心跳计时器,重新开始计时,如果当前心跳计时器超时了,仍然未收到leader的心跳,就会从follower变成candidate

    2、自增当前任期,且开始计时(选举计时),向其它节点发起投票

    3、其它节点会比较 任期和日志的序号,至少不能比自己的数据旧才会投票给第一个发起投票的节点

    4、超过半数节点投票成功,才会成为leader,否则要等待选举超时,再发起第二轮投票。

    动态过程: https://raft.github.io/

     看到这里大家是否有疑问?     

    个人的疑问:

        选取出了主节点之后,从节点如何知道谁是主节点?

        任期的时长改怎么设置呢?所有节点都一样?

    从源码给大家解释nacos的实现过程。

    raft协议的实现都在RaftCore这个类中。

    

    Raft中有两个子类分被负责选举和心跳。

    1、选举的入口

 public static final long TICK_PERIOD_MS = TimeUnit.MILLISECONDS.toMillis(500L);

public void init() throws Exception {

//省略其他逻辑代码
....

Loggers.RAFT.info("finish to load data from disk, cost: {} ms.", (System.currentTimeMillis() - start));

GlobalExecutor.registerMasterElection(new MasterElection());
GlobalExecutor.registerHeartbeat(new HeartBeat());

Loggers.RAFT.info("timer started: leader timeout ms: {}, heart-beat timeout ms: {}",
GlobalExecutor.LEADER_TIMEOUT_MS, GlobalExecutor.HEARTBEAT_INTERVAL_MS);
}

public static void registerMasterElection(Runnable runnable) {
NAMING_TIMER_EXECUTOR.scheduleAtFixedRate(runnable, 0, TICK_PERIOD_MS, TimeUnit.MILLISECONDS);
}

public static void registerHeartbeat(Runnable runnable) {
NAMING_TIMER_EXECUTOR.scheduleWithFixedDelay(runnable, 0, TICK_PERIOD_MS, TimeUnit.MILLISECONDS);
}

    可以看出每隔500ms就会触发一次选举任务和心跳任务

    2、接下来看一下心跳是如何做的

   

   

    看源码"1、"处可以发现,在leaderDue(leader任期)内是不会进行选举的。只有leaderDue到期之后才会重置leaderDue和heartBeatDue(心跳检测时长),然后发送起投票。这里有个细节可以关注下,在代码"3、"处有一个随机值,大家有没有想过为什么要加入这个随机值?

    答:随机值是为了让每个节点的leaderDueMs不同,也就是每个节点的leader任期不一样,从而避免大家同时发起投票,提升选举leader的成功率。换一种说法就是,某个节点leaderDueMs先减为0,先自增term,然后后发起投票,这是该节点由于term+1比其他节点term值大,从而成功成为leader。如果不加随机值,大家同时发起头票,同时term+1 这样在这一轮选举中就不会有leader。

    3、选举具体过程

    

    

    发起头票的过程为头票发起方,向不包含自己的其他节点发起头票请求,其他节点接收到请求后,进行上述代码处"3、"处的处理,看一下term是否比自己的term他,大则投给他,然后然后将自己的term设置为要发起头票请求的term,重置leaderDueMs(为了避免自己再发起一轮头票请求)。最后将头票结果返回给头票发起方。头票发起方接收到头票结果,然后根据结果有半数头票的leader成为真正的leader。选举到此结束。

    那么问题来了,其他节点怎么知道这个头票结果呢?如果是你该以何种方式通知其他节点呢?

    这时候其实由于其他节点都选某个节点为主,然后自己leaderDueMs重置,不会发起选举了。

    4、心跳过程

    

    第一步和选举类似,只有heartBeatDueMs到期之后才会发起心跳处理。这里的心跳处理周期远远小于选举的term周期。而且再心跳处理过程中心跳发起方和接收方都会重置选举时间。通过时间的延长来阻止各个节点发起头票请求。

    上面代码地四处解决了某一节点成为leader之后,如何将这个消息通知给其他节点,答案就行通过心跳的方式将leader传给其他节点,其他节点接收到心跳请求之后,更新leader。接收心跳请求的代码如下。

 

    到此选举机制介绍完毕。

    此时有我有产生三个新的问题:

        1、follower 超时,有问题吗?

        2、leader 超时,有哦问题吗?

        3、脑裂问题该如何处理?

    问题一:

        follower超时,自身会重新发起选举,如果与其他节点不通,则会一直处于选举状态,如果超时一段时间后恢复,会通过选举成为新的leader或者(接收心跳消息完成了选举),或者成为原来leader的follower(在发去选举请求之前接收到了心跳消息,成为follower)。这时候会存在两个leader,但是由于旧leader的term较小,发送心跳消息不起效果,最终被新的leader同步为follower。该结论代验证,仅仅是分析结论

        又产生新问题,有两个leader会影响配置信息的发布吗?

    问题二:

        leader超时重新选举,差生新的leader。旧leader如果恢复了,也会通过心跳,被同步为follower。

    问题三:

         脑裂问题通过问题一和问题二的答案可以看出,通过时间续约和term比较最终旧leader被同步为follower。

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

prime:https://www.ikjzd.com/w/129

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

丰趣海淘:https://www.ikjzd.com/w/1716


通过前两篇文章大家也看出nacos从使用角度来说功能强大,我们现有的配置支持较友好,对项目的侵入性较小。这也是我继续研究他的动力,看看到底是否能引入到项目中来。下面三个主题是我接下来研究的主要方向:选举机制数据同步机制性能nacos作为配置中心的功能是基于raft协议来实现的。为什么要选raft呢?答案只有两个字:简单。相比paxos协议来说,raft协议要简单的多。我们日常开发做方案时也应如此,
徐家骏:https://www.ikjzd.com/w/1803
modcloth:https://www.ikjzd.com/w/1271
关于亚马逊美日欧鞋码新规,这份指南一定要看!:https://www.ikjzd.com/home/107696
欢乐谷几点开门,深圳欢乐谷什么时候开门?:http://tour.shaoqun.com/a/40031.html
台湾当局将赴京旅游疫情警示调降为"注意":http://tour.shaoqun.com/a/36793.html

爆料!传闻货代取消英国包税FBA服务?元旦后是封停高峰

英国脱欧即将到来之际,亚马逊欧洲站卖家圈风浪一波接一波……

近日,有关"货代已经开始取消英国包税FBA服务"的消息在卖家圈不胫而走。据卖家爆料称,其一直合作的货代已经通知开始取消英国包税FBA服务了,之后只能走不包税渠道,且物流运费直线上涨翻了3倍。究竟是怎么一回事呢?

爆料!传闻货代取消英国包税FBA服务?元旦后是封停高峰

(卖家截图)

货代或取消英国包税FBA服务?"短期内是可以做包税,元旦后将是封停高峰"

货代Dylan告诉,"随着2021年1月1日英国脱欧过渡期结束之后,销往英国市场的出口包裹将无法再采用包税FBA服务,要么通过不包税,要么采用空运快递渠道。不过,短期内其实还是能够做包税的。"他还进一步分析道,造成当前物流运价攀升的原因并非是受英国脱欧影响,一方面,由于苹果包机导致航班缺失,大量货物只能走海运快递掀起一阵涨价潮;另一方面,在于海外UPS派送全线涨价,因此纵观当前整体物流市场几乎所有渠道都在涨价。

多位货代证实了该消息真实性。"受英国脱欧的影响,亚马逊等跨境电商平台自11月起将停止英国的货物中转到其他欧盟仓库销售。届时,欧盟其他口岸进口货物派送至英国,将可能产生二次关税。"某货代说道。

另一货代也表示,英国脱欧已经进入实质性阶段,针对一般主要销售目的国为英国市场的卖家,应当选择直接发往英国的渠道,避免欧盟中转的渠道会因为英国脱欧产生二次清关或者退运的风险。可以预见的是,两个月后大部分包税渠道都将会暂停收货或者渠道变更清关,因此跨境卖家务必要提前做好必要准备。

了解到,受英国脱欧影响下,不只是货代圈开始传出取消英国包税FBA服务,在此之前,就曾有消息指出亚马逊FBA从明年1月起将不再提供英国与欧盟各国之间的跨境物流服务。其中,使用欧洲配送网络(EFN)的亚马逊物流商品将无法跨英国与欧盟边境配送。为了减轻这些变更带来的影响,建议卖家不妨考虑拆分库存,并分别运至英国和欧盟境内的亚马逊运营中心,进而确保在新海关边境两侧都有充足的库存。

不包税倒逼FBA卖家税务正规化运营,大批小卖家或面临洗牌出局

那么,货代开始取消英国包税FBA服务是否对卖家旺季物流产生较大影响,接下来有何应对措施呢?

Dylan认为,取消英国包税FBA服务对于跨境卖家店铺运营实则并非完全不利。"从资金方面来看,不包税虽然会导致物流成本压力倍增。但与此同时,大批小卖家在此过程中势必面临洗牌出局。基于过往经验来看,对于本就正规经营且有一定资金实力的大卖家其原本就是以不包税为主,且在当前跨境电商平台将直接代收代缴VAT政策下,卖家更不需要包税服务,因此影响甚微。"

据介绍,以往因欧洲FBA关务税务问题纠纷不绝于耳。比如,早在2018年就曾有大量电商货柜在英国港口被海关扣押,波及上百位涉事卖家。据悉,遭扣押的货柜,很有可能走的是"双清包税",使得部分为节省成本、少缴税而进行低价申报的卖家和货代铤而走险。在此基础上,若有一票货物出现问题,整个货柜的正常清关都将受直接影响。

某跨境卖家分析称,倘若英国包税FBA服务全面取消后,英国站点形式必将会倒逼所有FBA卖家税务正规化运营。原因有两点:

一是亚马逊将会在后台直接扣除VAT消费税,此时FBA卖家将无法使用低申报方式避税,促使卖家跨境电商经营越来越趋向于正规化。

二是卖家进口清关时正常申报并缴纳的VAT金额,后期可以与英国税务局抵扣并获取退税,因此就没必要研究如何低申报或者走双清的方式,双清实则更不划算。

"基于此,接下来跨境卖家务必将英国脱欧后的运营策略提上议程,制定好相应库存分配、物流计划、VAT申报、跨境运输报关等一系列工作。不难看出,英国脱欧引发的一系列'蝴蝶效应',势必将给欧洲跨境电商市场带来阵痛,而这对于中小卖家更是一场在利润和成本之间的博弈。积极拥抱国际市场变化,未雨绸缪,做好必要物流、运营准备,方能在欧洲跨境之路走得更长远。"该卖家如是说。

(文/ 陈林)

【特别声明】未经许可同意,任何个人或组织不得复制、转载、或以其他方式使用本网站内容。转载请联系:editor@cifnews.com

原文转载:http://fashion.shaoqun.com/a/287337.html

usps国际快递查询:https://www.ikjzd.com/w/513

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

prime:https://www.ikjzd.com/w/129


英国脱欧即将到来之际,亚马逊欧洲站卖家圈风浪一波接一波…… 近日,有关"货代已经开始取消英国包税FBA服务"的消息在卖家圈不胫而走。据卖家爆料称,其一直合作的货代已经通知开始取消英国包税FBA服务了,之后只能走不包税渠道,且物流运费直线上涨翻了3倍。究竟是怎么一回事呢? (卖家截图) 货代或取消英国包税FBA服务?"短期内是可以做包税,元旦后将是封停高峰" 货代Dylan告诉,"随着2021年1
数魔跨境:https://www.ikjzd.com/w/1425.html
新蛋:https://www.ikjzd.com/w/79
十一碧水庄园免门票:http://tour.shaoqun.com/a/69515.html
双廊旅游交通出行指南:http://tour.shaoqun.com/a/27614.html
自助游住宿要注意什么?:http://tour.shaoqun.com/a/3681.html

2020-10-30

足协杯第2轮抽签出炉:恒大苏宁上上签,鲁能国安有望半决赛相遇_广州

原标题:足协杯第2轮抽签出炉:恒大苏宁上上签,鲁能国安有望半决赛相遇

北京时间10月30日下午2点,足协杯第二阶段抽签仪式在苏州进行,其中李铁和黎兵作为抽签嘉宾出席。

其中第二轮一共8场比赛,分为16个签位,中超的8支球队落位主队签位,分列1-8号,而来自中甲的8支球队落位客队签位,分列9-16号。与此同时,对阵关系是按1对9、2对10、3对11、4对12、5对13、6对14、7对15、8对16的方式依次确定。

已经通过第一轮的中超8支球队分别是广州恒大、江苏苏宁、山东鲁能、北京国安、上海上港、武汉卓尔、天津泰达、广州富力。其中8支中甲的球队包括了长春亚泰、成都兴城、梅州客家、浙江绿城、昆山FC、泰州远大、2个保级组头名。

最终经过抽签,广州恒大和上海上港领衔上半区,山东鲁能和北京国安领衔下半区。其中广州恒大和江苏苏宁无疑抽到上上签,因为对手实力一般般,还有山东鲁能和北京国安,其中山东鲁能和北京国安这对冤家有希望在半决赛相遇。

具体对决如下:

上半区:

广州恒大VS昆山FC

江苏苏宁VS梅州客家

天津泰达VS梅州赛区第一

上海上港VS长春亚泰

下半区:

北京国安VS成都兴城

武汉卓尔VS泰州远大

广州富力VS常州赛区第一

山东鲁能VS浙江绿城

根据赛场,足协杯第二轮的比赛日期为11月26日,地点为苏州赛区,延续单场定胜负。返回搜狐,查看更多

责任编辑:

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

网易考拉海购大促:https://www.ikjzd.com/w/1052

李群:https://www.ikjzd.com/w/1767

跨境通电子商务网站:https://www.ikjzd.com/w/1329


原标题:足协杯第2轮抽签出炉:恒大苏宁上上签,鲁能国安有望半决赛相遇北京时间10月30日下午2点,足协杯第二阶段抽签仪式在苏州进行,其中李铁和黎兵作为抽签嘉宾出席。其中第二轮一共8场比赛,分为16个签位,中超的8支球队落位主队签位,分列1-8号,而来自中甲的8支球队落位客队签位,分列9-16号。与此同时,对阵关系是按1对9、2对10、3对11、4对12、5对13、6对14、7对15、8对16的方式
google趋势:https://www.ikjzd.com/w/397
淘粉吧官网:https://www.ikjzd.com/w/1725.html
深圳仙湖弘法寺怎么样?好玩吗?:http://tour.shaoqun.com/a/538.html
迪拜世界岛被曝"正在下沉" - :http://tour.shaoqun.com/a/51747.html
上海碧海金沙开放时间?碧海金沙几点开门?:http://tour.shaoqun.com/a/47388.html