3.设计短连接系统
0.设计news feed的api选择返回协议一般是使用json来进行返回
设计翻页
选择第二种,因为第一种,万一有插入,再次下滑就会看到已经看过了的内容
如何判断没有下一页的内容
就是多取一个值,去得到就进行返回,作为next,不然就是null,没有下一个
如何设计@提及到其他人直接使用http抄连接
缺点
js跨域攻击
url进行修改,从at name变成at uid,就要全部进行重写
设计短连接分析4s分析法
场景
计算qps,思考需要的容量,计算顶峰对多的qps,然后计算一年的就可以得到容量
主要功能
把长链接转换为短连接
短连接恢复为长连接 ,并且使用301重定向跳转
询问
长链接和短连接是不是11对应
是不是太久就要释放
需要设计什么
需求
qps
日活100M,平均1天可以求出0.1条
计算写入w,1100*0.1/86400 =100
计算读取,一天读取一条,那就是2k
计算一年存放的大小1000.11100 =1G
Service服务只需要一个短连接服务
主要是设计接口的api,还有返回方式
需要两个api,讴歌enc ...
2.设计秒杀系统
1.场景
商家创建秒杀活动
进行ing配置
用户
秒杀页面
抢购
下单
支付
2.服务
抢购模块
库存模块
订单模块
支付模块
存储商品信息表
id
价格
name
库存信息表
商品id
库存id
活动id(与秒杀活动对应)
数量
锁定(支付还没有付款的)
秒杀活动表
秒杀id
商品id
价格
数量
订单信息表
订单id
用户id
商品id
活动id
是否付款
秒杀活动的业务逻辑扣减库存使用的乐观锁,如果够才进行相减
12UPDATE `stock_info` SET stock = stock - 1WHERE commodity_id = 189 AND seckill_id = 28 AND stock > 0;
使用事务操作
开启事务
锁住数据,for update
再次进行减少
commit
数据预热
提前把数据加入到redis,直接通过redis来进行判断数据
活动开始的时候,设置前缀,活动id+商品id
总体流程
读redis缓存
redis进行减少一
锁定数据库的库存,然后创建订单
付款
最后减少订单
读取还有判断是两 ...
1.设计news feed
1.设计新闻feed参考上面的4s法则
pull模式
主要思路就是进行拉取最新的朋友动态,然后进行排序
1231.数据库读取所有的好友动态,然后k路排序,选择最新的100条返回2.写入的时候直接进行写入
总体流程图如下
缺陷
n次db查询太慢了,
push模式用户推送过来,不要自己去拉
这样就要进行修改schema,加入一个toid,contentid,
分析
这样就会直接一次查询id,然后排序就行,但是写入就要多次写入
缺陷
插入太多
2.scale优化加入更多功能,like,点赞
优化pull的局限性可以加入到redis缓存,作为直接进行提取,ncidb直接访问,n次的cache
cache缓存自己的最近news feed,不必要每次都进行排序
解决push的局限性插入到disk还好,但是有僵尸粉太多了,也会写入的,所以可以直接不用写入他们,让他们来进行拉取操作
优化可以是明星不用push,直接使用pull操作,不然太多了
总结
4s法则
查询需要的场景和具体功能,计算qps
然后分析主要有的服务
之后输出储存结构
最后是优化方案
香港开户
香港银行开户1.简介在7.27号特种兵式旅游去香港来进行开户,主要开了以下几个账户
中银香港
livi银行
za银行
富途牛牛
失败的有:汇丰银行
2.事前准备通用物品:
身份证
港澳通行证
过关小条
1k港币
住址证明(可选,如果使用的是身份证地址就不需要)
手机开通境外短信功能,避免接受不了香港短信(可以直接打10000来帮忙开通)
购买境外流量(我使用的是oppo的境外流量,12元10G,不过感觉500m之后就被限速了),可以直接开通境外漫游,这样就可以直接使用,一天25元封顶。
2.1中银香港提前去中银香港公众号来进行预约开户,最少提前两天。
提前下号app:
中银香港(开户时需要进行填写资料,要在app上面填写)
boc pay(可以当做云闪付在内地使用)
推荐网点:
太子分行
土瓜湾分行
网红中港城
奥海城二期
尖沙咀分行
可以多选几个作为备注。
我使用的是土瓜湾分行
2.2汇丰银行汇丰我也是在汇丰香港微信公众号进行预约申请的,汇丰我预约了之后,过几天,会有客户经理打电话再次询问你开户情况,然后提醒你带资料。之后还有一个电话会来商量最后预定的时间。
3.开户 ...
sovits训练教程
简介so-vits-svc/README_zh_CN.md at 4.1-Stable · svc-develop-team/so-vits-svc · GitHub
歌声音色转换模型,通过SoftVC内容编码器提取源音频语音特征,与F0同时输入VITS替换原本的文本输入达到歌声转换的效果。同时,更换声码器为 NSF HiFiGAN解决断音问题。
训练流程1.数据集处理1.1收集数据集以b站直播为例:
打开up主的直播回放列表乃琳Queen的个人空间_哔哩哔哩_bilibili
选择单播一个人的
使用downkyi,Releases · leiurayer/downkyi (github.com)进行视频下载
1.2数据集预处理首先进行人声提取,我们主要训练的是人声
使用uvr5,Release v5.5 - UVR GUI · Anjok07/ultimatevocalremovergui (github.com),选择模型demucs(这个是facebook开元的去噪模型),进行数据集预处理
接下来是数据集进行分片,使用flutydee ...
cs144实验
lab0 :warm up第0张就是温习一下网络的相关知识。
1 Set up GNU/Linux配置环境就直接跳过了,按照官方教程就行
2 Networking by hand12345$ telnet cs144.keithw.org httpGET /hello HTTP/1.1Host: cs144.keithw.orgConnection: close
终端输入上述代码
新建一个会话进行观察
123$ netcat -v -l -n -p 9090$ telnet localhost 9090
3 Writing webget思路实现 apps/webget.cc 中的 get_URL().实现思路基本按照实验指导的提示和代码注释, 建立连接后发送 HTTP 请求报文. 然后打印回复报文的内容. 由于回复报文可能不止一个, 因此需要通过检查 EOF 标志位来判断是否接收完毕.
void get_URL(const string &host, const string &path) { / ...
warp配置clash
什么是WARPWARP是cloudflare公司推出的可以用来保护使用者隐私的一款服务,对于经常使用WARP来解锁vps流媒体的人再熟悉不过了。
WARP基于wireguard协议,使用UDP来传输数据,也就意味着在公网中的高QOS,但是WARP的ip相对比较干净,对外访问网络的出口 IP 被很多网站视为真实用户,可以用来解锁流媒体,谷歌学术等。
本文是基于作者的粗略了解成文,故很多地方可能会出现些许错误,若出现错误,还望各位海涵,并发邮件通知我,我会尽快修改。
如何使用直接去官网1.1.1.1进行下载,有安卓还有windows客户端。
获取24PB流量打开Telegram机器人,按要求输入命令进行获取warp+ unlimited license key Wrap+ Bot:https://t.me/generatewarpplusbot
更换密钥到客户端
windows连接windows连接需要使用clash进行前置连接登录,设置clash为tun模式,然后打开warp。
提取warp配置使用github上的wgcf这个来进行获取配置。warp本质上是基于wireguard协 ...
mmseg代码课
图像分割简介
主要介绍了图像分割发展历程。之前了解了一些图像分割,主要是使用调色板,png图像来进行保存图像。因此对每一个标签都需要绘画一种颜色。
为了让每一个像素值都是一个类别,需要使用膨胀卷积,保存图像不变,输出 的是图像,不是类别
因此在训练的时候,需要不仅仅写cfg,还需要再写dataset,这个是核心函数,定义颜色,还有类别,分割的显示
1234567891011121314151617181920212223# 同济子豪兄 2023-2-15from mmseg.registry import DATASETSfrom .basesegdataset import BaseSegDataset@DATASETS.register_module()class WatermelonDataset(BaseSegDataset): # 类别和对应的可视化配色 METAINFO = { 'classes':['red', 'green', 'white', ...
mmdet代码实战
MMDetection代码实战这一届主要讲解了,如何构建cfg,如何在目标检测上设置自己的配置文件。主要的思维导图如下
1.安装直接跳过
2.设置配置文件我们首先设置metainfo,因为只有一个猫类,所以我们只写猫,还有类别是1,那么head头输出就是1,然后设置dataset,首先是设置metainfo,然后就是设置json文件,还有iimg的文件,之后就是设置学习率,还有一些保存checkpoint的配置。
为了验证模型的数据对不对,我们使用自定义代买来进行检查,传入到cfg,之后吧dataset进行可视化
12345678910111213141516171819202122232425262728293031323334353637383940# 现在是测试cfg对不对的from mmdet.registry import DATASETS,VISUALIZERSfrom mmengine.config import Configfrom mmengine.registry import init_default_scopeimport matplotlib.pyplot ...
mmpretrain实战
mmpretrain实战
主要讲解了安装,还有使用教程.安装教程直接参考官网.下面讲解一下mmpretrain使用
实战教程2.1简单使用我们可以直接从定义好的模型来进行推理,首先list_model可以列出所有的分类,然后通过关键字可以识别出来resnet所有的模型,然后我们通过get_model,输入关键字就可以得到模型,之后,我们通过使用inference来进行传入模型,还有ckp,还有图形就可以直接来进行推理.
2.2自定义使用首先整个mmlab都是通过使用cfg来进行配置的,所以我们如果要进行自己的resnet50配置,我们可以从官网的cfg来进行参考.
首先是模型,模型分为backbone骨干网络,head就是输出头,使用neck来进行连接网络.然后最后的loss,实在模型里就定义号了,使用的是topk
12345678910111213141516171819# model settingsmodel = dict( type='ImageClassifier', backbone=dict( type='ResNe ...