“12306”的架构到底有多牛逼?

“12306”的架构到底有多牛逼?

作者: 绘你一世倾城

来源:https://juejin.im/post/5d84e21f6fb9a06ac8248149

每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票!

12306 抢票,极限并发带来的思考

虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。

尤其是春节期间,大家不仅使用 12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。

“12306 服务”承受着这个世界上任何秒杀系统都无法超越的 QPS,上百万的并发再正常不过了!

笔者专门研究了一下“12306”的服务端架构,学习到了其系统设计上很多亮点,在这里和大家分享一下并模拟一个例子:如何在 100 万人同时抢 1 万张火车票时,系统提供正常、稳定的服务。

Github代码地址:
https://github.com/GuoZhaoran/spikeSystem

大型高并发系统架构

高并发的系统架构都会采用分布式集群部署,服务上层有着层层负载均衡,并提供各种容灾手段(双火机房、节点容错、服务器灾备等保证系统的高可用,流量也会根据不同的负载能力和配置策略均衡到不同的服务器上。

下边是一个简单的示意图:

“12306”的架构到底有多牛逼?

负载均衡简介

上图中描述了用户请求到服务器经历了三层的负载均衡,下边分别简单介绍一下这三种负载均衡。

①OSPF(开放式最短链路优先是一个内部网关协议(Interior Gateway Protocol,简称 IGP

OSPF 通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,OSPF 会自动计算路由接口上的 Cost 值,但也可以通过手工指定该接口的 Cost 值,手工指定的优先于自动计算的值。

OSPF 计算的 Cost,同样是和接口带宽成反比,带宽越高,Cost 值越小。到达目标相同 Cost 值的路径,可以执行负载均衡,最多 6 条链路同时执行负载均衡。

②LVS (Linux Virtual Server

它是一种集群(Cluster技术,采用 IP 负载均衡技术和基于内容请求分发技术。

调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。

③Nginx

想必大家都很熟悉了,是一款非常高性能的 HTTP 代理/反向代理服务器,服务开发中也经常使用它来做负载均衡。

Nginx 实现负载均衡的方式主要有三种:

  • 轮询

  • 加权轮询

  • IP Hash 轮询

下面我们就针对 Nginx 的加权轮询做专门的配置和测试。

Nginx 加权轮询的演示

Nginx 实现负载均衡通过 Upstream 模块实现,其中加权轮询的配置是可以给相关的服务加上一个权重值,配置的时候可能根据服务器的性能、负载能力设置相应的负载。

下面是一个加权轮询负载的配置,我将在本地的监听 3001-3004 端口,分别配置 1,2,3,4 的权重:

#配置负载均衡
    upstream load_rule {
       server 127.0.0.1:3001 weight=1;
       server 127.0.0.1:3002 weight=2;
       server 127.0.0.1:3003 weight=3;
       server 127.0.0.1:3004 weight=4;
    }
    ...
    server {
    listen       80;
    server_name  load_balance.com www.load_balance.com;
    location / {
       proxy_pass http://load_rule;
    }
}

我在本地 /etc/hosts 目录下配置了 www.load_balance.com 的虚拟域名地址。

接下来使用 Go 语言开启四个 HTTP 端口监听服务,下面是监听在 3001 端口的 Go 程序,其他几个只需要修改端口即可:

package main

import (
    "net/http"
    "os"
    "strings"
)

func main() {
    http.HandleFunc("/buy/ticket", handleReq)
    http.ListenAndServe(":3001"nil)
}

//处理请求函数,根据请求将响应结果信息写入日志
func handleReq(w http.ResponseWriter, r *http.Request) {
    failedMsg :=  "handle in port:"
    writeLog(failedMsg, "./stat.log")
}

//写入日志
func writeLog(msg string, logPath string) {
    fd, _ := os.OpenFile(logPath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644)
    defer fd.Close()
    content := strings.Join([]string{msg, "rn"}, "3001")
    buf := []byte(content)
    fd.Write(buf)
}

我将请求的端口日志信息写到了 ./stat.log 文件当中,然后使用 AB 压测工具做压测:

ab -n 1000 -c 100 http://www.load_balance.com/buy/ticket

统计日志中的结果,3001-3004 端口分别得到了 100、200、300、400 的请求量。
这和我在 Nginx 中配置的权重占比很好的吻合在了一起,并且负载后的流量非常的均匀、随机。

具体的实现大家可以参考 Nginx 的 Upsteam 模块实现源码,这里推荐一篇文章《Nginx 中 Upstream 机制的负载均衡》:

https://www.kancloud.cn/digest/understandingnginx/202607

秒杀抢购系统选型

回到我们最初提到的问题中来:火车票秒杀系统如何在高并发情况下提供正常、稳定的服务呢?
从上面的介绍我们知道用户秒杀流量通过层层的负载均衡,均匀到了不同的服务器上,即使如此,集群中的单机所承受的 QPS 也是非常高的。如何将单机性能优化到极致呢?
要解决这个问题,我们就要想明白一件事:通常订票系统要处理生成订单、减扣库存、用户支付这三个基本的阶段。

我们系统要做的事情是要保证火车票订单不超卖、不少卖,每张售卖的车票都必须支付才有效,还要保证系统承受极高的并发。

这三个阶段的先后顺序该怎么分配才更加合理呢?我们来分析一下:

下单减库存

“12306”的架构到底有多牛逼?
当用户并发请求到达服务端时,首先创建订单,然后扣除库存,等待用户支付。
这种顺序是我们一般人首先会想到的解决方案,这种情况下也能保证订单不会超卖,因为创建订单之后就会减库存,这是一个原子操作。
但是这样也会产生一些问题:
  • 在极限并发情况下,任何一个内存操作的细节都至关影响性能,尤其像创建订单这种逻辑,一般都需要存储到磁盘数据库的,对数据库的压力是可想而知的。

  • 如果用户存在恶意下单的情况,只下单不支付这样库存就会变少,会少卖很多订单,虽然服务端可以限制 IP 和用户的购买订单数量,这也不算是一个好方法。

支付减库存

“12306”的架构到底有多牛逼?

如果等待用户支付了订单在减库存,第一感觉就是不会少卖。但是这是并发架构的大忌,因为在极限并发情况下,用户可能会创建很多订单。

当库存减为零的时候很多用户发现抢到的订单支付不了了,这也就是所谓的“超卖”。也不能避免并发操作数据库磁盘 IO。

预扣库存

“12306”的架构到底有多牛逼?

从上边两种方案的考虑,我们可以得出结论:只要创建订单,就要频繁操作数据库 IO。
那么有没有一种不需要直接操作数据库 IO 的方案呢,这就是预扣库存。先扣除了库存,保证不超卖,然后异步生成用户订单,这样响应给用户的速度就会快很多;那么怎么保证不少卖呢?用户拿到了订单,不支付怎么办?
我们都知道现在订单都有有效期,比如说用户五分钟内不支付,订单就失效了,订单一旦失效,就会加入新的库存,这也是现在很多网上零售企业保证商品不少卖采用的方案。
订单的生成是异步的,一般都会放到 MQ、Kafka 这样的即时消费队列中处理,订单量比较少的情况下,生成订单非常快,用户几乎不用排队。

扣库存的艺术

从上面的分析可知,显然预扣库存的方案最合理。我们进一步分析扣库存的细节,这里还有很大的优化空间,库存存在哪里?怎样保证高并发下,正确的扣库存,还能快速的响应用户请求?

在单机低并发情况下,我们实现扣库存通常是这样的:

“12306”的架构到底有多牛逼?

为了保证扣库存和生成订单的原子性,需要采用事务处理,然后取库存判断、减库存,最后提交事务,整个流程有很多 IO,对数据库的操作又是阻塞的。

这种方式根本不适合高并发的秒杀系统。接下来我们对单机扣库存的方案做优化:本地扣库存。

我们把一定的库存量分配到本地机器,直接在内存中减库存,然后按照之前的逻辑异步创建订单。

改进过之后的单机系统是这样的:

“12306”的架构到底有多牛逼?

这样就避免了对数据库频繁的 IO 操作,只在内存中做运算,极大的提高了单机抗并发的能力。
但是百万的用户请求量单机是无论如何也抗不住的,虽然 Nginx 处理网络请求使用 Epoll 模型,c10k 的问题在业界早已得到了解决。
但是 Linux 系统下,一切资源皆文件,网络请求也是这样,大量的文件描述符会使操作系统瞬间失去响应。
上面我们提到了 Nginx 的加权均衡策略,我们不妨假设将 100W 的用户请求量平均均衡到 100 台服务器上,这样单机所承受的并发量就小了很多。

然后我们每台机器本地库存 100 张火车票,100 台服务器上的总库存还是 1 万,这样保证了库存订单不超卖,下面是我们描述的集群架构:

“12306”的架构到底有多牛逼?
问题接踵而至,在高并发情况下,现在我们还无法保证系统的高可用,假如这 100 台服务器上有两三台机器因为扛不住并发的流量或者其他的原因宕机了。那么这些服务器上的订单就卖不出去了,这就造成了订单的少卖。
要解决这个问题,我们需要对总订单量做统一的管理,这就是接下来的容错方案。服务器不仅要在本地减库存,另外要远程统一减库存。
有了远程统一减库存的操作,我们就可以根据机器负载情况,为每台机器分配一些多余的“Buffer 库存”用来防止机器中有机器宕机的情况。

我们结合下面架构图具体分析一下:

“12306”的架构到底有多牛逼?

我们采用 Redis 存储统一库存,因为 Redis 的性能非常高,号称单机 QPS 能抗 10W 的并发。
在本地减库存以后,如果本地有订单,我们再去请求 Redis 远程减库存,本地减库存和远程减库存都成功了,才返回给用户抢票成功的提示,这样也能有效的保证订单不会超卖。
当机器中有机器宕机时,因为每个机器上有预留的 Buffer 余票,所以宕机机器上的余票依然能够在其他机器上得到弥补,保证了不少卖。
Buffer 余票设置多少合适呢,理论上 Buffer 设置的越多,系统容忍宕机的机器数量就越多,但是 Buffer 设置的太大也会对 Redis 造成一定的影响。
虽然 Redis 内存数据库抗并发能力非常高,请求依然会走一次网络 IO,其实抢票过程中对 Redis 的请求次数是本地库存和 Buffer 库存的总量。

因为当本地库存不足时,系统直接返回用户“已售罄”的信息提示,就不会再走统一扣库存的逻辑。

这在一定程度上也避免了巨大的网络请求量把 Redis 压跨,所以 Buffer 值设置多少,需要架构师对系统的负载能力做认真的考量。

代码演示

Go 语言原生为并发设计,我采用 Go 语言给大家演示一下单机抢票的具体流程。

初始化工作

Go 包中的 Init 函数先于 Main 函数执行,在这个阶段主要做一些准备性工作。
我们系统需要做的准备工作有:初始化本地库存、初始化远程 Redis 存储统一库存的 Hash 键值、初始化 Redis 连接池。

另外还需要初始化一个大小为 1 的 Int 类型 Chan,目的是实现分布式锁的功能。

也可以直接使用读写锁或者使用 Redis 等其他的方式避免资源竞争,但使用 Channel 更加高效,这就是 Go 语言的哲学:不要通过共享内存来通信,而要通过通信来共享内存。

Redis 库使用的是 Redigo,下面是代码实现:

...
//localSpike包结构体定义
package localSpike

type LocalSpike struct {
    LocalInStock     int64
    LocalSalesVolume int64
}
...
//remoteSpike对hash结构的定义和redis连接池
package remoteSpike
//远程订单存储健值
type RemoteSpikeKeys struct {
    SpikeOrderHashKey string    //redis中秒杀订单hash结构key
    TotalInventoryKey string    //hash结构中总订单库存key
    QuantityOfOrderKey string   //hash结构中已有订单数量key
}

//初始化redis连接池
func NewPool() *redis.Pool {
    return &redis.Pool{
        MaxIdle:   10000,
        MaxActive: 12000// max number of connections
        Dial: func() (redis.Conn, error) {
            c, err := redis.Dial("tcp"":6379")
            if err != nil {
                panic(err.Error())
            }
            return c, err
        },
    }
}
...
func init() {
    localSpike = localSpike2.LocalSpike{
        LocalInStock:     150,
        LocalSalesVolume: 0,
    }
    remoteSpike = remoteSpike2.RemoteSpikeKeys{
        SpikeOrderHashKey:  "ticket_hash_key",
        TotalInventoryKey:  "ticket_total_nums",
        QuantityOfOrderKey: "ticket_sold_nums",
    }
    redisPool = remoteSpike2.NewPool()
    done = make(chan int1)
    done <- 1
}

本地扣库存和统一扣库存

本地扣库存逻辑非常简单,用户请求过来,添加销量,然后对比销量是否大于本地库存,返回 Bool 值:

package localSpike
//本地扣库存,返回bool值
func (spike *LocalSpike) LocalDeductionStock() bool{
    spike.LocalSalesVolume = spike.LocalSalesVolume + 1
    return spike.LocalSalesVolume < spike.LocalInStock
}

注意这里对共享数据 LocalSalesVolume 的操作是要使用锁来实现的,但是因为本地扣库存和统一扣库存是一个原子性操作,所以在最上层使用 Channel 来实现,这块后边会讲。

统一扣库存操作 Redis,因为 Redis 是单线程的,而我们要实现从中取数据,写数据并计算一些列步骤,我们要配合 Lua 脚本打包命令,保证操作的原子性:

package remoteSpike
......
const LuaScript = `
        local ticket_key = KEYS[1]
        local ticket_total_key = ARGV[1]
        local ticket_sold_key = ARGV[2]
        local ticket_total_nums = tonumber(redis.call('HGET', ticket_key, ticket_total_key))
        local ticket_sold_nums = tonumber(redis.call('HGET', ticket_key, ticket_sold_key))
        -- 查看是否还有余票,增加订单数量,返回结果值
       if(ticket_total_nums >= ticket_sold_nums) then
            return redis.call('HINCRBY', ticket_key, ticket_sold_key, 1)
        end
        return 0
`
//远端统一扣库存
func (RemoteSpikeKeys *RemoteSpikeKeys) RemoteDeductionStock(conn redis.Conn) bool {
    lua := redis.NewScript(1, LuaScript)
    result, err := redis.Int(lua.Do(conn, RemoteSpikeKeys.SpikeOrderHashKey, RemoteSpikeKeys.TotalInventoryKey, RemoteSpikeKeys.QuantityOfOrderKey))
    if err != nil {
        return false
    }
    return result != 0
}

我们使用 Hash 结构存储总库存和总销量的信息,用户请求过来时,判断总销量是否大于库存,然后返回相关的 Bool 值。

在启动服务之前,我们需要初始化 Redis 的初始库存信息:
hmset ticket_hash_key "ticket_total_nums" 10000 "ticket_sold_nums" 0

响应用户信息

我们开启一个 HTTP 服务,监听在一个端口上:

package main
...
func main() {
    http.HandleFunc("/buy/ticket", handleReq)
    http.ListenAndServe(":3005"nil)
}

上面我们做完了所有的初始化工作,接下来 handleReq 的逻辑非常清晰,判断是否抢票成功,返回给用户信息就可以了。

package main
//处理请求函数,根据请求将响应结果信息写入日志
func handleReq(w http.ResponseWriter, r *http.Request) {
    redisConn := redisPool.Get()
    LogMsg := ""
    <-done
    //全局读写锁
    if localSpike.LocalDeductionStock() && remoteSpike.RemoteDeductionStock(redisConn) {
        util.RespJson(w, 1,  "抢票成功"nil)
        LogMsg = LogMsg + "result:1,localSales:" + strconv.FormatInt(localSpike.LocalSalesVolume, 10)
    } else {
        util.RespJson(w, -1"已售罄"nil)
        LogMsg = LogMsg + "result:0,localSales:" + strconv.FormatInt(localSpike.LocalSalesVolume, 10)
    }
    done <- 1

    //将抢票状态写入到log中
    writeLog(LogMsg, "./stat.log")
}

func writeLog(msg string, logPath string) {
    fd, _ := os.OpenFile(logPath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644)
    defer fd.Close()
    content := strings.Join([]string{msg, "rn"}, "")
    buf := []byte(content)
    fd.Write(buf)
}

前边提到我们扣库存时要考虑竞态条件,我们这里是使用 Channel 避免并发的读写,保证了请求的高效顺序执行。我们将接口的返回信息写入到了 ./stat.log 文件方便做压测统计。

单机服务压测

开启服务,我们使用 AB 压测工具进行测试:

ab -n 10000 -c 100 http://127.0.0.1:3005/buy/ticket

下面是我本地低配 Mac 的压测信息:

This is ApacheBench, Version 2.3 <$revision: 1826891="">
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:
Server Hostname:        127.0.0.1
Server Port:            3005

Document Path:          /buy/ticket
Document Length:        29 bytes

Concurrency Level:      100
Time taken for tests:   2.339 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      1370000 bytes
HTML transferred:       290000 bytes
Requests per second:    4275.96 [#/sec] (mean)
Time per request:       23.387 [ms] (mean)
Time per request:       0.234 [ms] (mean, across all concurrent requests)
Transfer rate:          572.08 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    8  14.7      6     223
Processing:     2   15  17.6     11     232
Waiting:        1   11  13.5      8     225
Total:          7   23  22.8     18     239

Percentage of the requests served within a certain time (ms)
  50%     18
  66%     24
  75%     26
  80%     28
  90%     33
  95%     39
  98%     45
  99%     54
 100%    239 (longest request)

根据指标显示,我单机每秒就能处理 4000+ 的请求,正常服务器都是多核配置,处理 1W+ 的请求根本没有问题。

而且查看日志发现整个服务过程中,请求都很正常,流量均匀,Redis 也很正常:

//stat.log
...
result:1,localSales:145
result:1,localSales:146
result:1,localSales:147
result:1,localSales:148
result:1,localSales:149
result:1,localSales:150
result:0,localSales:151
result:0,localSales:152
result:0,localSales:153
result:0,localSales:154
result:0,localSales:156
...

总结回顾

总体来说,秒杀系统是非常复杂的。我们这里只是简单介绍模拟了一下单机如何优化到高性能,集群如何避免单点故障,保证订单不超卖、不少卖的一些策略

 

完整的订单系统还有订单进度的查看,每台服务器上都有一个任务,定时的从总库存同步余票和库存信息展示给用户,还有用户在订单有效期内不支付,释放订单,补充到库存等等。

我们实现了高并发抢票的核心逻辑,可以说系统设计的非常的巧妙,巧妙的避开了对 DB 数据库 IO 的操作。
对 Redis 网络 IO 的高并发请求,几乎所有的计算都是在内存中完成的,而且有效的保证了不超卖、不少卖,还能够容忍部分机器的宕机。
我觉得其中有两点特别值得学习总结:
①负载均衡,分而治之

通过负载均衡,将不同的流量划分到不同的机器上,每台机器处理好自己的请求,将自己的性能发挥到极致。

这样系统的整体也就能承受极高的并发了,就像工作的一个团队,每个人都将自己的价值发挥到了极致,团队成长自然是很大的。

②合理的使用并发和异步
自 Epoll 网络架构模型解决了 c10k 问题以来,异步越来越被服务端开发人员所接受,能够用异步来做的工作,就用异步来做,在功能拆解上能达到意想不到的效果。

这点在 Nginx、Node.JS、Redis 上都能体现,他们处理网络请求使用的 Epoll 模型,用实践告诉了我们单线程依然可以发挥强大的威力。
服务器已经进入了多核时代,Go 语言这种天生为并发而生的语言,完美的发挥了服务器多核优势,很多可以并发处理的任务都可以使用并发来解决,比如 Go 处理 HTTP 请求时每个请求都会在一个 Goroutine 中执行。

总之,怎样合理的压榨 CPU,让其发挥出应有的价值,是我们一直需要探索学习的方向。

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。

差友们年底追剧了么?可能不追剧的人大概也听说过最近大火的古装穿越剧《 庆余年 》吧,老戏骨不容多说,年轻演员也算演技在线。

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。

这个被腾讯、爱奇艺独占的网剧,目前正更新到剧情高潮迭起的部分,却因剧情之外的事情上了热搜。

在讨论这个热搜之前,差评君想问问大家一般因为什么会冲视频会员?

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。去广告、更高清的视频、有大量正版版权的影片、比普通用户更快看到最新剧情。

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。

然而现在的视频网站 VIP 却越来越不实用了。

说好的去广告,没多久就冒出了可×掉的 “ VIP 专属广告 ”、电视剧里面还有各种各样的广告小剧场、甚至有的还会出现贴片广告,生怕观众姥爷们不知道他们靠啥赚钱。

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。对于变着法出现的这些广告,大家不知道抗议了多少次,可惜全都吃了瘪。因为人家的规定里面好好的说着:您理解并同意,VIP 会员不能消除所有广告~

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。

说好的能免费看海量电影,结果不少大牌电影没资源不说,而那些稍微新鲜点的电影要额外付费才能看。

 

这些降低用户体验的东西,我们都忍了下来,广告多动动手能×掉,电影可以去电影院看,可是最近腾讯视频、爱奇艺的操作真是把大家惹毛了。

正常来说,VIP 用户能比普通用户多看 6 集,这也是大家能够接受的。可是,因为《 庆余年 》大火,腾讯视频居然出了一个新规则:在 VIP 的基础上,额外多付 50 块钱,能再多看 6 集。

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。这种操作在视频网站那边美名其曰 :“ 50 块钱购买加速包,限时优惠,预购从速! ”

人们一下子炸锅了。当初为了享受优先追剧充了 VIP,结果播到一半儿了居然要继续冲更多的钱才能走到剧情前面。

也就是说,原来我用 30 块钱就可以到达食用 《 庆余年 》食物链顶端,结果吃到一半你问我要不要继续充钱?不再充 50 就要被别人甩到后面去了呦~

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。这本质上就跟半路加价宰客的黑心导游有啥区别呢?

继续氪金可以变得更强?!

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。

而且这并不是第一次腾讯视频这么干。

前几个月 《 陈情令 》大火的时候,腾讯视频就出了一个 30 块钱提前享受大结局的超前点播机会。

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。

那一次,预估带给腾讯1.56 亿的入账,可给了腾讯甜头,只能说腾讯家不亏是游戏氪金帝王,赚钱的套路就是牛 X。

之后网剧《 明月照我心 》、《 没有秘密的你 》、《 从前有座灵剑山 》赶紧复制了同样的 “ 氪金提前享结局 ” 的套路,让腾讯赚的盆满钵满。

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。

而 《 庆余年 》的大火,再次让腾讯视频看到了赚钱的机会。

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。如果按照网友说的那样,在行业内,制作方一旦卖出作品后,就不再管平台是如何继续操作,那么这次腾讯视频半路加价就完全是自己的决定。

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。

以前是在结尾加钱,现在在中间加钱,下一次呢?

其实网络上盗版资源大家动手都能找到下载下来,而且看盗版的人目前也遇不到什么惩罚,只不过因为大家正版意识提高,几千万的观众愿意为了享受正版、享受更好的观影体验去充会员,去支持国内版权规则,促进行业发展。

但是这种临时变卦、趁火打劫的行为却变相打击了那些愿意支持正版的人。

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。君不见,那些盗版分子在网上何其猖狂,叫嚣着有全部最新剧集,而那些苦苦等待正版却觉得 50 块不值的人,只能眼睁睁的被那些看免费盗版的人透一脸。

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。

之前《 陈情令 》匆忙上马 30 元看结局,是因为网上全部剧集被泄露,腾讯不得已才有了超前点播那个操作。说实话,这就是让那些看正版的人,多承担了腾讯视频资源泄露的损失。

差评君是非常支持市场规律的人,如果因为好的剧集,版权方能有更好的收入,这当然是一件好事,这意味着版权方将来会收更多更好的作品。

可是现在中间临时加钱的行为依旧被差评君所不耻,虽然从规则上你挑不出它的任何毛病。

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。因为按照这样的路数,今后是越火的剧,中途或者结尾观众们可以被宰的价钱就会越贵。

这次推出 50 元超前点播 6 集,那下一次是不是 1000 块提前看全集?有的网友嘲讽:VIP 不够,要来 SVIP,是不是今后还有 SSVIP?星耀 VIP?王者 VIP?

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。

在差评君看来,吸引更多的 VIP 用户已经是一种正向激励了,显然腾讯视频并不满足。

 

不过,不知道他们知不知道 “ 过犹不及 ” 的道理,任何事情做的过分了,是会起反效果。

 

优秀的价格定位能够让更多的人去充钱支持正版,但毫无节制的索取,只会让充钱的 VIP 后悔,甚至更多的人会在一开始就拒绝从正版渠道观看。

 

腾讯视频:当人人都是VIP,就该你们继续掏钱当VIP Plus了。“ 不知道未来要被宰多少钱,何不一开始就免费看盗版呢?

如果未来越出色的剧集,VIP 用户反而越少,不知道那时的腾讯视频会不会后悔这一次临时赚快钱?

参考资料:
《陈情令》大结局, 30元打包最后6集,这种圈钱方式引争议 
界面,《腾讯视频《庆余年》50元得罪全网,畸形收费从何而来?》
娱乐独角兽,《陈情令》大结局点播获利1.56亿、专辑销售2100万,C端变现到底有多赚钱?

签下担保的那一刻,你的未来就已经坠入了深渊

中国是一个人情社会,互相帮忙是很常见的事情。

但你要记住,不是什么忙都可以帮的,尤其是担保。
签下担保的那一刻,你未来的人生,就已经坠入了深渊。 

1

小赵是一个普通的国企职工,掏空两个家庭的六个钱包凑齐了首付后,和贤惠的妻子终于有了一个属于自己的小家。
相比中规中矩的小赵,他的发小就厉害多了,拥有一家规模不小的公司,开百万豪车,住千万豪宅,每年的资金流水上亿!
发达之后,发小不忘初心,经常一起聚餐谈心,还时常帮助自己,可以说是小赵一等一的好朋友。
一年前,发小找到小赵,拿着一份350万的贷款担保合同。
临时周转一下而已,发小家里几套大别墅,公司做这么大,这点小钱算个什么,不可能还不上的
又不要自己出钱,只是应付银行的流程而已,你好意思不签嘛?
小赵本以为自己只是顺手帮个小忙,直到上个月,法院的传票送到了家里。
原来价值几千万的豪车豪宅早就抵押给了银行,除此之外,发小还欠下了数亿的巨债,自己签的那种级别的贷款协议,发小还有几十个。
发小破产了,严重资不抵债,按法律规定,这350万,要小赵来偿还。
如果拿不出现金,小赵的房子,就面临被拍卖的局面。
本来一个美满的小家,就这么被一声晴空霹雳给毁掉了。
仅仅是去年随手帮了一个忙。
你和妻离子散之间的距离,其实只差一份担保书上的签字。 

2

什么叫担保?
众所周知,你去银行贷款,空口白牙,只是吹自己赚钱能力多么多么牛,是一毛钱贷不出来的。
想借钱,要么物保,要么人保。
什么叫物保,你用房屋、长期债券等资产做抵押物,就叫物保。
你将来还不上钱不要紧,银行没收了这些东西拿去拍卖就可以了,物保可以确保银行的本息安全。
什么叫人保,就是你没有东西可以抵押的前提下,找一个人帮你担保。
如果你将来还不上钱,银行就找这个人替你还钱,没收他名下的财产来确保银行的本息安全。
所以,个人担保协议,你签个字只需要几秒钟,但里面的借款金额,可能需要你一辈子去偿还。
更悲催的是,你没拿一分钱,却负担了100%偿还的义务。
银行为了降低自己的不良贷款率,风控严格到普通人完全无法想象的地步。
风控部的人,看谁都像骗子,他们拿到每一份客户资料,都先默认这个人是来骗钱的,然后全方位的考虑,看能不能推翻这个观点。
如果能推翻,那才会考虑做这笔业务。
假设存贷利差是2%,那表示银行贷款只要出一次事,50年的利润都没了,整体坏账率必须低于2%才能算有利润。
所以,银行风控是一票否决制,只要有一丝瑕疵,直接枪毙没商量。 

3

银行放贷这么谨慎,是很有必要的。
截止2019年4月,我国失信黑名单上,已经有1300万例上榜,虽然其中不乏多次上榜的超级老赖,但也可以看出,老赖的人数是非常庞大的。 
签下担保的那一刻,你的未来就已经坠入了深渊
把钱借出去的风险,比你想象的要大很多,现在熟人之间借钱不还的案例都比比皆是,何况是借给陌生人。
所以,银行不见抵押担保不放款,这是必须走的流程。
对于普通人来说,如果你要帮助你的朋友,那么帮他担保,是性价比最低的一个选项。
因为贷款放出来,担保人和贷款人负担的风险是一样大的,在银行眼里,这笔钱是贷给你们两个人的,而不是一个人。
但是如果将来用贷款赚到了钱,那全是你朋友的,是他英明神武、机智果断,命中就该发财。
但如果做生意失败破产了,如果他还不起钱,不管他跑不跑路,这些钱,都得你来还。
收益归他,风险归你,多划算的买卖。
当然,对你来说,这就是超级不划算了。
如果你朋友想找你在100万贷款担保协议书上签个字,那你还不如直接借给他100万,好歹你还能收点利息。
要不然入股也行,风险共担、利益共享。
反正亏了钱,这一百万怎么都是没有的,结局是一样的。
如果你不清楚他公司运转的细节,不敢入股,也拿不出100万现金直接给他。
那你还签啥担保协议,脑子进水了么?你没这个资格签。 

4

如果你实在拉不下脸面拒绝朋友的请求,我这里还有一招可以教你。
这世界上,有一种公司,叫担保公司。
他们收取高额的费用,专业替人签担保协议,并承受担保的风险。
你问问担保费要多少钱,就说这个钱你来出。
一般人,但凡还要点面子的,都不会要你出这个钱的。
同时,担保公司也有严格的风控审查流程,会对申请人的资质、还款能力做详细的评估。
如果这个人连担保公司的风控都无法通过,那你帮他签了担保,就更是死无葬身之地了。
绝大部分人,欠的债务多到一定程度时,就会变成赌徒,他们幻想再借一点钱,搏一把,很快就能翻身。
而这种类型的债务,炸雷率不是一般的高,成为坏账几乎是板上钉钉的事情。
他们知道自己是在坑别人,但是他们已经不在乎了。
绝大部分普通人,这辈子和银行做过的最大交易就是房贷,对金融剩下的认知,就只剩下存款和理财了。
担保是啥玩意?又没让我出钱,也没让我抵押房子,只是签个字而已。
不知道有多少人,曾经在担保协议上吃了大亏,还只能打碎牙齿和血吞。
尤其是小城市的人,更加缺乏金融基础常识,成为了担保出事的重灾区。
对于绝大多数人来说,担保协议绝对不能签,不要拉不下脸,面对如此巨债的威胁,没什么拉不下脸的,否则你未来的人生,都可能被直接毁掉。
他好意思忽悠你在担保协议上签字,你就好意思直接拒绝他。
如果你有亲戚朋友不熟悉担保的相关知识,请将此文转发给他。
越重视亲情和友情的人,越容易被担保协议的隐藏陷阱给毁掉,这样的人,反而最需要你的科普帮助。
他们的人生,不应该被担保协议给拉入深渊。
-end-

雷军:何以英雄背骂名!

 
本文转载自公众号:纯洁的微笑(ID:keeppuresmile)
 
作者:微笑团队

背负骂名,是高手的宿命。

很多人瞧不上小米,骂小米是屌丝手机、垃圾货。

很多人看不起金山WPS,骂金山只是个抄袭微软的小公司。

上个月金山办公上市钟声敲响,伴随而来的,大多数却都是:“垃圾公司,抄袭微软office。” 

雷军:何以英雄背骂名! 
雷军:何以英雄背骂名!

但IT业的人却说:

“因为WPS,才让微软在中国乃至世界办公软件市场,不敢掉以轻心,因为WPS,让全世界知道了在中国,还有一家公司,能和微软抗衡。

金山与微软恩怨30年,是一段尘封的历史。

 

1

原罪

在中国互联网刚刚顶风站立的时候,雷军被称为校长,他领导的金山,被称为”IT界的黄埔军校”。

雷军做到金山CEO时,马云刚走下三尺讲台,丁磊还在电信局上班,李彦宏还在硅谷种菜。

很长一段时间里,这里聚集了中国软件业最顶尖的一批人。

雷军:何以英雄背骂名!

把时光拉回31年前,求伯君熬了14个月,肝病发作三次,敲下128万行代码,写出了第一个中文处理系统–WPS1.0。
这是中国最早的文字处理系统之一。
那是1988年,绝大部分中国人都没见过电脑。而WPS一年营收6600多万。 
求伯君一夜之间成为程序员的偶像,人人想做求伯君第二,包括雷军。
丢下研究所铁饭碗,雷军成为金山第6号员工。
那个时候,WPS就是电脑的代名词; 求伯君,是成功的代名词。
WPS一夜之间占据中国95%的办公市场,一时风头无两。
雷军:何以英雄背骂名!
微软看了中国市场这块肥肉。为了抢占中国市场,扼杀WPS,微软先谈收购金山,后以75万美金高薪挖求伯君。
遭拒绝后,干脆找到软件负责人雷军,佯装签订一个看似双方互利的“格式共享”协议:WPS文档兼容Word。
随后微软开始放狠招:大肆放纵中国区盗版。这样一来,谁也挣不到钱。
中国区只是微软全球大蛋糕的一小部分,少了中国这点油水,完全不是问题。
可对于WPS这些国内软件,是一场血腥屠杀。
在那个年代的中国,微软是用来被仰望的。人人都在学微软,人人都想进微软,没人会想到挑战。
雷军不服,求伯君也不服。
两人都明白,当一个国家没有自己的办公软件,这对一个国家的信息安全来说,意味着什么。
国内软件界元老倪光南院士就曾指出:“中国人被微软劫持。”
如果没有自主可控的软件,任何信息安全,都只是一句空话。
雷军带着20名顶尖程序高手,在北京的一个四合院里,埋头三年,几乎烧光了2000万金山的家底,开发盘古办公软件。
从没遇上对手的微软,第一次在中国碰上了硬茬。
然而“盘古”没能开天辟地,悲壮地倒下了。 微软所到之处,寸草不生。
那是雷军梦碎的日子,也是金山和整个中国办公软件业,失去梦想的日子。雷军开始疯狂的去酒吧、去蹦迪、去跑步,甚至一度想开个酒吧聊度余生。
深深的失败感让雷军离开金山6个月,求伯君也等了他6个月。
雷军:何以英雄背骂名!

2

不死心的倔强
 

中国一向就少有失败的英雄,少有韧性的反抗,少有敢单身鏖战的武人,少有敢抚哭叛徒的吊客;见胜兆则纷纷聚集,见败兆则纷纷逃亡。

——鲁迅

雷军回来了,自降三分之二的工资,拿着求伯君卖房子的钱,

1个疯子带着仅剩的10个疯子,苦熬四年研发WPS97,抗击微软Office200多人的研发团队。

1997年,金山新版WPS97面世,公开挑战全球软件霸主微软。

雷军与求伯君去高校宣讲。

在东南大学时,学生们送了一条千人签名的横幅,上面写着:

“我们支持金山敢和微软拼的作风。”

雷军在母校武汉大学,带着学弟学妹一起喊口号:

“我要用未来十年和微软来一场豪赌。”

WPS一夜之间成为国产软件的志气,雷军与求伯君一同抗起了民族大旗。

这是金山的荣耀,也是雷军的枷锁。

雷军:何以英雄背骂名!
面对WPS的回马枪,微软自降价格一半,并将word绑定在操作系统上。紧接着,单方面撕毁了他们在1996和金山签订的兼容协议。
用户被迫在word和WPS之间二选一。答案毫无疑问,是绑定在系统上的word。
身为第一代电脑使用者的一位政府官员对《中国经济周刊》记者回忆说:
是啊,为何后来就不用了呢,是不是WPS没有了?还是技术落后了?只记得后来大家都开始用微软Office了。

这场没有硝烟的战争,用户毫不知情。

微软移花接木,利用兼容协议转移了WPS中国用户,又撕毁了协议。

WPS欲诉无门,雷军欲哭无泪。

英雄天生悲情,明知有些事可能会无能为力,但还是会抽刀挥剑。

那是中国互联网风起云涌的日子,有人劝雷军放弃WPS,放弃对抗微软,放弃国产软件的志气,去做更赚钱的事。

雷军没放弃,他做了一个让所有人大吃一惊的决定:

推倒积累了14年的WPS的900万行代码,从头再来。深度兼容word。

从界面菜单到操作模式,都与微软深度兼容,让用户察觉不到用的是WPS还是Word。

以微软之道还治微软之身。

换句话说就是,当年微软用技术抢了我们的人,今天我们就用技术再抢回来。

而这,就是金山被指责抄袭的“原罪”。

雷军:何以英雄背骂名!
彼时阿里巴巴、百度、京东、腾讯蠢蠢欲动,而执著于国产软件、信息安全的金山和雷军,与这场互联网创富海啸,擦肩而过。
坚持做WPS,不仅成了金山最大的负担,也成了束缚雷军的锁链。
雷军被WPS硬生生地拖成了互联网界的活化石。
后来的雷军痛苦的反思:
坚持做 WPS 让金山跟互联网擦肩而过,而金山后来所有的艰难痛苦,跟这个决定密不可分。 

我很内疚,那个决定是我当时做出来的。因为输了不服气,要扳回来。
所以把所有优秀的人才都派去做 WPS ,所有‘以战养战’赚来的钱全部用来养 WPS ,这让当时的金山,背了一个巨大包袱在长征。

皮糙肉厚的信仰背后,是无人看到的伤痕累累。

金山办公上市当天,雷军笑着说:“这是一个包括其在内的几代人,坚持了30年的英雄梦想。”
这原本是一个值得高兴的故事。但在一片不明就里的嘲讽骂声中,却有一丝悲情。
苛责它的声音,远远要超过鼓励:
有人嫌它的广告太多,影响用户体验。但实际上,它的免广告版,只需要9块钱。
好不容易上市了,有人立刻就来骂它圈钱。尽管它宣布,募集的资金全部用来进行WPS的安全增强和软件优化。
但实际上,WPS在做一件吃力不讨好的事情——它并不赚钱。
金山不惜从网络游戏、杀毒软件、翻译软件上赚来的钱贴补 WPS ,不论它多么孱弱,却从未被抛弃,因为这是中国软件的一面旗帜。

只要金山还叫金山,我们不会改变原有的责任,这块业务甚至不用赚钱也可以。

明明知道放下一切就可以轻松上路,却坚持背负一身破铜烂铁,装满了无可救药的信仰。

雷军:何以英雄背骂名!
互联网的浪潮中,无数中国企业崛起,但他们中的大多数,都被资本裹挟着,走上了只顾赚钱和盈利的道路。
只有极少数人,看起来无比悲情地在为技术而执着。
WPS,是30年以来,唯一能对微软说不的国产软件。一个小小的办公软件,却也是信息安全的关键一环。
如果说任正非的鸿蒙,是华为应对安卓封锁的底气,那雷军带领的WPS,就是中国软件业的后盾。

 

3

一声叹息

金山在开发“剑侠情缘”网络版期间,雷军在一次拓展训练中说:

“自己不容易,大家不容易,活得太窝囊……”

说着说着潸然泪下,20多个副总裁和部门经理拥上去,把雷军团团围住,抱头痛哭。

2007年金山上市仅两个月,38岁的雷军选择了离开:

我从 22 岁到 38 岁,在金山干了整整 16 个年头,这中间的压力很难表达,像马拉松一样。

原来以为只是累了,但是休假四周后还是身心疲惫,这是真心话。
金山走向了梦想,可雷军没有了梦想。
雷军:何以英雄背骂名!
他提着一麻袋钱,四处找地方扔投资。凡客、优视、多玩网、歪歪、拉卡拉、休闲游戏、乐淘 …… 
全中国的互联网都是雷军的试验田。
穷得只剩下钱,对别人可能是一种快乐,对于雷军,却是落寞。
2011 年,雷军和马化腾私下见了一面。席间,马化腾状似不经意地调侃他:“你现在很牛啊!”
雷军马上摆手反对说:“哎呀,那都是朋友之间帮忙,你就把我当成一个热心的大婶好了。”
2013 年,雷军40岁生日,他和陈年、李学凌几个朋友到昆仑酒店喝酒、唱歌、聊天。
聊到兴处,席地而坐,微醺的雷军笑着说:“我们现在坐地上,是不是天下无敌了呢。
那会儿,雷军每天早上起来,不知道要干嘛。
16年里,他是天天十几个小时工作的「著名劳模」,而今,晃荡在街边,茫然无措,整个世界似乎瞬间将他遗忘在了角落。
“重新开始。”好友黎万强说。
18岁时彻夜失眠的梦想,从武汉大学的操场上回到了雷军心里:
“你要是有梦想不妨一试,那样你也许真能办成一家世界级公司。” 
雷军:何以英雄背骂名!
2010 年 4 月 6 日,北京中关村,早上十点,黎万强的父亲端来一个电饭锅,里面装的是小米粥。
雷军亲手给每人盛满,14 个碗高举,众人一口饮下。
14个平均年龄40岁的老男人,开始了新的征途—打破中国手机行业高暴利,做人人都能买得起的手机–小米。
“创业如跳悬崖,我 40 岁,还可以为我 18 岁的梦想再赌一回。
雷军赌赢了。
那个时候,国内智能机市场被苹果和三星霸占,国产手机质量堪忧。
雷军没有着急,他把全公司的人集中起来,坐下来写代码–操作系统MIU。
又用长达一年的时间,只做一款手机,2011年,小米手机正式推出。
一经出世,就成了业界黑马:
小米手机M1原计划销售30万台。所有人都判断雷军会被库存压死。
当小米电商开卖时,大家惊呆:几万台的手机居然在几分钟就售罄。
各大厂商开始学习小米的做法,华为更是提出了“像素级模仿小米策略”。
小米几乎凭借一己之力,让让国产手机厂商开始了向世界顶尖水平的追逐。
小米也是全球最快达到10亿美元和100亿美元销售规模的公司。
然而,国内厂商是憎恨小米的。
雷军:何以英雄背骂名!
因为按以前的标准,一般的旗舰手机卖4000块左右,小米来了以后,高性价比变成了2000块左右。
甚至卖出了千元一部的红米手机。
原本其他厂商可以赚更高的利润,却在小米杀出来后,只能越赚越低。
铺天盖地的骂声像洪水一样淹了过来:“做工差、系统有问题、便宜没好货….”
小米有一丁点的缺点也会被无限放大,哪怕这个毛病其他手机也有,但因为你是小米,所以不行。
有人甚至说,小米卖这么便宜,肯定质量不好。我不知道哪里质量不好,但肯定质量不好,因为便宜没好货。
甚至有人逼雷军涨价提高利润,小米卖的便宜成了最大的槽点。
是的,便宜就是小米的原罪。
断人财路,有如杀人父母。在业内,雷军和小米就是行业毒瘤一样的存在。
面对采访时,雷军还是表示:“我会持把性价比这件事情,做到极致。”
技术出身的人,天生执着。
别人说做工差,雷军就加强外观、美化;
别人说系统有毛病,雷军就持续更新系统;
有人抱怨手机老抢不到,雷军就亲自督管供应链,提高供货量;
有人因为售后差,直接黑出雷军的邮箱发邮件,本以为只是出一口气,却没想到第二天就收到雷军的亲自回复。
2014年,小米3主芯片被曝“芯片门”。
宣传的主芯片是骁龙8974,而发出的第一批手机上的芯片型号却是骁龙8274。
而根据高通副总裁沈劲后来的调查:
8974是工程师们的一个统称,具体使用时可以是8674,也可以是8274。
然而,高通的出面澄清,也遭到了疯狂的抹黑与谩骂。

雷军:何以英雄背骂名!

因为便宜的原罪,小米从出生那一刻起,自带全部的被黑属性。
雷军和小米,一步一个脚印,遇到问题解决问题,可仍然逃不开被骂的命运。
余承东甚至公开在微博里说:
一个屌丝品牌,不甘心只做屌丝用户,转去做高大上品牌,恐怕是行不能的。不再发烧,更不再有性价比,失去初心,失去自我,屌丝们会用脚投票的。

雷军在采访的时候黯然的说:
我觉得很孤独……
雷军:何以英雄背骂名!
2018年,小米6发售,全网突然出现铺天盖地统一口径“黑小米6”。
贴吧、微博各大网页出现置顶贴,B站直喷抄袭。
雷军:何以英雄背骂名!
雷军:何以英雄背骂名!
雷军在微博上,轻轻叹了一口气。
他知道自己与世间的一切格格不入。
雷军:何以英雄背骂名!
我们以为的强者,是一刀砍下所有不顺眼,擦擦血换件衣服,买根冰糖葫芦淡定的看大戏。
事实上却是孤军作战背负一身骂名,有口难言。
2014年的时候,雷军曾在个人微信号发了一篇文章:
雷军:何以英雄背骂名!
我意识到,仅靠小米一家公司,是无法满足全中国用户对于高性价比手机的全部需求。

我向全行业呼吁,所有的手机厂商都像华为和小米一样行动起来,把性能做上去,把体验做到精细,把价格降下来。
让中国的消费者无论收入高低,都能够轻松用上高性能的好手机。
看到帖子下有很多用户留言,到现在为止还保留着。
这篇文章,如今看上去无比天真。
雷军,曾经那么天真的希望,只要勤勤恳恳搞研发,就能让国产软件,成为民族的脊梁;
雷军,也曾那么天真的以为,只要自己踏踏实实做产品,就能让所有人,都能用上便宜好用的手机。
可现实让人如此绝望。
他宁愿放弃自己纵横互联网的机会,也要把金山WPS拉扯起来;
他宁愿放弃赚取高额的利润的机会,也要做性价比最高的手机。
换来的,却是自己辛辛苦苦带出来的金山,被辱骂的体无完肤;勤恳认真做出来的小米,被黑的伤痕累累。
那一声叹息说出口的时候,雷军的心里,一定觉得凄凉无比。
雷军:何以英雄背骂名!

4

你是经历了多少委屈,才有了一身好脾气

曾经有人问雷军,这么多年打拼,究竟为了什么? 
雷军说:“乔布斯说活着是为了改变世界,我说我活着是为了科技报国,你信吗?
我信了。
明年,是小米创立10周年。

雷军:何以英雄背骂名!

你看,带着bug一路披荆斩棘的雷军,一直微笑如常,眼里写满故事,脸上依然没有风霜。

我们不可能全都做英雄,只是总得有人坐在路边

当每一个怀揣梦想执着前行的人经过时,为他们拍手叫好。

雷军:何以英雄背骂名!
愿你出走半生
归来仍是少年
一生温暖纯良

ref:
《顺势而为-雷军传》
《造梦者-雷军商传》
《中国经济周刊》:金山WPS与微软Office20年之争
《雷军一声唉叹,引发500万人共鸣:国产手机背后 ,究竟藏了多少龌龊事》
 

1-18岁男女孩最新身高标准表,你家孩子达标了吗?

1-18岁男女孩最新身高标准表,你家孩子达标了吗?

现在大家的生活水平提高了,和很多年前相比,孩子们的平均身高提高了不少,孩子能长成一个高个子,也是很多家长非常关注的事情。

其实,要想孩子长高,除了营养要跟上以外,充足的睡眠、体重不要太胖都是很重要的事情。

每个年龄段的孩子到底多高才算达标?今天就为大家介绍2019儿童身高体重标准表,快来对照,看看你家孩子达标了吗?

影响孩子的身高的因素
★ 先天性基因因素
跟父母亲的身高有着直接关系,也不排除隔代遗传。

★ 后天因素
除了营养,充足的睡眠和适当运动也是很重要的,后天因素也是相当重要的。

注重小孩营养固然是好,要是孩子吃得太多长得过胖就不好了,胖小孩在和小伙伴玩耍时和在学校都易被他人取笑,小孩太矮瘦的也更容易被人欺负。

每个年龄段的孩子身高体重是多少才算达标,各位亲爸亲妈认真瞧瞧哟!

身高标准对照表
0-18岁女孩身高表

1-18岁男女孩最新身高标准表,你家孩子达标了吗?

0-18岁男孩身高、体重表

1-18岁男女孩最新身高标准表,你家孩子达标了吗?

生长发育的的阶段划分
❖ 基础阶段——— 学龄前期

学龄前期(4~6岁)是儿童生长发育的重要时期,也是孩子长高的基础阶段。6岁左右补钙,对儿童今后的成长非常重要,此时,人体骨骼处于储备期,骨骼发育日需钙元素量为每日800毫克。

而这个年龄段的孩子,有可能存在偏食、厌食、钙质摄入量严重不足的现象,影响到骨骼中的钙质储备,这将直接导致孩子个头矮小、发育期身高增幅减小。2014年全国营养调查表明,我国居民膳食钙摄入量只达到推荐摄入量的40%左右,因此此阶段的孩子需要补钙。

❖ 突增阶段——— 学龄期

10~16岁是孩子发育期,孩子个头好比雨后春笋,“嗖嗖”地直往上蹿。研究发现,此阶段孩子每多吸收3万毫克的钙质,身高便可多长1厘米,而一般家庭所提供的日常膳食,摄取的钙含量不到孩子所需钙质的50%,远不能满足生长发育所需,因此需要额外补钙。

❖ 冲刺阶段——— 青春期

男性17~25岁,女性16~23岁,是长高的最后冲刺阶段。研究发现,此阶段青少年骺软骨还未真正愈合,每年还存在着2~3厘米的长高潜能。此时,补充足量的钙质,就能充分挖掘他们的长高潜能,让他们“百尺竿头,更进一步”。

❖ 三大黄金期环环相扣

孩子的三大黄金成长期,好比多米诺骨牌,一环扣一环,是一个连续的动态的过程,这一阶段是下一阶段生长的基础。

储备期钙摄入不足的孩子,如果膳食不当、营养不良,就会影响发育期的身高增长;发育期的孩子若不能摄入足量钙,势必会影响长高的最后冲刺。因此,在孩子各阶段,都要保证钙的充分摄入,不能掉以轻心。

帮助改善后天身高的3个要点
1.运动

是指合理的运动,像运动员般高强度的运动量,反而会增加孩子的关节负担,抑制孩子的生长发育。跳 绳对于改善孩子身高效果比较明显,操作又简便,家长可以让孩子每天跳一次,每次十分钟,坚持为之,能够收到良好效果。

此外,篮球、羽毛球、游泳等都是非常 好的运动方式,家长最好能够帮助孩子养成热爱运动的良好习惯。

2.睡眠

最好早睡,生长激素分泌最旺盛的时间是从晚上10点至半夜2点。家长不要让孩子超过10点睡觉,小学生最好在九点半前上床,每天保证八小时的睡眠时间。中学生也要保证7个小时的睡眠时间。

3.营养

必须均衡,孩子如果偏食、挑食,就容易长不高。家长应该给孩子补充足够的蛋白质,如牛奶、肉类等,锌、钙、铁等微量元素也要注意,缺乏同样会引起生长发育迟缓,错过了最佳生长时间,以后就很难追赶。

有助孩子长高5个饮食关键
关键点1:饮食平衡

人体的生长,完全来自于入口的食物质量,想让孩子长得高,各种营养素都要均衡。每天保证吃入食品的样数在25~30种,比一天只吃三五样东西获取的营养要丰富得多。

推荐食品

蔬菜水果沙拉:黄瓜、苹果、香蕉、洋葱、生菜、梨、橘子等切成小块放入碗中,倒入沙拉酱可。

杂粮粥:大米、黑米、红豆、枣、葡萄干等洗净后加水,一起煮1个小时即成。

什锦饭:锅中放油,油热后放入鸡蛋、豌豆、甜玉米粒、火腿,熟后放入米饭一起炒,最后放入黄瓜、香葱翻炒几下即成。

关键点2:钙质要足够

钙是骨骼成长的基础。如果膳食中不能经常摄取生理所需钙量,血钙和软组织中的钙量不足,就必须向骨骼取钙,而骨骼中缺钙,其结果会导致骨质疏松、椎骨变形、脊柱变曲。骨骼得不到充足营养,当然无法正常生长,更别提长高个儿了。

推荐食品

含钙较多的食物有:奶制品、鸡蛋、鱼类、贝类、豆腐及豆类、芝麻酱、南瓜子等(维生素D、维生素C、乳糖等都有助于钙的吸收利用)。

关键点3:蛋白质天天有

处在生长发育期的孩子,对蛋白质的需求量比成人高得多,如供给不足便会影响身高增长。此外,胶原蛋白和粘蛋白也是构成骨骼的有机成分。

推荐食品

鸡肉、牛肉、鱼虾肉、鸡蛋、牛奶、豆腐都富含蛋白质。

关键点4:铁、锌、铜不可少

人体对它们的需求量虽然不大,但却是不能缺的,如果缺了它们,孩子会出现各种问题。缺锌的孩子,见什么都没食欲,必然影响生长。

铁是合成血红蛋白的必需物质,铜是合成血红蛋白的催化剂。食物中供给铁、铜若是不足,必然使血红蛋白合成受阻,生长发育、智力发育、免疫功能等均会受到影响,孩子可能经常生病。

推荐食品

含铁丰富的食物:动物肝脏和其他内脏、牛肉、羊肉、蛋黄、鱼、红小豆、菠菜。
含锌丰富的食物:牡蛎、动物肝脏。
含铜丰富的食物:猪肝、猪血、虾、蟹、贝类。

关键点5:新鲜蔬果

新鲜的蔬菜水果含有丰富的维生素,是人体必需的。维生素A、C能使孩子具有正常的抵抗力。

推荐食品

蔬菜类:白菜、胡萝卜、黄瓜、青椒、嫩笋、番茄、葱。
水果类:橘子、香蕉、梨、苹果、葡萄、桃、杏、西瓜。

最后给大家一个根据自己身高预测孩子未来身高的计算公式,你就知道你孩子是不是该补,是不是该运动了!

男孩成年终身高(厘米)=(父亲身高+母亲身高+13)/2±7.5(厘米)

女孩成年终身高(厘米)=(父亲身高+母亲身高-13)/2±7.5(厘米)

你家孩子达标了没?

-END-