隐含词根记忆高中单词成语记忆单词

新浪广告共享计划>
广告共享计划
隐含词根(成语系列之三)
隐含词根成语系列之三
一线希望系列
汉语的“一线希望”,在英语中对应的说法是:a gleam of hope或a glimmer of
hope. gl-是个来自中世纪的隐含词根,具有‘光’的含义。
阴沉的,阴郁的(“月”表含义,“阴”不是黑,“阴”是有光,微光而已,“月”表微光,“日”表强光,才有汉字的“阴/阳”之分)。&
光荣,荣誉&&&&&&&
glorious光荣的
glow发光,发热
glamour (魔鬼假扮耶稣,在夜晚发光迷惑信徒) n.魅力,魔力 vt.迷惑
glitter(金属)闪光& 是金子总会发光的。
glare 眼中愤怒的光 glare at
glance 有意识一瞥
无意识一瞥&&&
exercise U4-2
8000词汇:
gleam一丝光线, 瞬息的一现
glimmer闪烁,闪光
glassy象玻璃的,(透光的)
We were sailing on a glassy sheet of
water.我们在明亮如镜的水面上航行。
glossy有光泽的,平滑的
Our cat has glossy black fur. 我们的猫的毛皮又黑又亮。
闪烁,发光&
迷迷糊糊系列
汉语“迷迷糊糊”或“头晕眼花”,英语可以翻译为:confused, muddled或dazed.
什么决定了daze的含义呢?-aze是一个隐含词根,表示‘迷惑’,‘头晕’,‘看不清楚的’的意思。同源单词有:
amaze 使吃惊
hazy 朦胧的, 烟雾弥漫的, 模糊的
I'm still hazy about it.我对此仍不清楚。
gaze注视,凝视(at)& 【助记】因为不理解才会注视一直凝视…
glaze呆滞;给…上光;给…上釉(gl有光的意思。)
His eyes glazed over from boredom. 他目光因烦恼而显得呆滞
dazed头晕眼花的。变体dizzy
I feel dizzy我感觉头晕。
颠簸前进系列
汉语的“颠簸前进”,英语可以翻译为:to bounce along或to jounce along.
-ounce这个来自中世纪的隐含词根,去有‘quick
movement快速运动’的联想意义。除此以外,还具有‘跳动’,‘拍打’的意思。
bounce(使)反跳, 弹起;& ~ back恢复元气。
The children were bouncing a ball.孩子们在拍皮球。
The patient bounced back to good health.病人很快痊愈了
flounce(常与away, about, off, out连用)暴跳
She flounced out of the house.她怒冲冲地离开了屋子
pounce突袭
Policemen pounced on the thieves.警察突然袭击窃贼。
trounce痛击
-nounce这个词根的意思=speak
loudly大声说,喊。这个词根的来源是no=noise声音,噪音。
announce宣布, 通告 (=make known)
denounce公然抨击, 谴责 【助记】de向下 + nounce 领导对着下属狂喊,批评。=to
condemn, criticize openly.
pronounce (=declare formally, officially正式地、官方地宣布)
pronounce发音&&&
good pronunciation发音好
mispronounce发音错误
renounce宣布放弃 【助记】re相反+ nounce 喊回来
He renounced his claim to the property. 他宣布正式放弃财产所有权。
喋喋不休系列
汉语“喋喋不休”,英语可以翻译为to chatter away, to rattle on, prattle,
tattle.为什么表示喋喋不休地单词,词尾都相似、相同呢?
-attle这两个隐含词根具有‘说闲言碎语’,‘打得粉碎’的意思。两个tt的重复,我们能发现什么呢?复写的辅音字母往往表示‘碎的’,‘小的’,无目的’的。
例如scribe写――&scribble无目的的写,潦草的写
&bubble小气泡,froth/foam大的泡沫。
batter打碎,猛打 【助记】bat打+tter重复不断的打
chatter喋喋不休的谈;(动物, 尤其是鸟类) 啁啾声
birds chattering in the trees. 鸟在树间啁啾地叫
clatter卡搭卡搭的响; 嘈杂的谈笑声
the clatter of the subway train.地铁列车的嘈杂
shatter 粉碎,打碎
The glass shattered when I dropped it.我把玻璃摔成了碎片。
Our hopes were shattered. 我们的希望破灭了。
scatter分散, 撒开, 驱散
The farmer scattered the corn in the yard for the hens.
农民把谷子撒在院子里喂鸡。
spatter溅污; 滴落
Hot grease spattered in all directions.热油向四面八方溅开来
tatter破布, 碎纸片; (pl) 破旧的衣服
prattle闲谈;空谈;像孩童般的天真谈话
rattle发出卡嗒卡嗒声, 喋喋不休
rattle snake喋喋不休的蛇?――响尾蛇
A train rattled along the track.火车喀嚓喀嚓地在铁轨上疾驶
tattle闲谈,扯淡。
尖酸刻薄系列
一个人如果喜欢指出别人的缺点,却用挖苦,‘猥琐’的方式说出来,那么这个人说话就是‘尖酸刻薄’的。例如“他男朋家里很rich但是长得却很sorry.”
“他找个人人品不错,就是海拔不够。”
这种说话方式最好的译文就是acrimonious 【助记】= acri尖锐 + mon警告 +
ious。用尖锐的语言警告别人。什么元素决定了acri表示尖锐的呢?当然是首字母A这个隐含词根。Α 来自于希腊字母α
alpha阿尔法&
A-尖角之形-所以有Alps&阿尔卑斯山有Angle角&(“A”的形象和中文“山”“角”“尖”的形象大同小异)
所以英文中许多以a开头词根,带有了尖的含义。
Angle 角(角都是尖尖的)
Anchor锚 【助记】anch=ang 锚都是两头有尖角。
Ankle 踝(可以弯曲成各个角度)
Acute尖锐的(目光);(疾病)急性的
Acme顶点,极致
Acupuncture针灸 【助记】=acu+punct +ure
&&&&&&&&&&&&&&&
punct表示‘扎’,‘打’& punch card打卡,punctual准时的
Ache疼痛;渴望【助记】被尖尖的针扎一下,当然会疼痛;渴望就是削尖了脑袋都像得到。
I ache all over.我浑身疼痛。
I am aching to join in the game.我渴望参加比赛。
Ax/Axe斧, (经费的)大削减
It is said that another 350 jobs were axed by the company
yesterday.
据说该 公司昨天又裁员三百五十名。
He claimed to be disinterested, but I knew he had an ax to
grind.他宣称无私利,但我知道他另有企图/别有用心。
Axis/Axes 轴; 轴线。the Axis(第二次世界大战时德、意、日组成的)轴心国
【助记】Ax小日本拿着尖尖的斧头is轴心国一伙的。
Acid酸的 【助记】尖酸刻薄,尖和酸是常常联系在一起的。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。[转载]隐含词根(成语系列之一)
一直忙于东圃‘小家’的装修和布置,没能及时更新‘大家’的学习空间,真是对不住那些常常光临我博客的学生朋友们。以后一定坚持每周放上去一些新的词汇学习内容,与大家分享。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&
隐含词根成语系列之一
鼾声如雷系列
汉语成语“鼾声如雷”,英文可以翻译为:to snore
thunderously.
sn-是个隐含词根,是来自中世纪英语的词首词素,具有breath-noise(呼吸声)的语义。
sn- 的第一个含义是‘与鼻子关有的呼吸动作’。
sneeze 打喷嚏
sniff 嗅,吸气;嗤之以鼻。
例句:sniffed the jasmine 嗅到了茉莉花味。
The critics sniffed at the adaptation of the novel to
film.评论家们对于把小说改编成电影不屑一顾。
sniffle (感冒时发生的)鼻塞,流鼻涕
snivel 流鼻涕;啜泣
snore打呼噜
snort(表示不耐烦、愤怒或高兴)用鼻子哼
例句:He snorted his disapproval.他哼着鼻子说出他的反对意见
snuff 鼻子气息
snuffed out the candles. 熄灭蜡烛
snuffle嗅,闻;带鼻音地说;急促地呼吸
snarl咆哮(带有浓重的鼻音)
The two dogs snarled at each other, and then started
两只狗对着狂吠,接着开始厮斗。
sneer冷笑, 讥笑, 嘲笑
James sneered at my old bicycle. He has a new one.
詹姆斯嘲笑我的旧自行车。他有一辆新的
snicker窃笑(捏着鼻子笑)=snigger
snub冷落;慢待
下列是名词与形容词
snotty-nosed流鼻涕的
snout猪鼻子
snuff-box 鼻烟盒
sn-第二个含义‘咬’
snack快餐,小吃。snack
bar小吃店【助记】咬一口,就去上课了。
snap 猛的咬断,折断;打响指&
常考短语:snapshot 快照;snap up抢购;争相拿取
【助记】争相抢购就是咬住不放。
snatch攫取;抢,夺 【助记】咬住别人的东西
sn-第三个含义‘鬼鬼祟祟的’
snake蛇;迂回前进
The river snakes through the valley. 河流蜿蜒流过山谷
a snake in the grass阴险伪善的朋友
sneak 鬼鬼祟祟的人, 偷偷摸摸做,
&美口&帆布胶底运动鞋【助记】是snake的动词形式,字母顺序改变。
smuggle 走私 【助记】sm是sn的变体。
smog烟雾 【助记】=smoke + frog
孔雀开屏系列
汉语孔雀开屏,让人联想甚是美丽,但无法找到四字英文对应,所以只可以描述为:The
peacock is spreading its fine tail feather to display its
sp-这个隐含词根具有‘伸展’,‘跨越’的语义;还具有‘向四周喷洒’,‘传播’的意思。
同源单词:
span (时间、空间)的跨越
a career that spanned 40
横跨峡谷的桥梁;&&&&&&&&
持续四十年的事业
spatter溅污;散落=splatter
spill溢出(水流出杯子,向四周蔓延)
splash溅, 飞溅, 斑点
spit 吐痰,喷出
spat 轻轻拍打,争吵(spit
at吐痰在别人脸上,当然发生争吵)
spout=spit out 喷出
split 裂开
sprawl四肢伸开;蔓延
bacteria sprawl细菌孳生;urban sprawl.城镇无计划扩展
spray &n.喷雾, 飞沫vt.喷射, 喷溅
sprinkle洒, 喷撒& sprinkler洒水车,
spurt 喷出,涌出
Blood spurted out from the wound.血从伤口涌出。
sprout 发芽,萌芽&【助记】= spring + out
春天长出绿芽。
信守诺言系列
汉语的“信守诺言”,英语可以翻译为:keep one’s
promise,stick to one’s word.
stick由三个基本意思1)n.棍子walking
stick拐杖;2)粘住,坚持;3)(把尖物)插入。能把这三个意思统一起来的就是st-这个隐含词根,表示‘站立’,‘固定’。1)可以站立的当然可以做棍子;2)固定在上面当然就粘住了,坚持了;3)把尖尖的棍子插入。
同源单词:
stand站立& &He stood
still他站着一动不动。
stare (~ at) 凝视, 盯着看
station车站;驻扎。
The sentinel was stationed on a hill.哨兵被派在山上站岗。
stationary固定的
stay保持&&&
Stay healthy保持健康(考研常考短语)
stable稳固的(静态)
steady同上(动态)& CPI is on the steady
increase. 消费物价指数正在稳步上升。
stiff 僵硬的,呆板的。& Tip the
waiter给侍者小费;stiff the
waiter拒绝给侍者小费(侍者太呆板,不想给他小费。)
stiffen 使僵硬,使坚定
stance(某些运动的)站姿;立场;态度
toughen the stance against western countries.
坚定了对待西方国家的立场。
standstill停止, 停顿
Work came to a standstill.工作完全停止了
standing常备的
a standing committee 常务委员会
staunch忠诚可靠的=faithful;坚定的&&
a staunch friend
steadfast 坚定不移的
China is steadfast to four basic
rules.中国坚定不移的遵守四项基本原则。
sturdy强健的, 结实的
a sturdy person强壮的人;sturdy furniture结实的家具。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。豆丁微信公众号
君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
隐含词根成语记忆单词)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口飞 2018-06 月记月记29成语为什么你只是相信别人的说法,而不亲自去验证一下呢?圭臬guī niè,是指土圭和水臬——古代测日影、正四时和测量土地的仪器,引申为某种事物的标尺、准则和法度;可以据此做出决定或判断。比喻准则、法度。善良和谦虚是永远不应令人厌恶的两种品德勇者愤怒,抽刃向更强者;怯者愤怒,却抽刃向更弱者技术C10K就是 Client 10000 问题,即「在同时连接到服务器的客户端数量超过 10000 个的环境中,即便硬件性能足够,依然无法正常提供服务」,简而言之,就是单机 1万个并发连接问题Nginx 禁 IP`nginx.conf` 文件,在 http 配置节内加:`deny 1.2.3.4;``deny 91.212.45.0/24;`prometheus 简介开源监控系统。灵活的查询语言(PromQL)。采用 http 协议的 pull 模式拉取数据。prometheus 基础结构由 server, client, push gateway, exporter, alertmanager 等核心组件构成。Prometheus server 用于抓取和存储数据。
可以配置告警规则,将 alert 推送到 Alertmanager。Client libraries 可以用来连接 server 并进行查询等操作。Push gateway 用于批量、短期的监控数据的汇总节点。exporter 用于不同场景下的数据收集,。
node_exporter:收集主机信息 。
mongodb_exporter:收集 MongoDB 信息 。Alertmanager 收到警告时,可以聚合、去重、降噪,最后发送警告。windows 设置变量# 不需要用单、双引号括起来set XX=root:admin@(localhost:3306)/echo %XX%数据库使用索引扫描来排序explain 结果中 type 列的值为 index 表示使用了索引扫描来做排序。扫描索引本身很快,只需从一条索引记录移动到相邻的下一条记录。如果索引不能覆盖所有查询的列,每扫描一条索引记录就回表查询一次对应的行。基本是随机I/O,按照索引顺序读取数据的速度通常要比顺序地全表扫描要慢。冗余和重复索引冗余索引是指在相同的列上按照相同的顺序创建相同类型的索引。应尽量避免,发现后立即删除。如有一个索引(A,B),再创建索引(A)就是冗余索引。尽量扩展已有索引而不是创建新索引。删除长期未使用的索引对于非常小的表,全表扫描更高效。对于中到大型的表,索引非常有效。对于超大型的表,建立和维护索引的代价随之增长,其他技术更有效,如分区表。JavaSpring Cachestarter:`spring-boot-starter-cache`注解:@CachePut、@Cacheable、@CacheEvict、@Caching。
根据结果排除用:`unless="#result.xx"`。`@CachePut` 需要返回实体,才会缓存。`@Caching` 组合多个注解策略。设置过时:配置 `RedisCacheManager`。英语词根`tin` 表示"拿住"`vid` 表示“分开”`serv` 表示“服务,保持”`charact` 表示"特性,品质"后缀`-ful` 表形容词,“有…的”`-istic` 表形容词,由-ist + -ic构成,表示“…的”28成语谦虚美德,过谦即诈能言不是真君子,善处方为大丈夫一时劝人以口,百世劝人以书我不如人我无其福,人不如我我常知足大意是要有一个好的心态,我不如人,就当做是命中没有,人不如我,要懂得珍惜。男无良友不知己之有过事非亲做,不知难处当面留一线,过后好相见话不能说的太狠,事不能做得太绝Linux内存 - swap 分区独占一个分区。物理内存不够用时,把一部分内存释放出来。被释放的空间可能来自很长时间没有操作的程序,其被临时保存到 Swap 分区中,等运行时,再从 Swap 分区中恢复到内存中。tmpfs是一种虚拟内存文件系统,而不是块设备。是基于内存的文件系统。虚拟内存虚拟地址空间的一部分映射到内存,其余都存储在硬盘上。访问的虚拟地址不在内存时,即存贮在硬盘中,虚拟地址随即被调入到内存。当系统内存紧张时,把不用的虚拟存储换出到硬盘。大小由 RM(Real Memory) 和 swap 组成。逻辑内存是站在进程角度看到的内存数据库索引数据结构和算法平衡二叉树,称为AVL树。B+Tree 中的 B 是指 balance,意为平衡。B+树 索引并不能找到一个给定键值的具体行,它只是找到数据行所在的页,然后把页读入到内存,再在内存中进行查找。m 叉树多路搜索树减少树的深度B+Tree 是其中一种B+Tree 结构所有的关键字(可以理解为数据)都存储在叶子节点(Leaf Page)。非叶子节点(Index Page)并不存储真正的数据。所有的叶子节点由指针连接。假设 B+Tree 的高度为 h,一次检索最多需要 h-1 次 I/O(根节点常驻内存)。树的高度一般比较小,通常不超过 3,`h = logmN`, M 通常较大,常常超过 100。维护索引要花费很大的代价,合理的创建索引尤为重要。索引“最左原则”`key(last_name, first_name, dob)`。索引首先根据第一个字段 `last_name` 排序。第一个相同时,再根据第二个字段 `first_name` 排序。第二个也相同时,再根据第三个字段 `dob` 排序。因此选择性更高的字段放到索引的前面。不用索引的情况:非独立的列“独立的列”是指索引列不能是表达式的一部分,也不能是函数的参数。`where id + 1 = 5` 无法自动解析这个表达式。前缀索引如果列很长,可以索引开始的部分字符,有效节约索引空间,提高索引效率多列索引和索引顺序在多个列上建立独立的索引并不能提高查询性能。因为 MySQL 不知道哪个索引的查询效率更好。5.0 之后的新版本会采用合并索引的策略。
将 `or` 变成 `union all`。当多个索引做 AND 查询时,一个包含所有相关列的索引要优于多个独立索引。当多个索引做 OR 查询时,对结果集的合并、排序等操作需要耗费大量的CPU和内存资源。
特别是某些索引的选择性不高,大量数据时,查询成本更高。
所以不如全表扫描。执行计划 Extra 字段出现 `Using union` 时,要注意。避免多个范围条件如:`where login_time & '' and age between 18 and 30`。MySQL 可以使用 login_time 列的索引或者 age 列的索引,但无法同时使用它们。覆盖索引包含或者说覆盖所有需要查询的字段的值,不需要回表查询英语词根`monit` 表示“警告”`equ` 表示"相等"27成语月满则亏,水满则溢白骨露于野,千里无鸡鸣内战无英雄以财交者,财尽而交绝;以色交者,色落而爱移;以诚交者,诚至而谊固!因钱财而结交的,钱财尽交情就绝了;因美色而结合的,容颜象鲜花凋谢衰落,情感也就改变了;因真诚而结交的,两人可以坦诚相待,友谊就会永固。少实胜虚,巧不如拙百战百胜不如无争,万言万中不如一默数据库查询优化方式重新定义表的关联顺序。根据索引优化`MIN()`和`MAX()`函数。提前终止查询(如:`Limit`)。优化排序(读取所有的数据行,根据给定的列排序)。查询执行引擎完成解析和优化后,生成对应的执行计划,查询执行引擎根据执行计划给出的指令逐步执行得出结果。通过调用存储引擎实现的接口完成,这些接口被称为handler API。查询过程中的每一张表由一个handler实例表示。在优化阶段创建handler实例。
获取表的相关信息,包括列名、索引统计信息等。返回结果给客户端如果查询缓存打开且可被缓存,将结果存放到缓存中。结果集返回是一个增量且逐步返回的过程。
有可能在生成第一条结果时,就开始返回了。
服务端无须存储太多结果而消耗过多内存,客户端也第一时间获得返回结果。整个查询分为 6 步客户端发送查询请求。服务器首先检查查询缓存,如果命中,则立刻返回缓存中的结果。
否则进入下一阶段。服务器进行SQL解析、预处理。再由优化器生成对应的执行计划。MySQL根据执行计划,调用存储引擎的API来执行查询。将结果返回,同时缓存结果。性能优化建议不要听信关于优化的“绝对真理”,而应该实际通过测试验证执行计划以及响应时间。表设计与数据类型优化数据类型遵循小而简单的原则就好,越小的数据类型通常会更快,占用更少的磁盘、内存,处理时CPU周期更少。几个注意的技巧1NULL 改为 NOT NULL 不会性能提升;如果创建索引,应该将列设置为 NOT NULL。整数类型指定宽度,如INT(11),没有任何卵用(4 字节存储)。UNSIGNED 不允许负值,使正数的上限提高一倍。存储财务数据时,可以使用 BIGINT。避免浮点数计算不准确和 DECIMAL 精确计算代价高的问题。TIMESTAMP 使用 4个 字节存储空间,DATETIME 使用 8个 字节存储空间。
TIMESTAMP 只能表示 1970 - 2038年,比 DATETIME 表示的范围小,且因时区不同而不同。几个注意的技巧2列不要太多。存储引擎的API工作时需要行缓冲格式拷贝数据,然后在服务器层将缓冲内容解码成各个列,转换过程代价非常高。
如果列太多而实际使用的列又很少,会导致CPU占用过高。大表 ALTER TABLE 非常耗时,大部分修改表操作是用新的结构创建一个张空表,
从旧表中查出所有的数据插入新表,然后再删除旧表。
当内存不足而表又很大,而且还有很大索引的情况下,耗时更久。英语前缀`di-` 来自 `dis-`,表示“分开”,引申“无,没有,表相反等”。`g,l,m,r,s,v` 前缩写`over-` 表示“过度,过分;在上”,或表整个词根`cept` 表示"拿,抓,握住"`stinct` 表示"刺,刺激"`techn` 表示"技术,能力"`monstr` 表示“显示”`script` 表示"写"`popul` 表示"人民"`vari` 表示"变化"`per` 表示“尝试”`dom` 1.表示"屋,家"; 2.表示"统治"后缀`-logy` 表名词,“科学,学科”`-ar` 表形容词,“…的”`-ety` 表名词,“状态”`-ative` 表形容词,"...的"26成语使用权力容易,难就难在晓得什么时候不去用它把猥亵[xiè]说成没有把握好自己的行为,那杀人了只是手抖没拿住刀呗?久利之事莫为,众争之地莫往门为小人而设,锁乃君子之防硬弩弦先断,钢刀刃自伤男子无志纯铁无钢,女子无志烂草无瓤[ráng]JVMG1 用时`[Times: user=0.00 sys=0.00, real=4.13 secs]`。表示 JVM 经历了长达 4s 多的 STW。经验:`real & user + sys` 的情况,大概率是内存的 swap 和密集型的 IO 造成的。频繁 IO 会引起长时间 GC在发生 GC 时,需要把相关数据写入 GC 日志,在写期间,因为 write() 系统调用导致暂停。这种写操作,即使在异步、缓存IO或非阻塞IO模式下,还是有可能因为系统机制(比如页面缓存的回写),导致长时间阻塞。解决:将 Java 日志文件移到单独的或高性能的磁盘驱动器,例如 SSD, tmpfs。使用 G1`-XX:+UseG1GC`Linux页页是计算机管理存储器的逻辑块,硬件及OS往往将主存和磁盘存储区分割为连续的大小相等的块,每个存储块称为一页(许多OS中,页的大小通常为4K)。主存和磁盘以页为单位交换数据。当程序要读取的数据不在主存中时,会触发一个缺页异常,此时系统会向磁盘发出读盘信号,磁盘会找到数据的起始位置并向后连续读取一页或几页载入内存中,然后一起返回数据库MySQL 架构三层最上层为**客户端层**。
连接处理、授权认证、安全。中间一层为**核心服务**。
查询解析、分析、优化、缓存、内置函数。
存储过程、触发器、视图。最下层为**存储引擎**。
数据存储和提取。
和 Linux 的文件系统类似。中间服务层通过API与存储引擎通信,
这些API屏蔽不同存储引擎间的差异。客户端/服务端通信协议半双工:在任一时刻,要么是服务器向客户端发送数据,要么是客户端向服务器发送数据,不能同时发生。
一端开始发送消息,另一端要接收完整个消息才能响应它,
所以无须将消息切成小块独立发送,也不能进行流量控制。客户端查询太大,服务端会拒绝接收。服务器响应客户端请求时,客户端必须完整的接收整个返回结果,而不能只取前面几条。查询缓存缓存存放在一个映射表。
通过哈希值索引,查询本身、要查询的数据库、客户端协议版本号等信息计算得来。
所以两个查询在任何字符上的不同(例如:空格、注释),都会导致缓存不会命中。查询中包含任何用户自定义函数、存储函数、用户变量、临时表、mysql 库中的系统表,
其查询结果都不会被缓存。
如函数`NOW()`或者`CURRENT_DATE()`
再比如`CURRENT_USER`或者`CONNECION_ID()`缓存失效查询中涉及的每个表,发生变化,那么和这张表相关的所有缓存数据都将失效。
如任何写操作。如果查询缓存非常大或者碎片很多,可能带来很大的系统消耗。
读操作同样:之前检查,命中缓存;执行后,存入缓存。缓存失效-设计优化用多个小表代替一个大表,注意不要过度设计。
批量插入代替循环单条插入。
合理控制缓存空间大小,一般几十兆比较合适。
通过`SQL_CACHE`和`SQL_NO_CACHE`控制查询是否进行缓存。不要轻易打开查询缓存,如:写密集型应用。如需要:将`query_cache_type`设置为`DEMAND`,只有`SQL_CACHE`的查询才会走缓存。语法解析和预处理通过关键字将SQL语句进行解析,并生成解析树。
通过语法规则来验证和解析。
是否使用了错误的关键字或者关键字的顺序是否正确。预处理:根据MySQL规则进一步检查解析树是否合法。如检查要查询的数据表和数据列是否存在。查询优化优化器将语法树转化成查询计划。多数情况下,一条查询可以有很多种执行方式,最后都返回相应的结果。优化器的作用就是找到这其中最好的执行计划。查询成本MySQL使用基于成本的优化器,尝试预测一个查询使用某种执行计划时的成本,并选择其中成本最小的一个。可以通过查询当前会话的`last_query_cost`的值来得到其计算当前查询的成本。`show status like 'last_query_cost'`,值为需要做 N 个数据页的随机查找。错误执行计划的原因统计信息不准确、不会考虑不受其控制的操作成本(用户自定义函数、存储过程)、MySQL选择它认为成本小的,但成本小并不意味着执行时间短25Linuxselect, poll, epollselect 最大连接数:32 位是 32*32=1024,64 位是 32*64=2048。poll 本质与 select 没区别,但没有限制,是基于链表存储。epoll 上限为 1G 内存 10万 左右,2G 则为 20万左右。网络重传`fast retransmission` 快速重传。`retransmission` 超时重传。很少的丢包重传足以对性能造成巨大影响。重传率 `& 0.1%` 就值得采取措施。实际上 `& 0.01%` 的重传率很难消除。暂停帧-介绍Pause Frame。由 IEEE 802.3x 定义。当交换机的缓冲区快要填满时,给服务器发一个 ~,避免溢出丢包,从而避免重传。~ 的 `pause_time` 指定服务器等待的时间。数据提前消化完,发一个 `pause_time=0` 的帧通知服务器不要等了。暂停帧-注意主机和交换机都要配好,否则不会起效。其 Destination MAC 固定是 `01-80-C2-00-00-01`。查看: 详情 -& MAC 头 -& `MAC Control` -& `Pause: 0x001, Quanta: 6000`。
暂停时间为 6000 quanta (1quanta = 512bit 时间)。其是双向的,服务器也可以向交换机请求暂停。可以去 Wireshark 下示例包。查看会话数Statistics -& Conversations。可看 TCP、UDP 等会话数和详情。多个 TCP 连接可以提高效率。
但太多时,连接要消耗资源。
抢占同一个链路,会增加丢包率。设置几个 TCP 连接需要一个一个试。开始启动一个连接,如果发送窗口是 65535B。
发送 65535B 在途字节数,耗光发送窗口,会提示 `[TCP window Full]`。
此时需要等待接收方的 `Ack`,才能继续传。
说明带宽没有被完全利用。
应该增加发送窗口,或增加连接数。英语词根`stant` 表示"站,立"`ver` 表示"真实"22成语妙药难医冤孽病,横财不富穷命人。既知莫望,不知莫向这里“望”是埋怨、责怪的意思;“问”是干预的意思。意:事情已经有了结果,就不要再埋怨别人;
如果对情况不了解,就不要对别人横加干预。穷莫失志,富莫癫狂天欲其亡,必令其狂隔行莫贪利,久炼必成钢布得春风有夏雨,哈得秋风大家凉不经过春风、不经过夏雨,怎么会有凉爽的秋天平静所有人的思绪。不怕问到,只怕倒问对于某个敏感问题,不怕问到,就怕人家阴着、倒着问你。晴带雨伞,饱带饥粮满壶全不响,半壶响叮当是说有才能或者知识的人往往不宣扬,半吊子经常要高调宣扬自己有什么会什么。Javasynchronized String拼接的字符串不能做对象锁。需要用 `str.intern()` 做对象锁。Linux查看进程的线程 CPUtop -Hp &pid&统计进程的线程数ps hH p &pid& | wc -llscpu 查看CPU信息网络ping 巨帧`-f` 设置 DF 标志 (不分片),`-l` 表长度,`-n` 表次数。`ping &ip& -l 1472 -f -n 1` 可以。`ping &ip& -l 1473 -f -n 1` MTU 1500B 时不可以。
不用 `-f` 就可以,只是被分片。
是路由器回复 `需要拆分数据包`。`=1500` ICMP 头为 8B。MTU 丢包防火墙,三次握手时就会丢。网络拥塞,一段时间会恢复。MSS 1460B,`Len=1460`,算是比较大,可能是此原因。
可用 `ping &ip& -l 1472 -f` 测试,每次减小 `-l`。
前提是网络中没有禁用 **ICMP**。两端同时启用巨帧三次握手时,`MSS=8960B`,过不了中间网络设备。网络层 (IP) 携带 DF 标志(Don't fragment: Set) 表示**不分片**。分片只影响一点点性能。不分片丢包重传没用,会一直丢,像进入黑洞。巨帧携带 DF 标志,可能会被丢弃。ARP 和 TLB出现问题时,看 MAC 地址。`[TCP Spurious Retransmission]` 疑似重传。
对方发过来,收不到确认,重复发送,看 `Seq=x` 查找。启用 ARP 表这样主机才能持续使用 ARP 表里的老 MAC 地址,而不会使用新 MAC。TLB 传输负载均衡Transmit Load Balancing。特点:收包由一个网卡负责,发包分摊给所有网卡。多个网卡被绑定成一个 NIC Teaming,类型为 TLB 时出现。英语前缀`sub-` 表示“副手,下一级”`sur-` 表示“超过,在上面”词根`spons` 表示“承诺”`pris` 表示"拿住,抓住"21常识HIV 人类免疫缺陷病毒,即艾滋病HPV 人乳头瘤病毒高危型 ~ 可引起宫颈病变。有 HPV 免疫针,2000~3000,分三针打。尖锐湿疣-醋白试验3%~5% 醋酸溶液浸湿纱布,包绕或敷贴在可疑处表面,3~5分钟后揭去,典型的尖锐湿疣损害将呈现白色丘疹或疣赘状物,
而亚临床感染则表现为白色的斑片或斑点。对上皮细胞增生或外伤后初愈的上皮可出现假阳性结果。艾滋抗病毒治疗现免费艾滋病阻断药72 小时内,持续一个月。艾滋病检查-疾控中心免费搞笑我有一张双人床,但缺一个你技术ZAB 协议概要全称:Zookeeper Atomic Broadcast(Zookeeper 原子广播协议)。为**分布式协调服务**专门设计支持**崩溃恢复**和**原子广播**的协议。**主备模式**的系统架构来保持各个副本**数据一致性**。复制过程只需要 Follower 有一半以上返回 Ack 信息就执行提交。ZAB 模式Leader 可用时,进入**消息广播**模式,Leader 不可用时,进入**崩溃恢复**模式。在这两个模式之间切换。ZAB 消息广播是一个原子广播协议。客户端的写请求,全部由 Leader 接收,Leader 将请求封装成一个事务 Proposal,将其发送给所有 Follwer,如果超过半数 Follwer 成功响应,则执行 commit 操作(先提交自己,再发送 commit 给所有 Follwer)。ZAB 一些细节事务分配一个**全局唯一递增**的事务ID(ZXID),为保证事务顺序,按 ZXID 排序处理。在 Leader 和 Follwer 之间有一个消息队列,实现异步解耦。只能 Leader 接受写请求,即使 Follower 接受到客户端的请求,也要转发给 Leader。ZAB 崩溃恢复崩溃即:Leader 失去与过半 Follwer 的联系。Leader 选举要求:新的 Leader 拥有集群所有机器(ZXID 最大)的事务。ZAB 2 个原则已经在 Leader 提交的事务最终会被所有服务器提交。丢弃 Leader 提出/复制,但没有提交的事务。ZAB 数据同步崩溃恢复后,需要在正式工作之前(接收客户端请求),
Leader 首先确认事务是否被过半 Follwer 提交。当 Follwer 同步之后,Leader 将其加入到可用服务器列表中。ZAB ZXID64 位,
低 32 位递增,一个事务请求,+ 1 操作。
高 32 位,代表 Leader 服务器上取本地最大事务的 ZXID,
并从该 ZXID 中解析出对应的 epoch 值,然后对这个值加一(**崩溃恢复**时)。高 32 位代表 Leader 唯一性,低 32 代表 Leader 中事务的唯一性。Follwer 通过高 32 位识别不同的 Leader,简化**数据恢复**流程。当 Follower 连上 Leader 后,Leader 根据最后提交的 ZXID 和 Follower 上的 ZXID 进行比对,
比对结果要么回滚,要么和 Leader 同步。网络分片 MTUMaximum Transmission Unit。20世纪80年代,以 1500 字节作为**最大传输单位**。以 IP 为例,IP 头 20B,也就是说一个 IP 包最多 1480B 的数据。
即 UDP 1480B(off=1480*N,头 8B),TCP 1460B(TCP 头 20B)。分片 巨帧启用巨帧后 MTU 是 9000B。但经过 MTU 只有 1500B 字节的设备,还是被重新分片或丢弃。可通过 Path MTU Discovery 协议来探测路径最小的 MTU。
依靠 ICMP,会被很多设备禁用,不太可靠。需要人为的使每个 MTU 保持一致。分片 重组分片`off=xx,ID=yy`,把 ID 相同的分片按照偏移量进行重组。`More fragments=0` 的 Flag 表示最后一个分片。TCP 避免分片主动把数据分成小段,再交给网络层。最大的分段大小(MSS: Maximum Segment Size)。
相当于 MTU 减去 IP 头和 TCP 头。(MAC 头 14B)。
TCP Options 占用 12B。(如果存在的话)。
即:`MSS = MTU-20-20[-12] = ]`。UDP 没有 MSS 的概念数据全部交给网络层,所以可能被分片。分片和重组都会影响性能。TCP 适配 MTU三次握手时声明自己的 MSS 大小。但网络上有设备(如交换机) 的 MTU 比发送方和接收方的都小,会出问题。UDP 更适合语音通话忽视质量,追求速度。丢一些包只影响音质,却能保障流畅性。TCP 出现丢包就一定要重传,会带来延迟。英语前缀`ar-` 来自`ad`,表示"朝、向、去,强调". r 前同化为 ar-词根`licen` 表示"允许"`duct` 表示“引导,带来”`flat` 表示"吹"`pos` 表示"放"`fac` 表示"做,制作"`cap` 表示"拿,抓"`tut` 表示"保护,指导"`tens` 表示"伸展"`leas` 表示“松”`altern` 表示"其他的,改变状态"`par` 表示"准备;安置"`man` 表示"拿住"后缀`-wise` 表副词,"方向,状态"`-ile` 表形容词,"能…的"`-ial` 表形容词,"…的"20网络查看所有的会话Statistics --& Conversations。可以看到 TCP、UDP 等传输量用于判断程序通信方式RFC 972当接收方因为分片丢失而无法按时完成数据包的重组时。它可以放弃并回复一个超时消息。`Time-to-lime exceeded`。UDP 分片一个分片丢失,会导致所有分片都被重传一遍,效率极低。UDP 不能把大块数据先进行分段,所以易被网络层分片。所以建议:应用层控制发小数据包。TCP 分段机制可以把数据拆小后封装在多个包里,避免被网络层分片。重传 TCP 包的效率比重传分片高。
只需重传丢失的一个包(段) ,而不是所有包。JavaDubbo 注册 IP 不变1. 改 `/etc/hosts` // 阿里云迁移,没改 IP2. 协议写死 `&dubbo:protocol host="xx"/&`技术进程进程是应用程序的启动实例。拥有代码和打开的文件资源、数据资源、独立的内存空间。线程线程从属于进程,是程序的实际执行者。一个进程至少包含一个主线程。拥有自己的栈空间。进程和线程区别对操作系统来说,线程是最小的执行单元,进程是最小的资源管理单元。都是由操作系统管理。协程比线程更加轻量级的存在。一个线程也可以拥有多个协程。完全是由程序所控制(也就是在用户态执行)。不会像线程切换那样消耗资源。协程暂停和线程的阻塞是有本质区别的。协程的暂停完全由程序控制,线程的阻塞是由操作系统内核来进行切换。因此,协程的开销远远小于线程的开销。正则引擎DFA 自动机(Deterministic Final Automata 确定型有穷自动机)。NFA 自动机(Non deterministic Finite Automaton 不确定型有穷自动机)。DFA 自动机的时间复杂度是线性的,更加稳定,但是功能有限。NFA 的时间复杂度比较不稳定,但功能更加强大。JVMJVM 和 TCBJVM 通过操作系统内核中的 TCB(Thread Control Block) 模块改变线程的状态,需要耗费一定的 CPU 资源。英语前缀`co-` 表示"与...一起,一起",元音字母和 h 前缩写为 co-`ap-` 来自 ad, 表示“朝、向、去,强调”. p 前同化为 ap-词根`sens` 表示“感觉”`isol` 表示“岛屿”`place` 表示"放,地方"`hor` 表示“边界”`simil` 表示"相类似,一样"`pel` 表示"驱动,推"`reg` 表示"统治,规定"`od` 表示"路,走"`peri` 表示“周围,靠近”`reg` 表示“规则”`tens` 表示"伸展"`tract` 表示“拉,拖”后缀`ar-` 表形容词,"……的"19网络LSO 介绍Large Segment Offload(大段卸载)。当条件 `tcp.seq == xx` 过滤不出重传包的原始包时,用 `tcp.seq & xx` 过滤。
找原始包:计算 `(前包的seq + len) &= (被找包的seq + len)`。LSO 作用为了缓解 CPU 的压力,将一些工作外包给网卡。
625MB/s 的网络流量大约需要耗费 5GHz 的 CPU。传统的方式:应用层把产生的数据交给 TCP 层,
TCP 层再根据 MSS 大小进行分段(由 CPU 负责),
然后再交给网卡。启用 LSO 后:TCP 层把大于 MSS 的数据块直接传给网卡,
让网卡负责分段工作。LSO 抓包注意在发送方抓包相当于站在 CPU 的视角,看到的是分段前的大包;抓包时可能会看到“Len=2xxx”,Len 比较大。在接收方抓到的是分段后的小包。LSO 与巨帧的区别在启用巨帧(Jumbo Frame)的网络中大包不需要分段,发送方和接收方看到的都一样。LSO - Windows 配置网络连接 -& 以太网 -& 右击 -& 配置 -& 在网卡的**高级**属性中找。Intel(R) thrnet Connection I217-LM Properties。
=& Advanced
=& Large Send Offload V2 (IPv4)
=& 或“大量传输减负 V2 (IPv4)”RTT(往返时间)发包之后等到确认包到达。点击接收方的 Ack 包。
在内容里面[SEQ/ACK analysis]。
-& [The RTT to ACK the segment was: xx seconds]。多看几个包,以判断 RTT 是否稳定。拥塞窗口Congestion Window (cwnd)。增长方式是:先慢启动,再拥塞避免。
前者快,后者慢(一个RTT,加一个MSS)。[Bytes in flight]看发送方的包。内容 -& [SEQ/ACK analysis]。
[Bytes in flight: xx]。再看接收方 Ack 之后,发送方最后发的一个包。
就可计算 cwnd 每次加了多少。RFC 5681有多种计算 cwnd 方式,以下是其中一种:`cwnd += MSS*MSS/cwnd` cwnd=n 个 MSS。每收到一个 Ack,发送方就把 cwnd 增加 `MSS*MSS/cwnd`。当 Ack 频率非常高时,就接近 1MSS。当 Ack 频率非常低时,cwnd 增长也会过慢,此时需要提高接收方的 Ack 频率。
如关闭 LRO 。LROLarge receive Offload(大量接收卸载)。Linux:**ethtool** 命令关闭。开启会积累多个 TCP 包再集中处理,Ack 数就会少很多。如果遇上不太科学的 cwnd 算法,会导致 cwnd 上升过慢,影响性能。英语词根`rap` 表示“捕,夺”`mech` 表示“机器”`hist` 表示“看”后缀`-ism` 表示"具备某种性质"14成语提出正确的问题,往往等于解决了问题的大半炎凉世态,富贵更甚于贫贱;嫉妒人心,骨肉更甚于外人!有钱人对于世态的炎凉人情冷暖看的更透,因为有钱人经历了更多的坎坷;而骨肉之间的嫉妒心理比起外人来说更重,一个人可以忍受邻居比自己富有,却看不得兄弟比自己混的好。怕事忍事不生事自然无事;平心静心不欺心何等放心! 好话不在多说,有理不在高声!贫莫与富斗,富莫与官争!怪人不知理,知理不怪人。未富先富终不富,未贫先贫终不贫。治家信谗必疏其亲Linux递归创建目录mkdir -p aa/bb/cc递归复制cp -r dir-from dir-to获取文件类型file filename清屏 clear显示命令类型 type ls显示程序位置 which ls查看命令帮助 help cd显示命令手册 man cd显示适合的命令 apropos mongo命令别名查看所有别名 `alias`。创建别名 `alias zls='ls -l'`。删除别名 `unalias zls`。查看文件内容 less启动查看 `less filename`。上、下翻页 `Page Up` `Page Down`。首行,尾行 `g` `G`。查找关键字 `/keyword`, `n` 查看下一条。`h` 查看帮助。`q` 退出。排序 sort去重 uniq匹配 grep查看行、单词、字节数 wc查看文件结尾 tail键盘指令跳到行首 `ctrl + A`。跳到行尾 `ctrl + E`。前移一个单词 `alt + B`。后移一个单词 `alt + F`。清屏 `ctrl + L`。技术Nginx location基本语法 `location [=|~|~*|^~|@] pattern { ... }`。`=` 精确匹配 `xx/abcd` 和 `xx/abcd?xx`。`None` 同 `=`,还能匹配 `xx/abcd/xx`。`~` 正则、区分大小写,匹配 `xx/abcd` 和 `xx/abcd?xx`。`~*` 正则、不区分大小写。`^~` 与 `None` 类似,匹配成功,就停止。`@` 定义一个内部用的 Location 块。Nginx location 优先级写的次序不重要。按修饰符的优先级去匹配。顺序为(越小越高):1. `=`2. `None`
完全匹配 URI。3. `^~`4. `~` 和 `~*`5. `None`
只匹配 URI 头部。Nginx rewrite重定向,可加代理。示例:`rewrite /data/(.+)$ /$1`。设置请求头。示例:`proxy_set_header Host $`,重新设置请求头 `Host`。Nginx proxy_pass走代理,示例:`proxy_pass http://localhost:8096;`网络TCP Ack`Ack n` 表示期待 n 号包(期待下个 `Seq=n` 的包)。`Ack 3` 表示期待 `Seq=3` 号包。在途字节数在数据发送方抓到的包才能用来分析 ~ 。公式:`~ = Seq + Len - Ack`。Seq 和 Len 是上一个数据发送方的包,而 Ack 则是上一个数据接收方的包。计算时间只能在包之间算。计算拥塞点-方法可以简化为找出拥塞时刻的在途字节数(Fbs)。
先从 Wireshark 中找到一串重传包的第一个,
再根据该重传包的 Seq 找到其原始包,
最后计算该原始包发送时的 Fbs。计算拥塞点-找包Analyze --& Expert Information 查看重传的包,
过滤“tcp.seq == xx”,找到第一个选定,然后清除过滤,
见到上一个接收方的 `Ack` 包就可以计算了。计算拥塞点-取值应多次采样,取一个偏小的值。估算结束后,应该在系统中把窗口(Rw)限制在 ~ 以下。Windows =& KB 224829。13成语在知识领域,不思进取的人只配受到谴责和鄙视那些说某事不可能完成的人,不应该打断正在实际做事的人不走心的努力,都是在敷衍自己技术Let's Encrypt获取免费 SSL 证书Flink分布式数据流处理和批量数据处理的开源计算平台。流处理一般需要支持低延迟、Exactly-once保证,而批处理需要支持高吞吐、高效处理。Flink 是完全支持流处理,输入数据流是无界的;批处理被作为一种特殊的流处理,输入数据流被定义为有界的。JavaConcurrentHashMap采用锁分段技术,锁的粒度更精细一些,并发性能更好TreeSet二叉树实现,数据自动排好序,不允许放入null值类加载器方法ClassLoader:loadClass(name) 加载名为 name 的类。findClass(name) 查找名为 name 的类。findLoadedClass(name) 查找名为 name 已被加载过的类。defineClass(name, byte[], off, len) 将字节数组中的内容转换成 Java 类。JVM程序计数器指示程序执行哪一条指令,跟汇编一样。线程切换之后恢复到切换之前的程序执行的位置。方法返回地址方法执行后,返回之前调用它的地方动态连接指向运行时常量池中该栈帧所属方法的引用,支持方法调用过程中的动态连接。执行过程中可能用到类中的常量。类加载器分类Bootstrap Loader(启动类加载器):C++ 写的,虚拟机的一部分,加载 Java 核心类;Extended Loader(扩展类加载器):父加载器为 $Up,Java 写的,加载 Java 的扩展库;AppClass Loader(系统类加载器):父加载器为 $Up,Java 写的,加载应用类路径(CLASSPATH)的类库。类加载过程寻找 jre 目录,寻找 jvm.dll,初始化 JVM;JVM 启动后,运行`启动类加载器`,自动加载`扩展类加载器`和`系统类加载器`。双亲委派模型类加载器收到类加载请求,不会自己去尝试加载这个类,而是把请求委托给父加载器去完成。当父加载器在其搜索范围内没有找到所需的类时,即无法完成该加载,子加载器才会尝试自己去加载该类。双亲委派模型-作用保证每个类只会被加载一次。维护系统自身类的安全。栈帧分配多少内存基本上在类结构确定下来时就已知标志对象可回收算法引用计数算法,不能相互循环引用。可达性分析算法,GC Roots 为起始点;
GC Roots:栈中引用的对象;类静态属性引用的对象;常量引用的对象;JNI 引用的对象。Linuxhtop`H` hide/show user threads`P` sort by CPU%`M` sort by MEM%`I` invert sort order`h` help网络四次挥手-延迟确认的影响会省掉第二个包。包三变包二:`FIN Seq=Y, Ack=X+1`。看到四次挥手 Ack 不变时,可能有个包不属于里面。
忽略掉就正常了[Packet size limited during capture](发送过来的包) 标记的包还没抓全。内容:Frame:N bytes on wire (Nb bits), M bytes captured (Mb bits)。
表示:全长 N 字节,但只有 M 个字节被抓到。
如:Linux `tcpdump -s 80` 限制字节数。[TCP Previous segment not captured](发送过来的包) 中间缺失了一段数据,可能丢包,可能漏掉了。如果小包能过来,而计算出来的大包掉失,
可能网络设备的 MTU 比较小,
需要把整个网络路径的 MTU 保持一致。
`Len(丢)=Cur(seq)-Pre(seq))`[TCP ACKed unseen segment](接收方的 Ack 包) 被 Ack 的那个包还没被抓到,或者在这个包的后面[TCP Out-of-Order](发送过来的包) 乱序!当前包的 Seq 小于前一个包的 Seq+Len。TCP 传输时(不包括握手与挥手)同一主机发出的数据应该是连续的。[TCP Dup Ack](接收方的 Ack 包) 乱序或丢包时,收到的 Seq 号比期望值大的包时,会 Ack 一次期望的 Seq,Ack 两次以上时,会显示。[TCP Fast Retransmission](发送过来的包) 当 4 Ack(即 3 Dup Ack) 时,会快速重传一个包[TCP Retransmission](当前发送方的包) 没有 Ack 时。等到超时再重传一次,只有在发送方才能抓到。有可能 100 多毫秒。[TCP ZeroWindow](发送过来的包) win=0 时出现,表示缓冲区已满。不能再接收数据,因此这边不能再发送数据过去。[TCP window Full](当前发送方的包) 表示这个包的发送方已经把对方所声明的接收窗口耗尽。在途字节数 = win,如果有 win 个字节未被确认,就会有此提示。在内容:[SEQ/ACK analysis] -& [Bytes in flight: xxx] 查看在途字节数。~~(是当前包之前的,还不包含当前包)~~。表示不能再发送数据了。[TCP segment of a reassembled PDU](发送过来的包) 。肯定在 Edit -& Prefrences --& Protocols --& TCP 菜单里。
启用了“Allow sub dissector to reassemble TCP streams”,
它表示 Wireshark 可以把同一个应用的 PDU 的 TCP 包虚拟地集中起来(在最后一个包),
在内容“N Reassembled TCP Segments (Y bytes):#xx(M), ....”。
右击 -& Copy --& ...as Printable Text 复制整个应用层的 PDU。[Continuation to #xx](发送过来的包)。肯定在 Edit -& Prefrences --& Protocols --& TCP 菜单里。关闭了“Allow sub dissector to reassemble TCP streams”。Read Andx Response 算在第一个包上。(接收方发出去的包) 当有些包被分片传输,且有一部分在路上丢失,接收方无法组装,就会用 ICMP 报错告知发送方,可用“icmp”过滤看到。当接收方因为分片丢失而无法按时完成数据包的重组时,它可以放弃并回复一个超时消息。英语前缀`cor-` 来自 `com-`,表示“与...一起,一起”,r 前同化为 cor-`de-` 表示“向下”,引申词义"强调"`ar-` 来自`ad`,表示“向、去,或强调”。r 前同化为 ar`pre-` 表示“…前的,预先”词根`hibit` 表示"拿住"`rupt` 表示"断裂"`fine` 表示"结束,范围,限制"`riv` 表示“河流”`sen` 表示"存在,实质"`not` 表示"知道,注意"`clud` 表示"关闭"`vid` 表示"查,看"`act` 表示"行动,做"`sure` 表示"肯定,确定"`stor` 表示"贮藏"`eco` 表示“家”,引申为环境12成语好仁不好学,其蔽也愚;好知不好学,其蔽也荡;好信不好学,其蔽也贼;好直不好学,其蔽也绞;好勇不好学,其蔽也乱;好刚不好学,其蔽也狂。爱好仁德而不爱好学习,它的弊病是受人愚弄;爱好智慧而不爱好学习,它的弊病是行为放荡;爱好诚信而不爱好学习,它的弊病是危害亲人;爱好直率却不爱好学习,它的弊病是说话尖刻;爱好勇敢却不爱好学习,它的弊病是犯上作乱;爱好刚强却不爱好学习,它的弊病是狂妄自大。愚:受人愚弄。荡:放荡。好高鹜远而没有根基。贼:害。绞(jiǎo):说话尖刻。技术KiB、MiB 与 KB、MBKB = 10^3; KiB = 2^10;MB = 10^6; MiB = 2^20;多租户Multi-tenant.多租户是指软件架构支持一个实例服务多个用户,每一个用户被称之为租户(tenant),软件给予租户可以对系统进行部分定制的能力。JavaJDBC 超时种类socket timeoutstatement timeouttransaction timeout一般存在于框架(Spring, EJB)。`= Statement Timeout * N + @(垃圾回收等其他时间)`。用来限制执行 statement 的总时长。`@Transactional(timeout=xx)` 设置。Spring 会记录每个事务的开始时间和消耗时间。保存在 `ThreadLocal` 里。当使用连接创建 statement 时,会校验事务的消耗时间,事务提交时不验证。用来限制statement的执行时长。`java.sql.Statement.setQueryTimeout(int timeout)` 设置。`&enableQueryTimeouts=true` 连接 url 也要设置。调用 Statement.executeXX() 时,创建一个 timeout-execution CancelTask 用于超时处理,注册到 CancelTimer,内部运行时再启动个新线程。达到超时时间,CancelTask 创建一个和 statement 配置相同的 connection。使用新创建的 connection 向超时 query 发送 cancel query( `KILL QUERY &connectionId&` )。避免应用在发生网络错误时产生无休止等待的情况,缩短服务失效的时间。必须高于 statement timeout,否则,socket timeout 会先生效,将变得毫无意义。`connectTimeout=2000` 连接 url 设置,单位 ms。`socket.connect(int connectTimeout)` 内部设置。英语前缀`en-` 表示“进入,使”`ap-` 来自`ad-`, 表示“朝、向、去,强调”,p 前同化为 ap-`un-` 表示“不,无,非,没有”`ob-` 表示“向前,朝向”词根`ten` 表示“拿住”`quot` 表示“引用,数目”`pear` 表示"看见;出现"`sect` 表示"切,割"`par` 表示“平等”`trad` 表示“移交”`fort` 表示“运气”`tain` 表示“拿住”后缀`-ant` 表名词,“…人”`-ular` 表形容词,“有…形状或性质的”`-el` 表名词,“人或物”`-ness` 表名词,"性质,状态"`-th` 表名词,"通常指抽象名词"`-ate` 表形容词,“具有…的”11Java封装、继承、多态封装:把客观事物封装成抽象的类,类再把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承:重用父类代码。多态:定义的变量所指向的具体类型和发出的方法调用在编程时不确定,在运行期间才确定。Spring Boot 条件注解@ConditionalOnBean 容器里有指定的 Bean。@ConditionalOnClass 类路径下有指定的类。@ConditionalOnMissingBean 容器里没有指定的 Bean。@ConditionalOnMissingClass 类路径下没有指定的类。@ConditionalOnJava 基于 JDK 版本判断。@ConditionalOnExpression 基于 SpEL 表达式判断。Spring Boot MVC 图标禁用:`spring.mvc.favicon.enabled=false`。自定义:将 `favicon.ico` 放在 `src/main/resources/static` 下。会覆盖禁用。Linux查看内存使用情况`free -m` || `free -g`查看平均负载uptime
# 查看过去 1、5、15 分钟内进程队列中的平均进程数量# `load average` 三值大小一般不能大于系统 CPU 的个数查看内核版本`uname -r` || `uname -a`英语前缀`cont-` 表示“反对,相反”`pur-` `pro-`的变体,表示“向前,在前”词根`rol` 表示"轮子,转,滚"`feat` 表示"做,制作"`ver` 表示"分开"`pose` 表示"放"`arbitr` 表示"判断"`para` 1.表示"半,类似"; 2.表示"在旁边"`scen` 表示“舞台”`toler` 表示"容忍"`trans` 表示“横过,转变”后缀`-al` 表形容词,“…的”`-ism` 抽象名词后缀,表示“制度、行为”“情况、状态”等08成语金凭火炼方知色,与人交财便知心群居防口,独坐防心岂能尽如人意?但求不愧吾心口开神气散,舌出是非生!人言未必犹尽,听话只听三分酒不护贤,色不护病一日不可无常业,安闲便易起邪心!JavaSpringMVC requestController 是单例,但其注入的 request 是线程安全的,原因是注入 request 对象时,是注入了一个代理。技术反爬虫-投毒网站识别出爬虫后,发送一些假数据,和真数据混在一起反爬虫-陷阱在页面上放些肉眼看不到的链接,如一个像素的图片链接。只要访问这些链接,服务器知道就是爬虫,封IP。反爬虫-robots.txt放在网站的根目录下。定义开放,和禁止访问的内容。是个约定俗成的规范,而不是标准,所以有些爬虫会不遵守规则。Kafka windows 也可启动Kafka 集群三种方式node 表示主机。broker 表示 kafka 实例。single node - single broker (Sn-Sb)single node - multiple broker (Sn-Mb)multiple node - multiple broker (Mn-Mb)内存映射文件简称 mmap。利用操作系统分页存储,利用内存提高I/O效率。利用操作系统的 Page 来实现文件到物理内存的直接映射。完成映射之后对物理内存的操作会被同步到硬盘上。省去了用户空间到内核空间复制的开销。并没有被真正的写到硬盘,需要程序主动调用 `flush()`。英语前缀`para-` 表示"在旁边"`multi-` 表示"很多"词根`lat` 表示"拿出,带出"`meter` 表示"计量,测量"`ple` 表示“倍数”07Java自定义注解@Target(TYPE)@Retention(RUNTIME)@Documented // 可选,将写入到 javadoc 中。@Inherited // 可选,可被继承,如单元测试中。public @interface XX {
String name() default "";}注解保留策略SOURCE:只在源码保留,编译时被丢弃。CLASS:编译时保留,不会被加载到 JVM 中。RUNTIME:会被加载到 JVM 中,反射可获取。spring-data Repository调用 save(), @CreatedDate 没有赋值。毫秒级精度System.currentTimeMillis(); // 有些操作系统下并不能达到毫秒级的精度。System.nanoTime() / 1_000_000; // 将精度调整到毫秒级,是最有效的方法。使用 DelayQueue可减少定时器的"空推进",做到"精准推进"算法修改成整数倍x = x - ( x % y ); // 将 x 修改成 y 的整数倍技术时间轮数组实现的环形队列,每个元素存放一个环形双向链表,链表中是定时任务项。基本时间跨度 `tickMs`。时间格个数 `wheelSize`。总体时间跨度 `interval = tickMs * wheelSize`。表盘指针 `currentTime`,表示时间轮当前所处的时间。
是 tickMs 的整数倍。层级时间轮当任务的到期时间超过了当前时间轮所表示的时间范围时,就会尝试添加到上层时间轮中。第二层的时间轮的 tickMs 为第一层时间轮的 interval。第三层的时间轮的 tickMs 为第二层时间轮的 interval。存放时间为 [tickMs, interval) 的任务。时间轮降级随着时间的流逝,到期之时,第三层的降到第二层,第二层的降到第一层,即减去当前 tickMs网络三板斧之三选中包,点击 Statistics -& TCP StreamGraph -& TCP Sequence Graph。斜线表示传输数据很均匀。短横线表示出现暂停(一般为零窗口或死机)。时间太长的话,0.2s 的延迟确认可能看不出来,时间为秒才可以看出。愚笨窗口综合症Silly window syndrome。也叫“小包问题”。传小数据要浪费 `20B IP头 + 20B TCP头`。Nagle算法 遇上 延迟确认 会出问题。
一般关闭前者。
分析时,看连续的包的间隔时间。FCS 数据链路层的错误检测机制Frame Check Sequence。发送前校验一次,生成 4 个字节的 FCS 追加到帧尾,接收方拿到帧后,会再校验并生成 FCS,如果两个 FCS 不一致,说明帧损坏,应该丢弃。校验由网卡完成,所以在主机抓的包看不到 FCS 域。受损的帧所有区域都看不到,因为整个被网卡丢弃了。以太网数据组成:`目的 MAC(6) + 源 MAC(6) + 类型/长度(2) + 用户数据(46~1500) + 帧检验序列(FCS)(4)`。帧头长度14B = `目的 MAC(6) + 源 MAC(6) + 类型/长度(2)`Linux 检验受损帧netstat -iUDP Length内容里面 `Length: 40`。数据 = `40 - 8 = 32`,还要减去头。英语前缀`oc-` 来自 ob-,表示"朝向,去",c 前被同化`re-` 表示“相反”`cate-` 相当于`cata-`, 表示“向下”`ef-` 类似 ex-,表示“从...离开,从...向外,出”,f 前被同化`a-` 表示"不、无、非"词根`art` 表示"技巧"`ten` 表示“拿住”`tain` 表示"拿住"`ceive` 表示"拿,抓,握住"`cur` 表示"跑,发生,快速做……"`broad` 表示"宽广"`act` 表示"行动,活动"`gor` 表示“群体”`sist` 表示"站立"`cess` 表示"行走"`fect` 表示"做,制作"`sum` 表示"拿,取"`capt` 表示"抓"`ampl` 表示"拿"`proto` 表示“最初的,原始的”`gnos` 表示“知道”`pati` 表示"感情"`main` 相当于`man`,表示“手”后缀`-ive` 表形容词,"...的"`-ture` 表名词,表示“一般状态,行为”`-ity` 表名词,指具备某种性质06Java非公平锁加锁时不考虑队列中等待的线程,直接尝试获取锁,获取不到再加到队尾等待定时调度线程池任务之间不会有影响;但同一任务未处理异常时,将不会再继续执行synchonrized 适用"释放锁,又获取锁"的场景。利用 synchronized 的方法块使得锁,一直被持有,从而提高性能。synchronized (StringBuffer) {
for (int i = 0; i & 9999999; i++)
StringBuffer.append(i);}使得性能与 StringBuilder 几乎无异。sync 与 lock性能:非公平 lock &(好于) sync &&&(远好于) 公平 lock技术Scala 尾递归实际是在方法里面:优化字节码跳转ZooKeeper写不可扩展,不可以通过加节点解决水平扩展性问题。不可用在服务发现和健康监测场景下。在粗粒度分布式锁,分布式选主,主备高可用切换等不需要高 TPS 支持的场景下有不可替代的作用,扩展性和容量诉求不是很强烈。tps qps rps pvtps 每秒事务数qps 每秒查询数rps 每秒请求数pv 页面浏览数Kafka 特点同时为发布和订阅提供高吞吐量:时间复杂度为 O(1),即使 TB 级数据;
单机支持每秒 100K 条消息的传输。消息持久化:且有副本。分布式:支持 Server 间的消息分区及分布式消费,无需停机即可扩展机器。消费消息采用 pull 模式:消息被处理的状态是在 消费者 端维护,消费者 自己保存 offset,broker 无状态。支持 online 和 offline 场景:离线数据处理和实时数据处理。Kafka 基本概念Kafka 集群中的服务器统称为 Broker。消息类别为 Topic,物理上不同 Topic 消息分开存储。Partition:
Topic 物理上的分组,一个 Topic 可以分为多个 Partition。
每个 Partition 是一个有序的队列。
Partition 中的每条消息都会被分配一个有序的 id(offset)。Kafka 基本概念2Producer、Consumer 略。Consumer Group:
每个 Consumer 属于一个特定的 Consumer Group。
Consumer 若不指定 Group Name 则属于默认的 Group。
实现 Topic 消息的广播(所有消费者)和单播(任意一个消费者)的手段。
一个 Topic 可以有多个 Consumer Group。网络SACK 场景在局域网优势不明显。在远程环境中,一个正常往返时间要用上百毫秒。
应种情况应该启用。TCP Ack Seq 相对值Edit -& Preferences -& Protocols -& TCP。勾上 `Relative Sequence Numbers` 启用相对值 。TCP 握手失败要么被拒绝:
`tcp.flags.reset == 1 && tcp.seq == 1` // 要启用相对值。
过滤出后再 `Follow TCP Stream`。要么是丢包:
`tcp.flags.syn == 1 && tcp.analysis.retransmission`。
1. 对方没收到。
2. 对方回复的确认包丢失。
两端同时抓包。TCP DDoS分布式拒绝服务攻击。最流行的是基于三次握手的 SYN flood。
发送大量 SYN 请求假装建立连接。
伪造假的源地址,服务器响应收不到 Ack。
留下 half-open 状态连接,每个连接都会消耗系统资源。
服务器资源耗尽,真正的用户访问也会被拒绝。分析:Analyze -& Expert Info -& Chats,查看 SYN 总数统计误解 TCP Ack不是每个包都 Ack 。Linux 有些收两个包 Ack 一次。Windows 则更懒,收多个包才 Ack。手机厂商,可以减少,每次可省 40B 流量。接收窗口足够大,TCP 可不受往返时间约束而不断传数据。TCP 小块数据额外浪费 3 次握手和 4 次挥手英语前缀`per-` 表示“完全,自始至终”`intel-` 表示“在…之间”`e-` 表示“向外”,b,d,g,j,l,m,n,r,v 前缩写成 e-`ex-` 表示"出,出去"`art-` 表示"技巧"词根`pon` 表示"放置"`lig` 表示"选择,收集"`lect` 表示"选择,收集"`pli` 表示"重叠,重复"`plic` 表示"重叠,重复"`fact` 表示“做,制作”`pend` 表示"悬挂"`crit` 表示"评判"后缀`-ance` 表名词,“性质,状况”`-ship` 表示某种关系、状态`-it` 表形容词,"...的"`-et` 表示“小”`-ic` 表名词,"人或科学"05成语欲戴其冠必承其重一般寓意为想要获得的权利和地位越大,就必须承受更多的责任。换句话说就是如果想收获更多,获取更多的权利,就必须付出同样大小的代价无知者是最不自由的,因为他要面对的是一个完全黑暗的世界只有那些躺在坑里从不仰望高空的人,才不会再掉进坑里见人富贵生欢喜,莫把心头似火烧利刀割肉伤可愈,恶语伤人恨不消父子和而家不退,兄弟和而家不分愚者千虑,必有一得,智者千虑,必有一失今吾于人也,听其言而观其行今天我对人的态度是,听到他说的话,还要考察他的行为,才能相信JavaSpring 自制 starter@Import(XXAutoConfiguration.class)
// spring 中的 Import 注解类。public @interface EnableXX { }
// 自定义注解,引入一个配置类。Spring 获取 Beanstep1: `implements ApplicationContextAware`.step2: `CONTEXT.getBeansOfType( AbstractUserService.class )`.技术Redis支持多种数据类型存储,提供多个原子命令操作。支持持久化。网络IP TTLTime to livedef: 64每过一次路由减 1IP-Identification一般发出 ~ 为 x 的机器永远都发 x。不会一下子跳到 y。防 Syn flood 攻击的防火干墙,代理握手 。延迟确认-遇到 RFC-2582 时RFC-2582 很老的 TCP 实现,拥塞时会出现多个 `等待 200ms`,
丢多个包时,Ack n,
传 n 包时,等 200ms 确认,Ack n+1,
传 n+1 包时,再等 200ms 确认,……,1. 关闭**延迟确认**可解决,省掉 `200ms * N` 的时间。2. 启用**SACK** 。延迟确认-TCP 窗口极小时每发 n 个包就要等待确认(n 很小,如:2,3,...)。也就要多等待 `200ms * N` 时间。此问题非常隐蔽。延迟确认-分析正常的 TCP 机制。Wireshark 不会标志为问题。
`Analyze` -& `Expert Info` 不会统计。过滤 `tcp.analysis.ack_rtt & 0.2 && tcp.len == 0`。
过滤出的包数乘以 0.2 秒,就知道浪费多少时间。英语前缀`de-` 表示“从...向下,向下”词根`plex` 表示"重叠"`fig` 表示“做,制作”`solut` 表示"溶解,解决,松开"`miss` 表时"送,放出,派,错过"`cess` 表示"走开,行走,前进"`gree` 表示"感激,高兴"`stin` 表示“站、立”`migr` 表示"迁移"`plor` 表示"喊,哭"`frag` 表示“打碎”后缀`-ary` 表形容词,“…的”04成语穷人的女神,富人的精盆高尚是高尚者的墓志铭,卑鄙是卑鄙者的通行证我拒绝了与邪恶同污合流作恶之可怕,不在于被人发现,而在于自己知道;行善之可嘉,不在于别人夸赞,而在于自己之安详。打 call表达对某个人、事、物的支持Java泛型上限(extends):指定的类必须是继承此类,或实现此接口,即 `&=` 。下限(super):必须是此类本身或父类,即 `&=` 。理论溯因推理先观察所有细节,然后作出多种推理和假设,接着刨去各种不可能,最后剩下的“无论多么难以置信,肯定没错”杂记pd-1 抗癌药LinuxLinux SSH DNSLinux 在 SSH 请求时,查客户端 IP 对应的 PTR
查两次,每次最多等待5秒
行为定义在 `/etc/ssh/sshd_config` 文件
关键字 `grep -i usedns`
设置 `UseDNS no` 即可IO操作,2个阶段1. 等待操作系统内核把数据准备好。2. 将数据从内核复制到用户进程空间。阻塞式IO模型所有IO操作都是阻塞。进程空间调用 recvfrom,
系统调用直到数据包到达,
且被复制到应用进程的缓冲区,
或者发生错误时才返回,
在此期间会一直等待。非阻塞式IO模型如果系统内核没有把数据准备好,recvfrom 会直接返回一个错误,而不是一直阻塞。不断地询问操作系统内核是否把数据准备好,
数据准备好后,要等待复制完成(阻塞的)。IO复用模型提供了select/poll来使用IO复用,
用户进程阻塞在select/poll上,而不是阻塞在具体的IO操作上。当操作系统内核将数据准备好之后,
select/poll会返回可读条件,
然后用户进程再调用 recvfrom 将数据复制到用户进程空间。可以等待多个文件描述符就绪,
即select/poll会侦测多个文件描述符是否就绪,
从而使得用户进程不必阻塞于具体的IO操作。---用户进程不用阻塞于具体的IO操作,多路复用器可以监听多个IO文件描述符。还是需要用户轮询。信号驱动式IO模型让系统内核在文件描述符就绪时发送信号给用户进程,
用户进程只要调用 sigaction 后就能立即返回,不会被阻塞。当系统的文件描述符就绪时,
会发送信号给用户进程,
用户进程再调用 recvfrom 开始IO操作(复制数据)。操作系统会主动发消息给用户进程,
而IO复用模型-用户进程会阻塞在多路复用器上。异步IO模型告诉系统内核启动某个操作,
并让系统内核在完成整个操作后通知用户进程。系统内核通知我们该IO操作何时完成,
而信号驱动式IO模型-是系统内核通知我们何时开始一个IO操作。是效率最高的IO模型。算法Vesta 分布式 ID最大峰值型(适用于峰值高的场景):
63版本, 62类型, 60-61生成方式, 30-59毫秒级时间, 10-29序列号, 0-9机器ID。最小粒度型(适用于峰值不高的场景):
63版本, 62类型, 60-61生成方式, 20-59毫秒级时间, 10-19序列号, 0-9机器ID。英语前缀`dis-` 表示“分开,散开”,引申词义“无,没有,表相反等”词根`prais` 表示"价值,估价"`pens` 1.表示"花费,支付"; 2.表示"悬挂"`sert` 表示"加入,插入,连接"`cre` 表示"增长,产生,生长"`vis` 1.表示"分开"; 2.表示"看,查"`gener` 表示“出生,产生”
添加新批注
在作者公开此批注前,只有你和作者可见。
查看更早的 5 条回复

我要回帖

更多关于 252个常用英语词根图解 的文章

 

随机推荐