你想要的老人都会用的电视直播APP,我替你找到了!

工具软件zkbhj 发表了文章 • 0 个评论 • 2050 次浏览 • 2024-07-30 15:24 • 来自相关话题

 最近家里老人总跟我说现在电视不好用,难操作,想看个电视台,怎么折腾都找不到,作为儿女,老人提需求必须得满足呀,况且咱还是个技术出身的程序员,这点儿事儿按道理应该难不倒俺!

说干就干,经过几天的折腾,终于让家里老人一键就能方便的看电视直播了。没错,我在Github上找到了一个完全无广告、清晰度超高、频道非常丰富的宝藏iptv应用——西柚电视直播,亲测可用,而且质量超高!!!看凤凰卫视、看奥运会体育频道等相当方便了~~~

1、仓库地址:

Github官方仓库:https://github.com/zkbhj/KBTV


 
而且这个应用竟然还有一个自己的官网,大家可以在官网下载安装包以及查看使用教程、频道信息等,地址是:
 
https://xy.zkbhj.com?fr=ask
 
2、推荐这个APP的理由:
频道丰富,有超过1500+的直播频道频道质量高,大家常看的央视、卫视、港澳台和地方等频道基本上都是1080P的完全没有任何广告,也没有一个购物台不需要关注什么公众号,不会打扰用户一键安装,操作简单,老人都会用,我就是给我父母搞了一个,在家看电视特方便

 
 
但如果你是想白嫖别人的劳动成果,那就不要看了,要么你自己去折腾自己弄,要么就支持一下别人付出的劳动,毕竟要投入各种成本和精力,还没有任何广告植入,有大家的支持才能继续坚持维护下去。但性价比非常超值,完全值得冲它。小白们的福音,完美解决家里看不了电视的烦恼,尤其是家里有老人的,搞一个这个直接搞定,不再让家里的电视成为摆设。 查看全部

 最近家里老人总跟我说现在电视不好用,难操作,想看个电视台,怎么折腾都找不到,作为儿女,老人提需求必须得满足呀,况且咱还是个技术出身的程序员,这点儿事儿按道理应该难不倒俺!

说干就干,经过几天的折腾,终于让家里老人一键就能方便的看电视直播了。没错,我在Github上找到了一个完全无广告、清晰度超高、频道非常丰富的宝藏iptv应用——西柚电视直播,亲测可用,而且质量超高!!!看凤凰卫视、看奥运会体育频道等相当方便了~~~

1、仓库地址:


Github官方仓库:https://github.com/zkbhj/KBTV



 
而且这个应用竟然还有一个自己的官网,大家可以在官网下载安装包以及查看使用教程、频道信息等,地址是:
 
https://xy.zkbhj.com?fr=ask
 
2、推荐这个APP的理由:
  • 频道丰富,有超过1500+的直播频道
  • 频道质量高,大家常看的央视、卫视、港澳台和地方等频道基本上都是1080P的
  • 完全没有任何广告,也没有一个购物台
  • 不需要关注什么公众号,不会打扰用户
  • 一键安装,操作简单,老人都会用,我就是给我父母搞了一个,在家看电视特方便


 
 
但如果你是想白嫖别人的劳动成果,那就不要看了,要么你自己去折腾自己弄,要么就支持一下别人付出的劳动,毕竟要投入各种成本和精力,还没有任何广告植入,有大家的支持才能继续坚持维护下去。但性价比非常超值,完全值得冲它。小白们的福音,完美解决家里看不了电视的烦恼,尤其是家里有老人的,搞一个这个直接搞定,不再让家里的电视成为摆设。

为了隐藏真正的Mysql数据库,我想通过中间跳板机nginx服务做转发进行数据库连接,要怎么做?

回复

数据库zkbhj 发起了问题 • 1 人关注 • 0 个回复 • 2981 次浏览 • 2023-07-10 11:23 • 来自相关话题

Nginx+PHP-FPM架构,结合PHP8.1搭建应用服务器时的一些总结和记录

PHPzkbhj 发表了文章 • 0 个评论 • 3783 次浏览 • 2022-12-08 14:07 • 来自相关话题

最近在做一个项目,使用了PHP8.1语言版本,语言框架使用的是Yii2的最新版本,然后再搭建服务器环境和部署应用的过程中遇到了一些问题,现总结如下,给同样场景可能会遇到一些类似问题的你提供一些解决方案,既然已经踩过一遍坑了,方便大家,也方便后续回顾总结。
 
一、编译安装PHP8.1:
因为编译过程中基本上遇到问题的概率并不大,我的编译过程还算顺利,因为服务器上保留了以前其他人运行的项目。PHP的版本是7.2.3,所以就编译安装了PHP8.1到一个指定的地方,然后独立安装的PHP-FPM。尽量不影响以前的项目运行。
我的编译配置信息(注意要一行,不能存在换行符):./configure --prefix=/usr/local/php8.1 --with-config-file-path=/usr/local/php8.1/etc --with-curl --with-freetype --enable-gd --with-jpeg --with-gettext --with-kerberos --with-libdir=lib64 --with-libxml --with-mysqli --with-openssl --with-pdo-mysql --with-pdo-sqlite --with-pear --enable-sockets --with-mhash --with-ldap-sasl --with-xsl --with-zlib -with-bz2 --with-iconv --enable-fpm --enable-pdo --enable-bcmath --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-sysvsem --enable-cli --enable-opcache --enable-intl --enable-calendar --enable-static --enable-mysqlnd最终我把编译好的php-fpm文件复制到了我的PHP8.1目录下,并完成了配置启动。这会儿还一切看似顺利。
 
编译过程中遇到了一个问题是:
configure: error: iconv does not support errno
 优先参考网上的解决方案安装缺失的iconv,如果不行,在运行configure之前先运行:
export LDFLAGS="$LDFLAGS -liconv"参考官网bug讨论 https://bugs.php.net/bug.php?id=80585,在此对歪果友人诚挚的感谢。

二、部署应用:
搭建好之后,顺利启动PHP-FPM服务器,监听端口9000,然后再Nginx配置文件中,将请求信息直接给到9000端口来处理,这里就有一些“东西”要注意了,否则就遇到了下面的问题:
 
问题1:部署应用之后,请求失败,页面返回“File not Found”,然后查看Nginx的报错日志,显示信息是:2022/12/08 13:15:51 [error] 31547#0: *29582 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 119.116.237.75, server: web.*.com, request: "GET /site/user-agreement HTTP/2.0", upstream: "fastcgi://127.0.0.1:9000", host: "web*.*com"网上说中问题, 比如php-fpm的 运行group和user不对啦,应用目录权限不足啦,但我发现根本原因是在Nginx转发时,少了一个重要的配置信息。
由于我的yii2项目启用了 URLManage功能,为了让链接看起来更漂亮一些,所以需要在Nginx配置文件中加入下面的这个配置:if (!-e $request_filename){
rewrite ^/(.*) /index.php last;
}

所以,完整的转发配置应该是:location / {
fastcgi_pass 127.0.0.1:9000;
if (!-e $request_filename){
rewrite ^/(.*) /index.php last;
}
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}所以这块,大家应该注意一下,更改完,重新启动Nginx服务之后,项目正常启动了!
 
问题二、页面图标显示异常:
由于使用了第三方图标工具,打开F12工具之后,发现是静态资源服务器访问字体文件时显示跨域:Access to Font at “xxx” from origin “xxx” has been by CORS plicy:
No ‘Access-Control-Allow-Origin’header is present on the requested resource.
Origin “xxx” is therefore not allowed access.这时候,只需要在静态资源服务器的Nginx配置文件中增加下面的配置项即可:location ~* .(eot|ttf|woff|swoff2|svg|otf)$ {
add_header Access-Control-Allow-Origin [url]http://www.zkbhj.com;[/url] //只允许单域名或者 ‘*' 。不推荐 ‘*' ,会导致安全问题
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
} 查看全部
最近在做一个项目,使用了PHP8.1语言版本,语言框架使用的是Yii2的最新版本,然后再搭建服务器环境和部署应用的过程中遇到了一些问题,现总结如下,给同样场景可能会遇到一些类似问题的你提供一些解决方案,既然已经踩过一遍坑了,方便大家,也方便后续回顾总结。
 
一、编译安装PHP8.1:
因为编译过程中基本上遇到问题的概率并不大,我的编译过程还算顺利,因为服务器上保留了以前其他人运行的项目。PHP的版本是7.2.3,所以就编译安装了PHP8.1到一个指定的地方,然后独立安装的PHP-FPM。尽量不影响以前的项目运行。
我的编译配置信息(注意要一行,不能存在换行符):
./configure --prefix=/usr/local/php8.1 --with-config-file-path=/usr/local/php8.1/etc --with-curl --with-freetype --enable-gd --with-jpeg --with-gettext --with-kerberos --with-libdir=lib64 --with-libxml --with-mysqli --with-openssl --with-pdo-mysql --with-pdo-sqlite --with-pear --enable-sockets --with-mhash --with-ldap-sasl --with-xsl --with-zlib -with-bz2 --with-iconv --enable-fpm --enable-pdo --enable-bcmath  --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-sysvsem --enable-cli --enable-opcache --enable-intl --enable-calendar --enable-static --enable-mysqlnd
最终我把编译好的php-fpm文件复制到了我的PHP8.1目录下,并完成了配置启动。这会儿还一切看似顺利。
 
编译过程中遇到了一个问题是:
configure: error: iconv does not support errno

 优先参考网上的解决方案安装缺失的iconv,如果不行,在运行configure之前先运行:
export LDFLAGS="$LDFLAGS -liconv"
参考官网bug讨论 https://bugs.php.net/bug.php?id=80585,在此对歪果友人诚挚的感谢。

二、部署应用:
搭建好之后,顺利启动PHP-FPM服务器,监听端口9000,然后再Nginx配置文件中,将请求信息直接给到9000端口来处理,这里就有一些“东西”要注意了,否则就遇到了下面的问题:
 
问题1:部署应用之后,请求失败,页面返回“File not Found”,然后查看Nginx的报错日志,显示信息是:
2022/12/08 13:15:51 [error] 31547#0: *29582 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 119.116.237.75, server: web.*.com, request: "GET /site/user-agreement HTTP/2.0", upstream: "fastcgi://127.0.0.1:9000", host: "web*.*com"
网上说中问题, 比如php-fpm的 运行group和user不对啦,应用目录权限不足啦,但我发现根本原因是在Nginx转发时,少了一个重要的配置信息。
由于我的yii2项目启用了 URLManage功能,为了让链接看起来更漂亮一些,所以需要在Nginx配置文件中加入下面的这个配置:
if (!-e $request_filename){
rewrite ^/(.*) /index.php last;
}

所以,完整的转发配置应该是:
location / {
fastcgi_pass 127.0.0.1:9000;
if (!-e $request_filename){
rewrite ^/(.*) /index.php last;
}
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
所以这块,大家应该注意一下,更改完,重新启动Nginx服务之后,项目正常启动了!
 
问题二、页面图标显示异常:
由于使用了第三方图标工具,打开F12工具之后,发现是静态资源服务器访问字体文件时显示跨域:
Access to Font at “xxx” from origin “xxx” has been by CORS plicy:
No ‘Access-Control-Allow-Origin’header is present on the requested resource.
Origin “xxx” is therefore not allowed access.
这时候,只需要在静态资源服务器的Nginx配置文件中增加下面的配置项即可:
location ~* .(eot|ttf|woff|swoff2|svg|otf)$ {
add_header Access-Control-Allow-Origin [url]http://www.zkbhj.com;[/url] //只允许单域名或者 ‘*' 。不推荐 ‘*' ,会导致安全问题
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
}

怎么设计一个抢红包系统?

架构思想zkbhj 发表了文章 • 0 个评论 • 3736 次浏览 • 2022-07-03 11:46 • 来自相关话题

大家应该经常领红包吧,那怎么设计一个抢红包系统呢?本文将做详细的系统设计说明。

活动规模

公司在年底,为员工准备了 25 万元的抢红包活动,在年三十晚 8 点准时开始。





 
技术方案

首先要理解到抢红包特殊的业务场景,红包抢到了并不等于把钱拿到手了。抢红包其实主要有 3 个核心流程:红包金额拆分->抢红包->打款。 
红包金额拆分是指将指定金额拆分为指定数目红包的过程,用来确定每个红包的金额数;抢红包是用户抢红包的这个操作,典型的高并发场景,需要系统扛流量且避免红包超发的情况;打款就是将抢到的红包通过微信/银行打款到用户钱包的过程(真正把红包的钱拿到手了),因为要对接三方支付系统是整个系统比较耗时的操作,一般通过异步任务来实现;
 红包金额拆分
可选的方案

拆分方式

1、实时拆分

实时拆分,指的是在抢红包时实时计算每个红包的金额,以实现红包的拆分过程,对系统性能和拆分算法要求较高,例如拆分过程要一直保证后续待拆分红包的金额不能为空,不容易做到拆分的红包金额服从正态分布规律。

2、预先生成

预先生成,指的是在红包开抢之前已经完成了红包的金额拆分,抢红包时只是依次取出拆分好的红包金额,对拆分算法要求较低,可以拆分出随机性很好的红包金额,通常需要结合队列使用。

拆分算法

红包拆分算法拆分的金额要看起来随机,最好能够服从正态分布,可以参考 微信 和 @lcode 提供的红包拆分算法。

微信拆分算法的优点是算法较简单,拆分效率高,同时由于该算法天然的特性,可以保证后续红包金额一定不为空,特别适合实时拆分场景,但缺点是会导致大额红包较大概率地在拆分的最后出现。 @lcode 拆分算法的优点是拆分金额基本符合正态分布,适合随机性要求较高的拆分场景。

我们的方案

我们这次的场景对红包金额的随机性要求不高,但是对系统可靠性要求较高,所以我们选用了预先生成方式,使用 二倍均值法 的算法拆分红包金额。

拆分算法可以描述为:假设剩余拆分金额为 M,剩余待拆分红包个数为 N,红包最小金额为 1 元,那么定义当前红包的金额为:

m=rand(1,floor(M/N∗2))


其中,floor 表示向下取整,rand(min, max) 表示从 [min, max] 区间随机一个值。M/N*2 表示剩余待拆分金额平均金额的 2 倍,因为 N >= 2,所以 M/N*2 <= M,表示一定能保证后续红包能拆分到金额。

代码实现为:for ($i = 0; $i < $N - 1; $i++) {
$max = (int)floor($M / ($N - $i)) * 2;
$m[$i] = $max ? mt_rand(1, $max) : 0;
$M -= $m[$i];
}

$m = $M;值得一提的是,为了保证红包金额差异尽量小,先将总金额平均拆分成 N+1 份,将第 N+1 份红包按照上述的红包拆分算法拆分成 N 份,这 N 份红包加上之前的平均金额才作为最终的红包金额。

抢红包

可选的方案

限流

1、前端限流

前端限制用户在 n 秒之内只能提交一次请求,虽然这种方式只能挡住小白(99% 的用户),所以也必须得做。

2、后端限流

常用的后端限流方法有 漏桶算法 和 令牌桶算法。漏桶算法 主要目的是控制请求数据注入的速率,如果此时漏桶溢出,后续的请求数据会被丢弃。而 令牌桶算法 是以一个恒定的速度往桶里放入令牌,而如果请求数据需要被处理,则需要先从桶里获取一个令牌,当桶里没有令牌时,这些请求才被丢弃,令牌桶算法的一个好处是可以方便地改变应用接受请求的速率。

防并发超发红包

1、库存加锁

可以通过加锁的方式解决,但是加锁会增加系统开销,大流量下更容易拖垮系统,也可以尝试一下基于版本号的乐观锁。

2、队列串行化请求

之所会出现超发问题,是因为并发时会出现多个进程同时操作同一资源的现象,如果使用高速队列将并行请求串行化,那么问题就不存在了。高速队列可以使用 Redis 来实现,但是还要必须保证整个流程调用链要短、要快,否则队列会积压严重,甚至会拖垮整个系统。

我们的方案

我们选用队列串行化的方案,抢红包整个过程只会操作 Redis,且都是简单高效的 Pop 和 Push 命令操作。

抢红包流程:先从红包队列中 Pop 占有红包,然后 Push 红包到任务队列(待异步打款处理),并同步告知用户抢到红包的结果,抢红包流程就结束了。





 
当然,在实际应用中,占有红包过程中还会有一些前置规则校验,比如用户是否已经领取过,领取次数是否已经达到上限等?红包占有流程图如下:





 
其中,red::list为 List 结构,存放预先拆分好金额的红包;red::task 也为 List 结构,异步打款处理任务队列;red::draw为 Hash 结构,存放红包领取记录,field为用户的 openid,value为序列化的红包信息;red::draw_count:u:openid为 k-v 结构,用户领取红包计数器。

1、怎么保证不超发

从红包占有流程图可看出,这个过程是会操作很多 Key,那怎么保证原子性?我们选用了 Lua 方案,一方面是因为首先要保证性能,没有多次请求的网络开销,另一方面 Lua 脚本执行时本身就是原子性的,满足需求。

红包占有的 Lua 脚本实现如下:-- 领取人的openid为xxxxxxxxxxx
local openid = 'xxxxxxxxxxx'
local isDraw = redis.call('HEXISTS', 'red::draw', openid)
-- 已经领取
if isDraw ~= 0 then
return true
end
-- 领取太多次了
local times = redis.call('INCR', 'red::draw_count:u:'..openid)
if times and tonumber(times) > 9 then
return 0
end

local number = redis.call('RPOP', 'red::list')
-- 没有红包
if not number then
return {}
end
-- 领取人昵称为Fhb,头像为https://xxxxxxx
local red = {money=number,name='Fhb',pic='https://xxxxxxx'}
-- 领取记录
redis.call('HSET', 'red::draw', openid, cjson.encode(red))
-- 处理队列
red['openid'] = openid
redis.call('RPUSH', 'red::task', cjson.encode(red))

return true

需要注意 Lua 脚本执行过程并不是事务的,脚本中的操作命令在执行时是有先后顺序的,当某个操作执行失败时不会回滚已经执行成功的操作。

 
2、怎么提高系统响应

由于抢红包和打款流程分开,抢红包过程只需操作 Redis,整个操作短且快,故不存在性能问题。

打款

我们的方案

采用 Worker 任务去消费任务队列,调用红包支付 API,以及数据持久化操作(后续对账)。尽管红包发放调用链又长又慢,但是这些 Worker 是 无状态 的,所以可以通过增加 Worker 数量,提高系统的消费处理能力。




 
1、怎么保证数据一致性

若红包打款失败了,前面已经告知用户抢到红包,但是却木有发,那用户肯定会很愤怒。但是根据 CAP 原理,我们通常只需做到数据最终一致性。

我们在打款流程里面做了重试机制,生成一个全局唯一的外部订单号,当某红包打款失败,就会放回任务队列重试,当然重试时要处理好幂等。

2、怎么保证Worker不异常结束

Worker 的实现如下:$maxTask = 1000;
$sleepTime = 1000;

while (true) {
while ($red = RedLogic::getTask()) {
RedLogic::doTask($red);
//处理多少个任务主动退出
$maxTask--;
if ($maxTask < 0) {
return EXIT_CODE_NORMAL;
}
}
//等待任务
usleep($sleepTime);
}

这里使用 LPOP 命令获取任务,所以使用了 while 结构,并且无任务时需要等待,可以用阻塞命令 BLPOP 来改进。

由于 Worker 需要常驻内存运行,难免会出现异常结束的情况(也有主动 Exit), 所以需要保持 Worker 一直处于运行状态。我们使用进程管理工具 Supervisor 来监控和管理 Worker 任务,当任务队列出现堆积时,增加 Worker 数量即可。Supervisor 的监控后台如下:





 
保障方案

资源CDN缓存

由于本次活动力度较大,静态页面占流量的很大一部分,所以静态页面在发布时都会放置一份在 CDN 上,这样回源的流量就很小了。

降级措施

尽管做了很多准备,还是无法确保万无一失,我们在每个关键节点都增加了开关,一但出现异常,可以通过配置中心人工介入做降级处理。 

原文来自微信公众号:后端搬运工。
原文地址:https://mp.weixin.qq.com/s/VG_Wcxte8avnXzn4bPXiGA
欢迎大家多关注! 查看全部
大家应该经常领红包吧,那怎么设计一个抢红包系统呢?本文将做详细的系统设计说明。

活动规模

公司在年底,为员工准备了 25 万元的抢红包活动,在年三十晚 8 点准时开始。

微信截图_20220703115217.png

 
技术方案

首先要理解到抢红包特殊的业务场景,红包抢到了并不等于把钱拿到手了。抢红包其实主要有 3 个核心流程:红包金额拆分->抢红包->打款。 
  • 红包金额拆分是指将指定金额拆分为指定数目红包的过程,用来确定每个红包的金额数;
  • 抢红包是用户抢红包的这个操作,典型的高并发场景,需要系统扛流量且避免红包超发的情况;
  • 打款就是将抢到的红包通过微信/银行打款到用户钱包的过程(真正把红包的钱拿到手了),因为要对接三方支付系统是整个系统比较耗时的操作,一般通过异步任务来实现;

 红包金额拆分
可选的方案

拆分方式

1、实时拆分

实时拆分,指的是在抢红包时实时计算每个红包的金额,以实现红包的拆分过程,对系统性能和拆分算法要求较高,例如拆分过程要一直保证后续待拆分红包的金额不能为空,不容易做到拆分的红包金额服从正态分布规律。

2、预先生成

预先生成,指的是在红包开抢之前已经完成了红包的金额拆分,抢红包时只是依次取出拆分好的红包金额,对拆分算法要求较低,可以拆分出随机性很好的红包金额,通常需要结合队列使用。

拆分算法

红包拆分算法拆分的金额要看起来随机,最好能够服从正态分布,可以参考 微信 和 @lcode 提供的红包拆分算法。

微信拆分算法的优点是算法较简单,拆分效率高,同时由于该算法天然的特性,可以保证后续红包金额一定不为空,特别适合实时拆分场景,但缺点是会导致大额红包较大概率地在拆分的最后出现。 @lcode 拆分算法的优点是拆分金额基本符合正态分布,适合随机性要求较高的拆分场景。

我们的方案

我们这次的场景对红包金额的随机性要求不高,但是对系统可靠性要求较高,所以我们选用了预先生成方式,使用 二倍均值法 的算法拆分红包金额。

拆分算法可以描述为:假设剩余拆分金额为 M,剩余待拆分红包个数为 N,红包最小金额为 1 元,那么定义当前红包的金额为:


m=rand(1,floor(M/N∗2))



其中,floor 表示向下取整,rand(min, max) 表示从 [min, max] 区间随机一个值。M/N*2 表示剩余待拆分金额平均金额的 2 倍,因为 N >= 2,所以 M/N*2 <= M,表示一定能保证后续红包能拆分到金额。

代码实现为:
for ($i = 0; $i < $N - 1; $i++) {
$max = (int)floor($M / ($N - $i)) * 2;
$m[$i] = $max ? mt_rand(1, $max) : 0;
$M -= $m[$i];
}

$m = $M;
值得一提的是,为了保证红包金额差异尽量小,先将总金额平均拆分成 N+1 份,将第 N+1 份红包按照上述的红包拆分算法拆分成 N 份,这 N 份红包加上之前的平均金额才作为最终的红包金额。

抢红包

可选的方案

限流

1、前端限流

前端限制用户在 n 秒之内只能提交一次请求,虽然这种方式只能挡住小白(99% 的用户),所以也必须得做。

2、后端限流

常用的后端限流方法有 漏桶算法 和 令牌桶算法。漏桶算法 主要目的是控制请求数据注入的速率,如果此时漏桶溢出,后续的请求数据会被丢弃。而 令牌桶算法 是以一个恒定的速度往桶里放入令牌,而如果请求数据需要被处理,则需要先从桶里获取一个令牌,当桶里没有令牌时,这些请求才被丢弃,令牌桶算法的一个好处是可以方便地改变应用接受请求的速率。

防并发超发红包

1、库存加锁


可以通过加锁的方式解决,但是加锁会增加系统开销,大流量下更容易拖垮系统,也可以尝试一下基于版本号的乐观锁。

2、队列串行化请求

之所会出现超发问题,是因为并发时会出现多个进程同时操作同一资源的现象,如果使用高速队列将并行请求串行化,那么问题就不存在了。高速队列可以使用 Redis 来实现,但是还要必须保证整个流程调用链要短、要快,否则队列会积压严重,甚至会拖垮整个系统。

我们的方案

我们选用队列串行化的方案,抢红包整个过程只会操作 Redis,且都是简单高效的 Pop 和 Push 命令操作。

抢红包流程:先从红包队列中 Pop 占有红包,然后 Push 红包到任务队列(待异步打款处理),并同步告知用户抢到红包的结果,抢红包流程就结束了。

微信截图_20220703115237.png

 
当然,在实际应用中,占有红包过程中还会有一些前置规则校验,比如用户是否已经领取过,领取次数是否已经达到上限等?红包占有流程图如下:

微信截图_20220703115247.png

 
其中,red::list为 List 结构,存放预先拆分好金额的红包;red::task 也为 List 结构,异步打款处理任务队列;red::draw为 Hash 结构,存放红包领取记录,field为用户的 openid,value为序列化的红包信息;red::draw_count:u:openid为 k-v 结构,用户领取红包计数器。

1、怎么保证不超发

从红包占有流程图可看出,这个过程是会操作很多 Key,那怎么保证原子性?我们选用了 Lua 方案,一方面是因为首先要保证性能,没有多次请求的网络开销,另一方面 Lua 脚本执行时本身就是原子性的,满足需求。

红包占有的 Lua 脚本实现如下:
-- 领取人的openid为xxxxxxxxxxx
local openid = 'xxxxxxxxxxx'
local isDraw = redis.call('HEXISTS', 'red::draw', openid)
-- 已经领取
if isDraw ~= 0 then
return true
end
-- 领取太多次了
local times = redis.call('INCR', 'red::draw_count:u:'..openid)
if times and tonumber(times) > 9 then
return 0
end

local number = redis.call('RPOP', 'red::list')
-- 没有红包
if not number then
return {}
end
-- 领取人昵称为Fhb,头像为https://xxxxxxx
local red = {money=number,name='Fhb',pic='https://xxxxxxx'}
-- 领取记录
redis.call('HSET', 'red::draw', openid, cjson.encode(red))
-- 处理队列
red['openid'] = openid
redis.call('RPUSH', 'red::task', cjson.encode(red))

return true


需要注意 Lua 脚本执行过程并不是事务的,脚本中的操作命令在执行时是有先后顺序的,当某个操作执行失败时不会回滚已经执行成功的操作。


 
2、怎么提高系统响应

由于抢红包和打款流程分开,抢红包过程只需操作 Redis,整个操作短且快,故不存在性能问题。

打款

我们的方案

采用 Worker 任务去消费任务队列,调用红包支付 API,以及数据持久化操作(后续对账)。尽管红包发放调用链又长又慢,但是这些 Worker 是 无状态 的,所以可以通过增加 Worker 数量,提高系统的消费处理能力。
微信截图_20220703115258.png

 
1、怎么保证数据一致性

若红包打款失败了,前面已经告知用户抢到红包,但是却木有发,那用户肯定会很愤怒。但是根据 CAP 原理,我们通常只需做到数据最终一致性。

我们在打款流程里面做了重试机制,生成一个全局唯一的外部订单号,当某红包打款失败,就会放回任务队列重试,当然重试时要处理好幂等。

2、怎么保证Worker不异常结束

Worker 的实现如下:
$maxTask = 1000;
$sleepTime = 1000;

while (true) {
while ($red = RedLogic::getTask()) {
RedLogic::doTask($red);
//处理多少个任务主动退出
$maxTask--;
if ($maxTask < 0) {
return EXIT_CODE_NORMAL;
}
}
//等待任务
usleep($sleepTime);
}


这里使用 LPOP 命令获取任务,所以使用了 while 结构,并且无任务时需要等待,可以用阻塞命令 BLPOP 来改进。


由于 Worker 需要常驻内存运行,难免会出现异常结束的情况(也有主动 Exit), 所以需要保持 Worker 一直处于运行状态。我们使用进程管理工具 Supervisor 来监控和管理 Worker 任务,当任务队列出现堆积时,增加 Worker 数量即可。Supervisor 的监控后台如下:

微信截图_20220703115309.png

 
保障方案

资源CDN缓存


由于本次活动力度较大,静态页面占流量的很大一部分,所以静态页面在发布时都会放置一份在 CDN 上,这样回源的流量就很小了。

降级措施

尽管做了很多准备,还是无法确保万无一失,我们在每个关键节点都增加了开关,一但出现异常,可以通过配置中心人工介入做降级处理。 

原文来自微信公众号:后端搬运工
原文地址:https://mp.weixin.qq.com/s/VG_Wcxte8avnXzn4bPXiGA
欢迎大家多关注!

#阅读2022#2022年第2季度读书计划

读书计划zkbhj 发表了文章 • 0 个评论 • 3153 次浏览 • 2022-04-01 15:12 • 来自相关话题

2022年第2季度读书计划时间跨度:

4、5、6三个月


第2季度精读书目表(总)
《读者》四月上下册、五月上下册、六月上下册(共6本)(阅读中)《分身》 [日] 东野圭吾(小说:侦探推理)(本书来源:推理小说榜单)《Go语言精进之路:从新手到高手的编程思想、方法和技巧》白明(技术:编程技术)(本书来源:Go语言类排行榜单)《产品思维:从新手到资深产品人》刘飞(通用技术:产品思维提升)(本书来源:产品经理类排行榜单)《知行合一王阳明》[中]王阳明(技能:生活习惯)(本书来源:老师推荐)(待阅读)《以交易为生(原书第2版)》[美]亚历山大·埃尔德( Alexander Elder)(技能:投资理财)(本书来源:豆瓣财经类榜单)(已读完:2022年05月02日)《股市趋势技术分析(原书第10版)》罗伯特D.爱德华兹 / 约翰·迈吉 / W. H. C.巴塞蒂(技能:投资理财)(本书来源:豆瓣财经类榜单)(阅读中)《人世间(套装共三册)》梁晓声(小说:年代历史生活纪实)(本书来源:热播剧《人世间》原著)(阅读中)《世界上最神奇的24堂课》[美]查尔斯·哈奈尔(通用技术:思维认知提升)(本书来源:老师推荐)《聪明的交易者:顺势而为与心态修炼》周乔桑(技能:投资理财)(本书来源:老师推荐)(已读完:2022年05月04日)《元宇宙基石:Web3.0与分布式存储》焜耀研究院(通用技术:思维认知提升)(本书来源:元宇宙板块榜单)(已完成:2022年4月17日) 查看全部
2022年第2季度读书计划时间跨度:


4、5、6三个月



第2季度精读书目表(总)
  1. 《读者》四月上下册、五月上下册、六月上下册(共6本)(阅读中)
  2. 《分身》 [日] 东野圭吾(小说:侦探推理)(本书来源:推理小说榜单)
  3. 《Go语言精进之路:从新手到高手的编程思想、方法和技巧》白明(技术:编程技术)(本书来源:Go语言类排行榜单)
  4. 《产品思维:从新手到资深产品人》刘飞(通用技术:产品思维提升)(本书来源:产品经理类排行榜单)
  5. 《知行合一王阳明》[中]王阳明(技能:生活习惯)(本书来源:老师推荐)(待阅读)
  6. 《以交易为生(原书第2版)》[美]亚历山大·埃尔德( Alexander Elder)(技能:投资理财)(本书来源:豆瓣财经类榜单)(已读完:2022年05月02日)
  7. 《股市趋势技术分析(原书第10版)》罗伯特D.爱德华兹 / 约翰·迈吉 / W. H. C.巴塞蒂(技能:投资理财)(本书来源:豆瓣财经类榜单)(阅读中)
  8. 《人世间(套装共三册)》梁晓声(小说:年代历史生活纪实)(本书来源:热播剧《人世间》原著)(阅读中)
  9. 《世界上最神奇的24堂课》[美]查尔斯·哈奈尔(通用技术:思维认知提升)(本书来源:老师推荐)
  10. 《聪明的交易者:顺势而为与心态修炼》周乔桑(技能:投资理财)(本书来源:老师推荐)(已读完:2022年05月04日)
  11. 《元宇宙基石:Web3.0与分布式存储》焜耀研究院(通用技术:思维认知提升)(本书来源:元宇宙板块榜单)(已完成:2022年4月17日)

#阅读2022#2022年第1季度读书计划

读书计划zkbhj 发表了文章 • 0 个评论 • 3706 次浏览 • 2022-02-06 10:58 • 来自相关话题

2022年第1季度读书计划

时间跨度:1、2、3三个月


第1季度精读书目表(总)
《笑傲牛熊》 [美]史丹•温斯坦(Stan Weinstein)(技能:投资理财)(本书来源:豆瓣财经类榜单)豆瓣地址(阅读完成:2022年02月12日)《读者》一月上下册、二月上下册、三月上下册(共6本)(阅读中)《分身》 [日] 东野圭吾(小说:侦探推理)(本书来源:推理小说榜单)豆瓣地址《开端》祈祷君 / 悦读纪(小说:无限流科幻)(本书来源:开年热播剧原著)豆瓣地址 (阅读中)《周期: 投资机会、风险、态度与市场周期》[美]霍华德·马克斯(技能:投资理财)(本书来源:豆瓣财经类榜单)豆瓣地址(阅读完成:2022年3月28日)《Go语言精进之路:从新手到高手的编程思想、方法和技巧1》白明(技术:编程技术)(本书来源:Go语言类排行榜单)豆瓣地址《产品思维:从新手到资深产品人》刘飞(通用技术:产品思维提升)(本书来源:产品经理类排行榜单)豆瓣地址《知行合一王阳明》[中]王阳明(技能:生活习惯)(本书来源:老师推荐)(待阅读)豆瓣地址《以交易为生(原书第2版)》[美]亚历山大·埃尔德( Alexander Elder)(技能:投资理财)(本书来源:豆瓣财经类榜单)豆瓣地址 (阅读中)《股市趋势技术分析(原书第10版)》罗伯特D.爱德华兹 / 约翰·迈吉 / W. H. C.巴塞蒂(技能:投资理财)(本书来源:豆瓣财经类榜单)豆瓣地址《人世间(套装共三册)》梁晓声(小说:年代历史生活纪实)(本书来源:热播剧《人世间》原著)豆瓣地址 (阅读中)《世界上最神奇的24堂课》[美]查尔斯·哈奈尔(通用技术:思维认知提升)(本书来源:老师推荐)豆瓣地址 (阅读中)《聪明的交易者:顺势而为与心态修炼》周乔桑(技能:投资理财)(本书来源:老师推荐)豆瓣地址 查看全部
2022年第1季度读书计划


时间跨度:1、2、3三个月



第1季度精读书目表(总)
  1. 《笑傲牛熊》 [美]史丹•温斯坦(Stan Weinstein)(技能:投资理财)(本书来源:豆瓣财经类榜单)豆瓣地址(阅读完成:2022年02月12日)
  2. 《读者》一月上下册、二月上下册、三月上下册(共6本)(阅读中)
  3. 《分身》 [日] 东野圭吾(小说:侦探推理)(本书来源:推理小说榜单)豆瓣地址
  4. 《开端》祈祷君 / 悦读纪(小说:无限流科幻)(本书来源:开年热播剧原著)豆瓣地址 (阅读中)
  5. 《周期: 投资机会、风险、态度与市场周期》[美]霍华德·马克斯(技能:投资理财)(本书来源:豆瓣财经类榜单)豆瓣地址(阅读完成:2022年3月28日)
  6. 《Go语言精进之路:从新手到高手的编程思想、方法和技巧1》白明(技术:编程技术)(本书来源:Go语言类排行榜单)豆瓣地址
  7. 《产品思维:从新手到资深产品人》刘飞(通用技术:产品思维提升)(本书来源:产品经理类排行榜单)豆瓣地址
  8. 《知行合一王阳明》[中]王阳明(技能:生活习惯)(本书来源:老师推荐)(待阅读)豆瓣地址
  9. 《以交易为生(原书第2版)》[美]亚历山大·埃尔德( Alexander Elder)(技能:投资理财)(本书来源:豆瓣财经类榜单)豆瓣地址 (阅读中)
  10. 《股市趋势技术分析(原书第10版)》罗伯特D.爱德华兹 / 约翰·迈吉 / W. H. C.巴塞蒂(技能:投资理财)(本书来源:豆瓣财经类榜单)豆瓣地址
  11. 《人世间(套装共三册)》梁晓声(小说:年代历史生活纪实)(本书来源:热播剧《人世间》原著)豆瓣地址 (阅读中)
  12. 《世界上最神奇的24堂课》[美]查尔斯·哈奈尔(通用技术:思维认知提升)(本书来源:老师推荐)豆瓣地址 (阅读中)
  13. 《聪明的交易者:顺势而为与心态修炼》周乔桑(技能:投资理财)(本书来源:老师推荐)豆瓣地址

#阅读2021#2021年第4季度读书计划

读书计划zkbhj 发表了文章 • 0 个评论 • 4147 次浏览 • 2021-10-29 10:14 • 来自相关话题

2021年第4季度读书计划时间跨度:10、11、12三个月

第4季度精读书目表(总)
《早起的奇迹:那些能够在早晨8:00前改变人生的秘密》 [美] 哈尔·埃尔罗德 (技能:生活习惯)(本书来源:老师推荐)(阅读中)豆瓣地址《日本蜡烛图技术(第2版)》 [美] 史蒂夫·尼森(技能:交易投资)(本书来源:PageOne 书店发现)(阅读中)豆瓣地址《绝叫》 [日] 叶真中显(小说:社会派推理)(本书来源:推理小说榜单)(已完成:2021年12月4日 22:29:34)豆瓣地址《Blue》 [日] 叶真中显(小说:社会派推理)(本书来源:推理小说榜单)(待阅读)豆瓣地址《知行合一王阳明》[中]王阳明(技能:生活习惯)(本书来源:老师推荐)(待阅读)豆瓣地址《水知道答案:每一滴水都有记忆》 [日] 江本胜(能量:提升认知)(本书来源:老师推荐)(已完成:2021年10月22日)豆瓣地址《秘密》朗达·拜恩(能量:提升认知)(本书来源:老师推荐)(已完成:2021年10月16日)豆瓣地址《一日一舍》[日]铃铃希 (技能:生活习惯)(本书来源:PageOne 书店发现)(已完成:2021年10月17日)豆瓣地址《分身》 [日] 东野圭吾(小说:侦探推理)(本书来源:推理小说榜单)豆瓣地址《元宇宙》赵国栋(认知提升)(本书来源:图书榜单)豆瓣地址《元宇宙通证》邢杰(认知提升)(本书来源:图书榜单)豆瓣地址《止损:如何克服贪婪和恐惧》[美]吉姆·保罗 / [美]布伦丹·莫伊尼汉(投资理财&认知提升)(本书来源:图书榜单)(已完成:2021年12月19日)豆瓣地址《谁是凶手》孔优优(小说:刑侦推理)(本书来源:电视剧看完读原著)(阅读中)豆瓣地址 查看全部
2021年第4季度读书计划时间跨度:10、11、12三个月

第4季度精读书目表(总)
  1. 《早起的奇迹:那些能够在早晨8:00前改变人生的秘密》 [美] 哈尔·埃尔罗德 (技能:生活习惯)(本书来源:老师推荐)(阅读中)豆瓣地址
  2. 《日本蜡烛图技术(第2版)》 [美] 史蒂夫·尼森(技能:交易投资)(本书来源:PageOne 书店发现)(阅读中)豆瓣地址
  3. 《绝叫》 [日] 叶真中显(小说:社会派推理)(本书来源:推理小说榜单)(已完成:2021年12月4日 22:29:34)豆瓣地址
  4. 《Blue》 [日] 叶真中显(小说:社会派推理)(本书来源:推理小说榜单)(待阅读)豆瓣地址
  5. 《知行合一王阳明》[中]王阳明(技能:生活习惯)(本书来源:老师推荐)(待阅读)豆瓣地址
  6. 《水知道答案:每一滴水都有记忆》 [日] 江本胜(能量:提升认知)(本书来源:老师推荐)(已完成:2021年10月22日)豆瓣地址
  7. 《秘密》朗达·拜恩(能量:提升认知)(本书来源:老师推荐)(已完成:2021年10月16日)豆瓣地址
  8. 《一日一舍》[日]铃铃希 (技能:生活习惯)(本书来源:PageOne 书店发现)(已完成:2021年10月17日)豆瓣地址
  9. 《分身》 [日] 东野圭吾(小说:侦探推理)(本书来源:推理小说榜单)豆瓣地址
  10. 《元宇宙》赵国栋(认知提升)(本书来源:图书榜单)豆瓣地址
  11. 《元宇宙通证》邢杰(认知提升)(本书来源:图书榜单)豆瓣地址
  12. 《止损:如何克服贪婪和恐惧》[美]吉姆·保罗 / [美]布伦丹·莫伊尼汉(投资理财&认知提升)(本书来源:图书榜单)(已完成:2021年12月19日)豆瓣地址
  13. 《谁是凶手》孔优优(小说:刑侦推理)(本书来源:电视剧看完读原著)(阅读中)豆瓣地址

#阅读2021#2021年第3季度读书计划

读书计划zkbhj 发表了文章 • 0 个评论 • 2173 次浏览 • 2021-07-05 11:46 • 来自相关话题

2021年第3季度读书计划时间跨度:7、8、9三个月

第3季度精读书目表(总)
《请以你的爱寻找我》 [美] 安德烈·艾席蒙 (小说:爱情)(本书来源:书店畅销书)(已完成:2021年7月1日)豆瓣地址《怦然心动(Flipped)》文德琳·范·德拉安南(小说:青春爱情)(本书来源:图书榜单)(已完成:2021年7月4日)豆瓣地址《文城》余华(小说:人生阅历&时代史诗)(本书来源:书店畅销书)(已完成:2021年7月11日)豆瓣地址《聪明的投资者(第4版注疏点评版)》  [美] 本杰明·格雷厄姆 / 校注 刘建位审 (技能:投资理财)(本书来源:豆瓣图书榜)(阅读中)豆瓣地址《财富自由之路》李笑来 (技能:投资理财)(本书来源:豆瓣图书榜)(阅读中)豆瓣地址《让时间陪你慢慢变富》李笑来(技能:投资理财)(本书来源:朋友推荐)(已完成:2021年7月2日)电子版:点击进入《数字货币交易盈利策略》济卿(技能:投资理财)(本书来源:书店发现)(已完成:2021年8月26日)豆瓣地址《架构师修炼之道》[美] Michael Keeling(技术:技能成长)(本书来源:主动检索架构师类书籍)(阅读中)豆瓣地址《Head First Go语言程序设计》[美] 杰伊·麦克格瑞恩(Jay McGavren) 著,刘红泉 王佳译 译(技术:技能成长)(本书来源:主动检索架构师类书籍)(未开始)豆瓣地址《硅谷钢铁侠:埃隆·马斯克的冒险人生》 [美] 阿什利·万斯(人物传记)(本书来源:书店发现)(阅读中)豆瓣地址《邪恶催眠师1-心穴》周浩晖 (小说:侦探推理)(本书来源:图书榜单)(已完成:2021年7月18日)豆瓣地址《邪恶催眠师2-七个离奇的催眠杀局》周浩晖 (小说:侦探推理)(本书来源:图书榜单)(已完成:2021年7月27日)豆瓣地址《邪恶催眠师3-梦醒大结局》周浩晖 (小说:侦探推理)(本书来源:图书榜单)(已完成:2021年8月7日)豆瓣地址《克莱因壶》[日]冈岛二人 (小说:侦探推理)(本书来源:图书榜单)(已完成:2021年7月31日)豆瓣地址《区块链-价值互联网的基石》 赵刚(技能:投资理财&新技术)(本书来源:室友的书)(已完成:2021年8月1日)豆瓣地址《人人都懂区块链:21天从区块链“小白”到资深玩家》 罗金海(技能:投资理财&新技术)(本书来源:室友的书)(已完成:2021年8月1日)豆瓣地址《阿里工程师的自我修养》 阿里技术(技能:程序员成长)(本书来源:自如互联网研发部同事推荐)(阅读中)《GO语言区块链应用开发从入门到精通》高野(技能:程序员成长)(本书来源:网上搜索)(阅读中)豆瓣地址《字母表迷案》大山诚一郎(小说:侦探推理)(本书来源:侦探图书榜单)(已完成:2021年8月15日)豆瓣地址《指数基金投资指南》银行螺丝钉(技能:投资理财)(本书来源:西西弗书店发现)(已完成:2021年8月15日)豆瓣地址《无名之町》[日]东野圭吾(小说:侦探推理)(本书来源:图书榜单)(已完成:2021年9月22日)豆瓣地址
 
第3季度影音目录(总)
《切诺尔贝利》(2019年)第一季 5集。讲述了在1986年的乌克兰,究竟是什么原因引发了切尔诺贝利事故,以及当年勇敢的众人是如何牺牲自己拯救处于灾难中的欧洲的故事。(已完成:2021年7月11日)腾讯视频《我在他乡挺好的》(2021年)第一季 12集。一群生长于小城市的异乡人,在大都市的漂泊中经历生活、事业、感情的种种考验。剧集展现了大都会中异乡青年的写实生活,每个人物的经历都赋予了社会话题性和当下感,无论是焦虑不安还是泰然处之,不论是留下奋斗还是安于回乡,每个人都在失去与获得、留下与离开的种种经历中,获得了人生安身立命的心灵归属与城市家园。 芒果TV《我的女孩》(2005年)(又名《兄妹契约》)16集。薛功灿先生,周幼琳小姐,的爱情故事。童年回忆! 优酷视频《魔道祖师 · 第一季》(2018)15集。为了迎接8月7日第三季开播,回顾第一二季《魔道祖师 · 第二季》(2019)8集。为了迎接8月7日第三季开播,回顾第一二季《魔道祖师 · 第三季》(2021)完结篇,期待!《人之怒》(2021)电影(英国·犯罪) (已完成:2021年8月6日)豆瓣地址《第八天之夜 제8일의 밤》(2021)电影(韩国·恐怖) (已完成:2021年8月7日)豆瓣地址《利刃出鞘》(2019)电影(推理·黑色幽默)(已完成:2021年8月9日)豆瓣地址《全民目击》(2013)电影(推理·诡辩)(已完成:2021年8月27日)豆瓣地址 查看全部
2021年第3季度读书计划时间跨度:7、8、9三个月

第3季度精读书目表(总)
  1. 《请以你的爱寻找我》 [美] 安德烈·艾席蒙 (小说:爱情)(本书来源:书店畅销书)(已完成:2021年7月1日)豆瓣地址
  2. 《怦然心动(Flipped)》文德琳·范·德拉安南(小说:青春爱情)(本书来源:图书榜单)(已完成:2021年7月4日)豆瓣地址
  3. 《文城》余华(小说:人生阅历&时代史诗)(本书来源:书店畅销书)(已完成:2021年7月11日)豆瓣地址
  4. 《聪明的投资者(第4版注疏点评版)》  [美] 本杰明·格雷厄姆 / 校注 刘建位审 (技能:投资理财)(本书来源:豆瓣图书榜)(阅读中)豆瓣地址
  5. 《财富自由之路》李笑来 (技能:投资理财)(本书来源:豆瓣图书榜)(阅读中)豆瓣地址
  6. 《让时间陪你慢慢变富》李笑来(技能:投资理财)(本书来源:朋友推荐)(已完成:2021年7月2日)电子版:点击进入
  7. 《数字货币交易盈利策略》济卿(技能:投资理财)(本书来源:书店发现)(已完成:2021年8月26日)豆瓣地址
  8. 《架构师修炼之道》[美] Michael Keeling(技术:技能成长)(本书来源:主动检索架构师类书籍)(阅读中)豆瓣地址
  9. 《Head First Go语言程序设计》[美] 杰伊·麦克格瑞恩(Jay McGavren) 著,刘红泉 王佳译 译(技术:技能成长)(本书来源:主动检索架构师类书籍)(未开始)豆瓣地址
  10. 《硅谷钢铁侠:埃隆·马斯克的冒险人生》 [美] 阿什利·万斯(人物传记)(本书来源:书店发现)(阅读中)豆瓣地址
  11. 《邪恶催眠师1-心穴》周浩晖 (小说:侦探推理)(本书来源:图书榜单)(已完成:2021年7月18日)豆瓣地址
  12. 《邪恶催眠师2-七个离奇的催眠杀局》周浩晖 (小说:侦探推理)(本书来源:图书榜单)(已完成:2021年7月27日)豆瓣地址
  13. 《邪恶催眠师3-梦醒大结局》周浩晖 (小说:侦探推理)(本书来源:图书榜单)(已完成:2021年8月7日)豆瓣地址
  14. 《克莱因壶》[日]冈岛二人 (小说:侦探推理)(本书来源:图书榜单)(已完成:2021年7月31日)豆瓣地址
  15. 《区块链-价值互联网的基石》 赵刚(技能:投资理财&新技术)(本书来源:室友的书)(已完成:2021年8月1日)豆瓣地址
  16. 《人人都懂区块链:21天从区块链“小白”到资深玩家》 罗金海(技能:投资理财&新技术)(本书来源:室友的书)(已完成:2021年8月1日)豆瓣地址
  17. 《阿里工程师的自我修养》 阿里技术(技能:程序员成长)(本书来源:自如互联网研发部同事推荐)(阅读中)
  18. 《GO语言区块链应用开发从入门到精通》高野(技能:程序员成长)(本书来源:网上搜索)(阅读中)豆瓣地址
  19. 《字母表迷案》大山诚一郎(小说:侦探推理)(本书来源:侦探图书榜单)(已完成:2021年8月15日)豆瓣地址
  20. 《指数基金投资指南》银行螺丝钉(技能:投资理财)(本书来源:西西弗书店发现)(已完成:2021年8月15日)豆瓣地址
  21. 《无名之町》[日]东野圭吾(小说:侦探推理)(本书来源:图书榜单)(已完成:2021年9月22日)豆瓣地址

 
第3季度影音目录(总)
  1. 《切诺尔贝利》(2019年)第一季 5集。讲述了在1986年的乌克兰,究竟是什么原因引发了切尔诺贝利事故,以及当年勇敢的众人是如何牺牲自己拯救处于灾难中的欧洲的故事。(已完成:2021年7月11日)腾讯视频
  2. 《我在他乡挺好的》(2021年)第一季 12集。一群生长于小城市的异乡人,在大都市的漂泊中经历生活、事业、感情的种种考验。剧集展现了大都会中异乡青年的写实生活,每个人物的经历都赋予了社会话题性和当下感,无论是焦虑不安还是泰然处之,不论是留下奋斗还是安于回乡,每个人都在失去与获得、留下与离开的种种经历中,获得了人生安身立命的心灵归属与城市家园。 芒果TV
  3. 《我的女孩》(2005年)(又名《兄妹契约》)16集。薛功灿先生,周幼琳小姐,的爱情故事。童年回忆! 优酷视频
  4. 《魔道祖师 · 第一季》(2018)15集。为了迎接8月7日第三季开播,回顾第一二季
  5. 《魔道祖师 · 第二季》(2019)8集。为了迎接8月7日第三季开播,回顾第一二季
  6. 《魔道祖师 · 第三季》(2021)完结篇,期待!
  7. 《人之怒》(2021)电影(英国·犯罪) (已完成:2021年8月6日)豆瓣地址
  8. 《第八天之夜 제8일의 밤》(2021)电影(韩国·恐怖) (已完成:2021年8月7日)豆瓣地址
  9. 《利刃出鞘》(2019)电影(推理·黑色幽默)(已完成:2021年8月9日)豆瓣地址
  10. 《全民目击》(2013)电影(推理·诡辩)(已完成:2021年8月27日)豆瓣地址

跟党相关的英文单词和表述

单词本zkbhj 发表了文章 • 0 个评论 • 3543 次浏览 • 2021-07-01 11:16 • 来自相关话题

2021年7月1日,是我们伟大的中国共产党(the Communist Party of China)的百岁华诞。
带大家看一下有关我党的英文表达吧!the Communist Party of China (CPC)
中国共产党
members of the Communist Party of China 
党员
Chinese working class
中国工人阶级
Party Constitution
中国共产党章程
the Communist Youth League of China 
中国共产主义青年团
vanguard 
先锋队
Chinese People's Liberation Army
中国人民解放军
Party discipline
党的纪律
applicant for Party membership
申请入党者
probationary Party member
预备党员
take an admission oath
入党宣誓
The oath reads: 
It is my will to join the Communist Party of China, uphold the Party's program, observe the provisions of the Party Constitution, fulfill a Party member's duties, carry out the Party's decisions, strictly observe Party discipline, guard Party secrets, be loyal to the Party, work hard, fight for communism throughout my life, be ready at all times to sacrifice my all for the Party and the people, and never betray the Party.
誓词如下:
我志愿加入中国共产党,拥护党的纲领,遵守党的章程,履行党员义务,执行党的决定,严守党的纪律,保守党的秘密,对党忠诚,积极工作,为共产主义奋斗终身,随时准备为党和人民牺牲一切,永不叛党。

full Party member
正式党员
pay membership
交党费
Party branch
党支部
Party cell
党小组
Party cadres 
党员领导干部
democratic meetings
民主生活会
a Party standing of ... years 
党龄
Party Emblem and Flag
党徽党旗
The emblem of the Communist Party of China is a design of sickle and hammer.
中国共产党党徽为镰刀和锤头组成的图案。
The flag of the Communist Party of China is a red flag highlighted by a golden Party emblem on it.
中国共产党党旗为旗面缀有金黄色党徽图案的红旗。 查看全部
2021年7月1日,是我们伟大的中国共产党(the Communist Party of China)的百岁华诞。
带大家看一下有关我党的英文表达吧!the Communist Party of China (CPC)
中国共产党
members of the Communist Party of China 
党员
Chinese working class
中国工人阶级
Party Constitution
中国共产党章程
the Communist Youth League of China 
中国共产主义青年团
vanguard 
先锋队
Chinese People's Liberation Army
中国人民解放军
Party discipline
党的纪律
applicant for Party membership
申请入党者
probationary Party member
预备党员
take an admission oath
入党宣誓
The oath reads: 
It is my will to join the Communist Party of China, uphold the Party's program, observe the provisions of the Party Constitution, fulfill a Party member's duties, carry out the Party's decisions, strictly observe Party discipline, guard Party secrets, be loyal to the Party, work hard, fight for communism throughout my life, be ready at all times to sacrifice my all for the Party and the people, and never betray the Party.
誓词如下:
我志愿加入中国共产党,拥护党的纲领,遵守党的章程,履行党员义务,执行党的决定,严守党的纪律,保守党的秘密,对党忠诚,积极工作,为共产主义奋斗终身,随时准备为党和人民牺牲一切,永不叛党。

full Party member
正式党员
pay membership
交党费
Party branch
党支部
Party cell
党小组
Party cadres 
党员领导干部
democratic meetings
民主生活会
a Party standing of ... years 
党龄
Party Emblem and Flag
党徽党旗
The emblem of the Communist Party of China is a design of sickle and hammer.
中国共产党党徽为镰刀和锤头组成的图案。
The flag of the Communist Party of China is a red flag highlighted by a golden Party emblem on it.
中国共产党党旗为旗面缀有金黄色党徽图案的红旗。

#阅读2021#2021年第2季度读书计划

读书计划zkbhj 发表了文章 • 0 个评论 • 2369 次浏览 • 2021-03-19 10:12 • 来自相关话题

2021年第2季度读书计划时间跨度:4、5、6三个月

第2季度精读书目表(总)
《价值》张磊(技能:投资理财)(本书来源:豆瓣财经类榜单)《架构师修炼之道》[美] Michael Keeling(技术:技能成长)(本书来源:主动检索架构师类书籍)《Dart编程语言》【美】Gilad Bracha (技术:技能成长)(本书来源:主动检索Flutter编程语言)《魔道祖师》(第二部)墨香铜臭(小说:陈情令原著小说,修仙类型)(本书来源:看完电视剧《陈情令》读原著)《魔道祖师》(第三部)墨香铜臭(小说:陈情令原著小说,修仙类型)(本书来源:看完电视剧《陈情令》读原著)《魔道祖师》(第四部)墨香铜臭(小说:陈情令原著小说,修仙类型)(本书来源:看完电视剧《陈情令》读原著)《定投十年财务自由》银行螺丝钉(技能:投资理财)(本书来源:豆瓣财经类榜单)《启示录》 [美] Marty Cagan(技能:产品思维)(本书来源:豆瓣产品类榜单)《重来3:跳出疯狂的忙碌》[美] 贾森·弗里德 / [丹] 戴维·海涅迈尔·汉森(技能:工作方法效率提升)(本书来源:豆瓣管理类榜单) 《如何投资数字货币》王博、周朝辉、邹来辉等(技能:投资理财)(本书来源:朋友推荐)已完成:2021年4月7日《图解区块链:神一样的金融科技与未来社会》徐明星(技能:投资理财)(本书来源:朋友推荐)《征服市场的人:西蒙斯转》(美)格里高利·祖克曼(技能:投资理财&人物传记)(本书来源:京东图书榜)《数字货币交易盈利策略》济卿(技能:投资理财)(本书来源:书店发现)《和谐交易1:利用金融市场的自然秩序赢利》斯科特M.卡尼(技能:投资理财)(本书来源:网络课程推荐)《了凡四训》[明]袁了凡(智慧:修身养性)(本书来源:老师推荐)《数字货币蓝皮书(2020)》朱嘉明,李晓 (见识:了解数字货币发展趋势)(本书来源:领域推荐)已完成:2021年5月20日《新货币战争》诺伯特·海林 著(见识:了解数字货币发展趋势)(本书来源:领域推荐)《财务自由第一课:提前过想过的生活》帅健翔(技能:投资理财)(本书来源:书店发现)已完成:2021年5月3日《心》 [日] 夏目漱石(智慧:人性人心)(本书来源:书店发现)已完成:2021年5月2日《白马山庄迷案》 [日] 东野圭吾(小说:悬疑推理)(本书来源:书店发现)已完成:2021年5月23日《把时间当朋友》李笑来(技能:投资理财)(本书来源:分类推荐)《毒笑小说》 [日] 东野圭吾(小说:悬疑推理)(本书来源:榜单推荐)已完成:2021年5月28日《未来IT图解:区块链》 [日]森川梦佑斗(技术:区块链)(本书来源:书店发现)已完成:2021年6月6日《硅谷钢铁侠:埃隆·马斯克的冒险人生》 [美] 阿什利·万斯(人物传记)(本书来源:书店发现)《偷窥一百二十天》蔡骏(小说:悬疑推理)(本书来源:榜单推荐)已完成:2021年06月30日
 
本季度书店粗读书目:
《金融科技:大数据、区块链和人工智能的应用与未来》 西西弗书店颐堤港店 2021年3月28日《一本书读懂数字货币》 西西弗书店颐堤港店 2021年4月18日(不建议购买阅读,太基础,了解常识即可)GET到的知识点:凯恩斯创立的宏观经济学与弗洛伊德所创的精神分析法和爱因斯坦发现的相对论一起并称为二十世纪人类知识界的三大革命。《文明、现代化、价值投资与中国》西西弗书店颐堤港店 2021年4月18日(不建议购买阅读,只是一些文章摘录和观点阐述,了解常识即可)《基金投资者养成笔记 最美的66位投资者来信》西西弗书店颐堤港店 2021年5月16日(建议基金小白可以拿来读一读,很容易感同身受,都是基金入门者逐步提升技能的过程记录) 查看全部
2021年第2季度读书计划时间跨度:4、5、6三个月

第2季度精读书目表(总)
  1. 《价值》张磊(技能:投资理财)(本书来源:豆瓣财经类榜单)
  2. 《架构师修炼之道》[美] Michael Keeling(技术:技能成长)(本书来源:主动检索架构师类书籍)
  3. 《Dart编程语言》【美】Gilad Bracha (技术:技能成长)(本书来源:主动检索Flutter编程语言)
  4. 《魔道祖师》(第二部)墨香铜臭(小说:陈情令原著小说,修仙类型)(本书来源:看完电视剧《陈情令》读原著)
  5. 《魔道祖师》(第三部)墨香铜臭(小说:陈情令原著小说,修仙类型)(本书来源:看完电视剧《陈情令》读原著)
  6. 《魔道祖师》(第四部)墨香铜臭(小说:陈情令原著小说,修仙类型)(本书来源:看完电视剧《陈情令》读原著)
  7. 《定投十年财务自由》银行螺丝钉(技能:投资理财)(本书来源:豆瓣财经类榜单)
  8. 《启示录》 [美] Marty Cagan(技能:产品思维)(本书来源:豆瓣产品类榜单)
  9. 《重来3:跳出疯狂的忙碌》[美] 贾森·弗里德 / [丹] 戴维·海涅迈尔·汉森(技能:工作方法效率提升)(本书来源:豆瓣管理类榜单) 
  10. 《如何投资数字货币》王博、周朝辉、邹来辉等(技能:投资理财)(本书来源:朋友推荐)已完成:2021年4月7日
  11. 《图解区块链:神一样的金融科技与未来社会》徐明星(技能:投资理财)(本书来源:朋友推荐)
  12. 《征服市场的人:西蒙斯转》(美)格里高利·祖克曼(技能:投资理财&人物传记)(本书来源:京东图书榜)
  13. 《数字货币交易盈利策略》济卿(技能:投资理财)(本书来源:书店发现)
  14. 《和谐交易1:利用金融市场的自然秩序赢利》斯科特M.卡尼(技能:投资理财)(本书来源:网络课程推荐)
  15. 《了凡四训》[明]袁了凡(智慧:修身养性)(本书来源:老师推荐)
  16. 《数字货币蓝皮书(2020)》朱嘉明,李晓 (见识:了解数字货币发展趋势)(本书来源:领域推荐)已完成:2021年5月20日
  17. 《新货币战争》诺伯特·海林 著(见识:了解数字货币发展趋势)(本书来源:领域推荐)
  18. 《财务自由第一课:提前过想过的生活》帅健翔(技能:投资理财)(本书来源:书店发现)已完成:2021年5月3日
  19. 《心》 [日] 夏目漱石(智慧:人性人心)(本书来源:书店发现)已完成:2021年5月2日
  20. 《白马山庄迷案》 [日] 东野圭吾(小说:悬疑推理)(本书来源:书店发现)已完成:2021年5月23日
  21. 《把时间当朋友》李笑来(技能:投资理财)(本书来源:分类推荐)
  22. 《毒笑小说》 [日] 东野圭吾(小说:悬疑推理)(本书来源:榜单推荐)已完成:2021年5月28日
  23. 《未来IT图解:区块链》 [日]森川梦佑斗(技术:区块链)(本书来源:书店发现)已完成:2021年6月6日
  24. 《硅谷钢铁侠:埃隆·马斯克的冒险人生》 [美] 阿什利·万斯(人物传记)(本书来源:书店发现)
  25. 《偷窥一百二十天》蔡骏(小说:悬疑推理)(本书来源:榜单推荐)已完成:2021年06月30日

 
本季度书店粗读书目:
  1. 《金融科技:大数据、区块链和人工智能的应用与未来》 西西弗书店颐堤港店 2021年3月28日
  2. 《一本书读懂数字货币》 西西弗书店颐堤港店 2021年4月18日(不建议购买阅读,太基础,了解常识即可)GET到的知识点:凯恩斯创立的宏观经济学与弗洛伊德所创的精神分析法和爱因斯坦发现的相对论一起并称为二十世纪人类知识界的三大革命。
  3. 《文明、现代化、价值投资与中国》西西弗书店颐堤港店 2021年4月18日(不建议购买阅读,只是一些文章摘录和观点阐述,了解常识即可)
  4. 《基金投资者养成笔记 最美的66位投资者来信》西西弗书店颐堤港店 2021年5月16日(建议基金小白可以拿来读一读,很容易感同身受,都是基金入门者逐步提升技能的过程记录)