精华内容
下载资源
问答
  • 即使你不是故意抄袭,但你可能在无意中抄袭了别人的论文, 这个叫做意外抄袭,它可能正发生在你身上,如果你不熟悉学术 道德规范,这里将... 遗漏了引用,即使只是一项资料,不论是次要还是主要资料,都会 视为抄...

    即使你不是故意抄袭,但你可能在无意中抄袭了别人的论文, 这个叫做意外抄袭,它可能正发生在你身上,如果你不熟悉学术 道德规范,这里将告诉你5个基本的方法来避免意外抄袭。

    Tip1 熟悉其他人的论文

    请检查确认你已经将所有的参考资料都列在你的论文参考文献里。 参考资料包括了想法、观念、研究发现、研究方法甚至是你在论文 中讨论的微小元素。 遗漏了引用,即使只是一项资料,不论是次要还是主要资料,都会被 视为抄袭,这也同样适用于你自己过去所出版发表的论文。 完整的引用参考资料将有助于你进行研究或是撰写论文,清楚的表示 论文中哪个部分是你的原创想法,哪个部分是基于原作者(包括你自己) 已发表的研究成果

    Tip2 系好安全带帮助你安全驾驶,使用引号协助你写作更安全!

    在某些研究领域,特别是人文社科,可以整段逐字引述另一位作者的作品。 这种情况下,一定要使用引号明确地标示出引用自其它作者的文字。 但是请注意,科学研究论文则很少使用引号。

    Tip3 正确的引述和改写(改重)

    进行学术写作,您不能总是使用引号来用引, 你必须改写(改重)和归纳总结其它作者的句子 但是请特别注意!只改变句子里的几个字也会被视为抄袭 所谓改写(降重),你要先了解作者原来的意思,然后, 用你自己的话来表示重述,改写时要特别小心避免改变作者 的愿意。 当然,也别忘了要引用原始文献! 如果你不是很擅长改写(降重),你可以寻求共同作者,或是其他 同学帮忙,还有,也可以来找论文辅导员我们哦~

    Tip4 谨慎做笔记

    做笔记时要特别小心,日后当你参考笔记撰写论文时, 你可能不记得笔记里哪些是你自己的意见,哪些是截取自 其他作者的研究,因此,当你在做笔记时,先了解含义再用 自己的话来记录,试着不要抄袭,如果是抄袭而来的内容, 请记得用引号标记,让自己可以清楚地辨认哪些句子是你自己的, 哪些是其他人的。 同时也别忘了将参考资料放入笔记,无论是使用引号、改写或归纳 总结都请记得正确引用参考而来的资料。

    Tip5 熟悉基本的科学常识

    你可能认为不需要引用基本的科学事实,但如果你才刚刚开始进行学术 写作,建议你尽可能引用所有参考资料以做到万无一失,以及避免无意中的抄袭。

    展开全文
  • (点击跳转)本篇文章是大部分摘高性能MySQL的笔记,也有参考网上的各种博客整理。仅供大家学习和复习!独立的列独立的列是指索引不能参与运算,要将索引索引单独的放在表达式的一列。像下面的语句就不会用到索引。...

    前言

    首先,如果不是很理解索引的底层结构原理的话,建议先看一下我的另一篇介绍索引的底层原理。(点击跳转)

    本篇文章是大部分摘入高性能MySQL的笔记,也有参考网上的各种博客整理。仅供大家学习和复习!

    独立的列

    独立的列是指索引不能参与运算,要将索引索引单独的放在表达式的一列。像下面的语句就不会用到索引。

    mysql> SELECT actor_id FROM sakila.actor WHERE actor_id + 1 = 5;

    我们可以很清楚的看出来,actor_id就是4,所以没必须要这样表达,而放弃了使用索引。或者将索引拿去参与其他的运算也是不行的,只有保证独立的列才可以走索引。

    前缀索引和索引选择性

    索引选择性

    虽然建立索引有助于我们对数据库查询的优化,但是建立索引也不是必须的。像下面这些情况就不适合建立索引。

    ①表记录比较少(小于2000),不必建索引,直接全表扫描速度更快

    ②索引的选择性比较低,即字段中存在大量重复的值

    所以我们对查询次数高且数据量比较大的表建立索引。而且还要选择重复率低的字段当作索引,索引的选择性越高则查询效率越高,因为选择性高的索引可以让MySQL在查找的时候过滤掉更多的行。像唯一索引的选择性是1,这是最好的索引选择性,性能也是最好的。

    前缀索引

    这里要提到,我们的索引是会占用的额外的存储空间的。所以如果索引特别长的话,那么维护索引将会占用非常大的空间。但其实一般情况下,某个列前缀的选择性也是足够高的。对于BLOB、TEXT或者很长的VARCHAR类型的列,就必须使用前缀索引,因为MySQL不允许这些列的完整长度。

    重点在于选择足够长的前缀以保证比较高的选择性,同时又不能太长(以便节约空间)。

    具体的策略方法有如下:

    可以先统计出最常见的出现的值,然后再不断去尝试取不同长度的前缀索引,看前缀索引取多长的时候,能和最常见的出现的值大致匹配。

    首先计算全表的选择性,然后取不同长度的前缀,看选择性什么时候接近全表的选择性

    多列索引

    为每一个列都建立一个索引并不是最好的,但是mysql在5.0之后更新版本引入了索引合并的策略,可以将多个单独的索引合并使用查询。关于多列索引的索引合并策略虽然是一种优化的结果,但也说明了我们的表上的索引建得很糟糕。下面是一些注意的点:

    (1)在mysql5.0之前如果两个单个索引之间使用or的话,会进行全表查询,所以建议使用union的方式。

    (2)当出现服务器对多个索引做相交操作时候(通常有多个AND条件),通常意味着需要一个包含所有相关列的多列索引,而不是一个个的单独索引。

    (3)当服务器对多个索引做联合操作的时候(通常有多个OR条件),通常需要耗费大量CPU和内存资源在算法的缓存、排序和合并操作上。特别是在我们的索引选择性不高,需要合并扫描返回大量数据的时候。

    选择合适的索引列顺序

    前面说到了多列索引,但是在多列索引里面还有一个值得我们去考虑的问题就是如何选择一个合适的索引列的顺序。但是在选择顺序主要是遵守这么一条法则:越是在前面的索引,越是能过滤掉大量的数据。

    (1)在不考虑排序和分组的时候,将选择性最高的列放在前面通常是一个比较好的选择。可以优化与WHERE的查询,对于只使用索引部分前缀列的查询来说选择性也更高。

    (2)在数据量小并且选择性也很高的放在前面,也更容易过滤掉大量的数据。

    (3)如果可以,尽可能的使用唯一索引放在前面。因为唯一索引的选择性是1,可以极大的提升查询效率。

    聚簇索引

    聚簇索引并不是一个单独的索引类型,而是一种数据存储方式。在InnoDB中,聚簇索引实际上在同一个结构中保存了B-Tree索引和数据行。节点页只包含索引列,叶子也才包含行的全部数据。由于聚簇索引数据行和相邻的键值紧凑地存储在一起,也就是说,无法把数据行和索引分开存储,因此,由于数据行只有一份,聚簇索引在一个表只有一个。

    InnoDB通过主键聚集索引;如果没有定义主键,则会选择一个唯一的非空索引替代;如果还是没有这样的索引,则会隐式定义一个主键来作为聚簇索引。InnoDB只聚集同一个页面中的记录,包含相邻键值的页面可能会相距甚远。

    3cba00fa53cb8af85f1761e3af1e9b13.png

    之所以需要聚簇索引,是因为聚集的数据也有优点:

    可以把相关数据保存在一起。例如实现电子邮箱时,可以根据用户ID来聚集数据,这样只需要从磁盘读取少数的数据页就可以获取整个用户的全部邮件。如果没有使用聚簇索引,则每一封邮件都可能导致一次磁盘IO。

    数据访问更快。聚簇索引将索引和数据保存在同一个B-Tree中,因此从聚簇索引中获取数据通常比在非聚簇索引中查找更快。

    使用覆盖索引扫描的查询可以直接使用页节点中的主键值。

    覆盖索引

    什么 是覆盖索引呢?以InnoDB为例,我们在二级索引查询的时候,需要先查找到主键,然后再去回表查询。但是如果我们的索引的叶子结点下面包含所有需要查询的字段的值,我们就称为覆盖索引。

    只需要从覆盖索引不需要回表查询我们就知道它有多少好处了:

    索引一般都会比数据行小,如果只需要读取索引的话,那么MySQL就会极大地减少数据访问量,同时也因为更容易放入内存中对I/O密集型的应用也有帮助。

    因为索引是按照顺序存储的,所以对于I/O密集型的范围查询会比随机从磁盘读取每一行数据的I/O操作少得多。

    InnoDB的二级索引在叶子节点保存了行的主键值,所以如果二级主键能够覆盖查询,则可以避免对主键索引的二次查询。

    有时候,当查询语句无法使用到覆盖索引,可以使用延迟关联的方式,来进行查询。

    延迟关联:可以先利用覆盖索引,将符合条件的主键全都查询出来,再统一利用主键去join主表。

    使用索引扫描来做排序

    只有当索引的顺序和ORDER BY子句的顺序完全一致,并且所有列的排序方向都一样时,MySQL才能够使用索引来对结果做排序。如果查询需要关联多张表,则只有当ORDER BY子句引用的字段全部为第一个表时,才能使用索引做排序。ORDER BY子句和查找型查找的限制是一样的:需要满足索引的最左前缀的要求,否则无法利用索引排序。

    压缩(前缀压缩)索引

    MyISAM使用前缀压缩来减少索引的大小,从而让更多的索引可以放入内存中,提高系能。默认只压缩字符串,但通过参数设置也可以对整数做压缩。

    压缩过程

    保存索引块中的第一个值,然后将其他值和第一个值进行比较得到相同前缀的字节数和剩余的不同后缀部分。例如,索引块中的第一个值是“perform”,第二个值是“performance”,那么第二个值的前缀压缩后存储的是类似“7,ance”这样的形式。

    可以在CREATE TABLE语句中指定PACK_KEYS参数来控制索引压缩的方式。

    冗余与重复索引

    重复索引

    MySQL允许在相同列上创建多个索引,无论是有意的还是无意的。但是针对这些重复的索引,却是需要单独的去维护,并且优化器在优化查询的时候也需要逐个进行考虑,影响性能。

    具体重复建立索引的例子如下:

    00a1dafc7d59f65ebc5a65e4b3754b69.png

    在创建了主键之后又对主键进行添加唯一和索引。但是事实上,MySQL的唯一限制和主键限制都是通过索引实现的。这种写法实际上就是创建了三个重复的索引!

    冗余索引

    冗余索引和重复索引有一些不同。比如如果创建了索引(A,B),再创建索引(A)就是冗余索引,因为这只是前一个索引的前缀索引。

    所以我们在需要新索引的时候,尽量地去扩展它,而不是去新建它。比如表中已有索引(A),现在要添加(A,B)索引的时候只需要去修改原来的索引即可,这样子就可以避免原来的索引成为了冗余索引。

    索引和锁

    使用InnoDB,只有在访问行时才会对其加锁,而索引能够减少InnoDB访问的行数,从而减少行的数量。但是这种情况下,如果索引无法过滤掉无效的行,会导致间隙锁,并且只有在事务提交后才能释放锁。如下面的查询语句:

    8a93fd090d468a966023db3212ffb035.png

    这条查询仅仅会返回2~4之间的行,但是实际上获取了1-4之间的排它锁,会锁住第一行,因为是通过actor_id<5来获取,没有排除第一行,所以会锁住所有actor_id小于5的行。

    最左前缀优化

    情况1——全列匹配: 当按照索引中的所有列进行精确匹配(=或in)时,索引可以被用到。其次,由于MySQL的优化,这种情况下,where中条件的顺序其实可以可以颠倒,MySQL会对这种情况下的条件进行重排,使其和索引顺序一致。

    情况2——最左前缀匹配: 当索引由多个字段组成,但查找时,只用到多个字段中最左边的前几个字段。这种情况下,会进行最左前缀匹配的索引。

    情况3——查询条件用到了索引中列的精确匹配,但是中间某个条件未提供: 比如索引是(col1,col2,col3),查询的where条件是col1='value' and col2='value2',这样只能用到col1的索引,不会用到col3的索引。

    情况4——查询条件没有指定索引第一列: 由于不是最左前缀,用不到索引。

    情况5——范围查询: 在where中使用>、

    情况7——查询条件中含有函数或表达式: 使用函数或表达式,不会建立索引。

    情况8-模糊查询尽量使用后缀匹配:也就是%尽量放在关键字后面。

    索引失效的情况

    89ae20c0abc3f9e4314d02fa1050580a.png

    总结就是:

    遵守最左匹配原则,中间断索引,使用范围查询

    在索引列上做计算

    索引字段使用 != 或者 <>

    索引字段使用 is null 或者 is not null

    使用通配符 %开头

    索引字段是字符串,查询条件没有使用字符串

    索引字段使用or

    参考资料

    展开全文
  • 【php学习记录】 引用、打开文件一、PHP echo 和 print 语句echo 和 print 区别:echo - 可以输出一个或多个字符串print - 只允许输出一个字符串,返回值总为 1提示:echo 输出的速度比 print 快, echo 没有返回值,...

    【php学习记录】 引用、打开文件

    一、PHP echo 和 print 语句

    echo 和 print 区别:

    echo - 可以输出一个或多个字符串

    print - 只允许输出一个字符串,返回值总为 1

    提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1

    二、PHP引用文件

    1、include()引用文件

    语法:void include(string filename) filename:指定的完整路径文件名。

    所引用的外部文件发生错误时,系统给出一个警告,而整个php文件则继续向下执行。

    html

    body

    php ihnclude("top.php");

    /body

    /html

    2、include_once()引用文件

    语法:void include_once(string filename) filename:指定的完整路径文件名。

    include_once,检测文件是否在该页面被其他部分引用过,引用过不在重复引用该文件。

    html

    body

    php include_once("top.php");

    /body

    /html

    3、require()引用文件

    语法:void require(string filename) filename:指定的的完整路径文件名。

    4、require_once()引用文件

    语法:void require_once(string filename) filename:指定的完整路径文件名。

    require_once,检测文件是否在该页面被其他部分引用过,引用过不在重复引用该文件。

    html

    body

    php require_once("top.php");

    /body

    /html

    5、require和include的区别

    require调用文件时,如果文件没找到,require会输出错误信息,并立即终止脚本处理。

    include调用文件时,如果文件没找到,require会输出错误信息,不会终止脚本处理。

    require调用文件时,只要程序一致性,就会立刻调用外部文件;

    include调用文件时,只有程序执行到该语句是,才会调用外部文件。

    include_once语句在脚本执行期间调用外部文件发生错误时,产生告警;

    require语句在脚本执行期间调用外部文件发生错误时,导致一个致命错误。

    6、fopen() 函数用于在 PHP 中打开文件。

    html

    body

    php ile=fopen("welcome.txt","r");

    /body

    /html

    模式描述

    r

    只读。在文件的开头开始。

    r+

    读/写。在文件的开头开始。

    w

    只写。打开并清空文件的内容;如果文件不存在,则创建新文件。

    w+

    读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。

    a

    追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件。

    a+

    读/追加。通过向文件末尾写内容,来保持文件内容。

    x

    只写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

    x+

    读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

    注释:如果 fopen() 函数无法打开指定文件,则返回 0 (false)。

    7、检测文件末尾(EOF)

    feof() 函数检测是否已到达文件末尾(EOF)。

    在循环遍历未知长度的数据时,feof() 函数很有用。

    注释:在 w 、a 和 x 模式下,您无法读取打开的文件!

    if (feof($file)) echo "文件结尾";

    8、逐字符读取文件

    fgetc() 函数用于从文件中逐字符地读取文件。

    注释:在调用该函数之后,文件指针会移动到下一个字符。

    【php学习记录】 引用、打开文件 相关文章

    【Spring】学习笔记001--IoC创建对象的方式

    Spring注册bean的方式根据实体类内部的有参、无参,有如下方式: 1.无参构造 Spring注册bean的方式默认是基于无参构造方法的,而我们知道,对于一个实体类,Java是默认存在无参构造方法的,因此在注册bean时,我们可以直接将bean注册进容器。 例如实体类如下

    我对递归的理解和总结

    看了自己的动态记录,发现自己已经遗忘了曾经的自己,有一条动态,2013年的时候,我看了一篇关于尾递归的博文,那时候还只是一个初学者,胡乱评论了一下,作者希望我能写一篇博文发表一下自己的看法,当时没有写,然而现在却想写点什么总结一下,不保证说的

    Spring学习笔记(持续更新...

    SpringIOC IOC: Inverse of Control 控制反转 将原本在程序中手动创建 UserService 对象的控制权交由 Spring 框架管理。 !--UserService 的创建权交给了 Spring--bean id="userService" class="com.mizhitian.ioc.demo1.UserServiceImpl" /bean 创建 UserSer

    关于机器学习的几件小事(二)——决策树

    sklearn 决策树 决策树超参数 1, criterion (标准)可选信息熵和基尼系数,观察公式 gini 系数相比信息熵计算量要小一点。sklearn 默认的 criterion 也是 gini 系数。效果方面信息熵 entropy 和 gini 系数差不多。 entropy 在模型出现欠拟合的时候可以用一

    scrapy框架学习(六)日志设置和数据存储

    日志设置 CRITICAL : 严重错误 ERROR : 一般错误 WARNING : 警告 INFO : 一般的信息 DEBUG : 调试信息 默认的显示级别是DEBUG # 设置错误显示级别 LOG_LEVEL = 'DEBUG' # 将日志信息写到文件中,不要显示到屏幕中 LOG_FILE = 'log.txt' 数据存储 在pipeli

    ES6学习之路9----Map数据结构

    什么是Map数据结构 Map数据结构类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。 实例: //ES5:var obj = {},arr = {a:1};obj[arr] = Array;console.log(obj);//{[object Object]:Array}//ES6:let map =

    ES6学习之路10----Symbol

    什么是Symbol ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。 JavaScript 语言的七种数据类型:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)、Symbol。 作用:Symbol 值通过Symbol函数生成。这就是说

    DNN深度学习模型 机器学习模型 特征筛选 各个特征重要度排序

    背景 在机器学习或者深度学习模型训练完成后,通常我们需要对输入特征进行重要度排序及筛选,好去找到一些重要度没这么高的特征,将其排除以提高模型收敛速度及准确率。 特征重要程度排序特征排序方法1 特征分裂 训练过程中计算训练过程中通过记录特征的分裂

    机器学习基础——规则化(Regularization)

    在机器学习中,我们一直期望学习一个 泛化能力(generalization)强的函数 只有泛化能力强的模型才能很好地适用于整个样本空间,才能在新的样本点上表现良好。 ![在这里插入图片描述](https://images1.tqwba.com/20210130/gyrjyem0rxm.pngx-oss-process=imag

    php 设置友好时间

    public static function formatTime($time) { if (is_int($time)) { $time = intval($time); } elseif ($time instanceof Carbon) { $time = intval(strtotime($time)); } else { return ''; } $ctime = time(); $t = $ctime - $time; //时间差 (秒) if ($

    展开全文
  • #默认值:100000 #环境变量:ETCD_SNAPSHOT_COUNT #作用:指定有多少事务(transaction)提交时,触发截取快照保存到磁盘。 snapshot-count: 10000 # Time (in milliseconds) of a heartbeat interval. #含义:...

     首先发现的报错讯息:

     Aug 10 15:43:53 hetu-fr-2d kubelet[1586]: E0810 15:43:53.135619    1586 controller.go:178] failed to update node lease, error: Put https://kapi-xxx-xx:6443/apis/coordination.k8s.io/v1/namespaces/kube-node-lease/leases/node02?timeout=10s: read tcp 192.168.111.104:35660->192.168.111.100:6443: read: connection reset by peer

     Aug 10 15:43:53 hetu-fr-2d kubelet[1586]: E0810 15:43:53.135619    1586 controller.go:178] failed to update node lease, error: Put https://kapi-xxx-xx:6443/apis/coordination.k8s.io/v1/namespaces/kube-node-lease/leases/node02?timeout=10s: read tcp 192.168.111.104:35660->192.168.111.100:6443: read: connection reset by peer

    然后看k8s组件有重启现象

     看apiserver的日志,发现有可能是etcd的问题,

     查这个报错:watch chan error: etcdserver: mvcc: required revision has been compacted,有可能是因为ectd压缩问题,可能涉及磁盘

    etcd is the Kubernetes’ backing store for all cluster data, it has a history compaction mechanism to avoid performance degradation and eventual storage space exhaustion, here are some docs on etcd repo.
    
    "watch chan error: etcdserver: mvcc: required revision has been compacted" literally means the watched revision is compacted. This is working as designed, when attempts to re-establish a watch from a resourceVersion that is no longer available would prompt the caller to re-list objects and obtain a new current resourceVersion to watch from..
    
    For your comment "and When I perform "kubectl get cs" it shows "unknown" both etcd and kube-controller-manager and kube-scheduler ", what does that mean? Could you paste the output of "kubectl get cs" here?

    看etcd日志:"msg":"leader failed to send out heartbeat on time; took too long, leader is overloaded likely from slow disk"

    Aug 11 18:00:02 etcd-1 etcd[1592]: {"level":"warn","ts":"2021-08-11T18:00:02.888+0800","caller":"etcdserver/raft.go:390","msg":"leader failed to send out heartbeat on time; took too long, leader is overloaded likely from slow disk","to":"566bb4bcdc8f3e93","heartbeat-interval":"100ms","expected-duration":"200ms","exceeded-duration":"18.959836ms"}
    

    报错信息主要为:

    心跳检测报错主要与以下因素有关(磁盘速度、cpu性能和网络不稳定问题):

    • etcd使用了raft算法,leader会定时地给每个follower发送心跳,如果leader连续两个心跳时间没有给follower发送心跳,etcd会打印这个log以给出告警。通常情况下这个issue是disk运行过慢导致的,leader一般会在心跳包里附带一些metadata,leader需要先把这些数据固化到磁盘上,然后才能发送。写磁盘过程可能要与其他应用竞争,或者因为磁盘是一个虚拟的或者是SATA类型的导致运行过慢,此时只有更好更快磁盘硬件才能解决问题。etcd暴露给Prometheus的metrics指标walfsyncduration_seconds就显示了wal日志的平均花费时间,通常这个指标应低于10ms。

    • 第二种原因就是CPU计算能力不足。如果是通过监控系统发现CPU利用率确实很高,就应该把etcd移到更好的机器上,然后通过cgroups保证etcd进程独享某些核的计算能力,或者提高etcd的priority。

    • 第三种原因就可能是网速过慢。如果Prometheus显示是网络服务质量不行,譬如延迟太高或者丢包率过高,那就把etcd移到网络不拥堵的情况下就能解决问题。但是如果etcd是跨机房部署的,长延迟就不可避免了,那就需要根据机房间的RTT调整heartbeat-interval,而参数election-timeout则至少是heartbeat-interval的5倍。

    可能是超时了,检查下etcd的配置,为默认100ms,报错显示都大于100ms

    于是准备调整etcd 配置的参数重启etcd试试

    加上这俩参数:
    心跳保持时间
    heartbeat-interval: 1000
    选举超时的时间
    election-timeout: 10000

    附录etcd 的推荐配置以及说明

    !!!注:参数key: value中key之后":" 与value之间必须有一个空格
     
     
     
    #[Member]
    # This is the configuration file for the etcd server.
     
    # Human-readable name for this member.
    #含义:此成员的名称。
    #默认值:default
    #环境变量:ETCD_NAME
    #作用:此配置值作为此节点在--initial-cluster标志中列出的条目(例如,default=http://localhost:2380)引用。
    #      若使用静态引导,则需要匹配标志中使用的密钥。使用发现时,每个成员必须具有唯一的名称。
    #      建议使用Hostname或者machine-id。
    #注意:使用发现时,每个成员必须具有唯一的名称。
    name: 'ptest01'
     
    # Path to the data directory.
    #含义:服务运行数据保存的路径。
    #默认值:${name}.etcd
    #环境变量:ETCD_DATA_DIR
    #作用:设置数据保存的目录。
    data-dir: /data/db/etcd
     
    # Path to the dedicated wal directory.
    #含义:专用wal目录的路径。
    #默认值:--data-dir的路径下
    #环境变量:ETCD_WAL_DIR
    #作用:独立设置wal目录,etcd会将WAL文件写入--wal-dir而不是--data-dir。独立的wal路径,有助于避免日志记录和其他IO操作之间的竞争。
    wal-dir: /data/log/etcd
     
    # Number of committed transactions to trigger a snapshot to disk.
    #含义:触发快照到磁盘的已提交事务数。
    #默认值:100000
    #环境变量:ETCD_SNAPSHOT_COUNT
    #作用:指定有多少事务(transaction)被提交时,触发截取快照保存到磁盘。
    snapshot-count: 10000
     
    # Time (in milliseconds) of a heartbeat interval.
    #含义:心跳间隔的时间(以毫秒为单位)
    #默认值:100
    #环境变量:ETCD_HEARTBEAT_INTERVAL
    #作用:leader 多久发送一次心跳到 followers。
    heartbeat-interval: 1000
     
    # Time (in milliseconds) for an election to timeout.
    #含义:选举超时的时间(以毫秒为单位)
    #默认值:1000
    #环境变量:ETCD_ELECTION_TIMEOUT
    #作用:重新投票的超时时间,如果 follow 在该时间间隔没有收到心跳包,会触发重新投票,默认为 1000 ms。
    election-timeout: 10000
     
    # Raise alarms when backend size exceeds the given quota. 0 means use the
    # default quota.
    #含义:当后端大小超过给定配额时(0默认为低空间配额),引发警报。
    #默认值:0
    #环境变量:ETCD_QUOTA_BACKEND_BYTES
    quota-backend-bytes: 0
     
    # List of comma separated URLs to listen on for peer traffic.
    #含义:和成员之间通信的地址。
    #默认值:http://localhost:2380
    #环境变量:ETCD_LISTEN_PEER_URLS
    #作用:用于监听其他etcd member的url
    #提示:域名为无效值,如http://example.com:2380为错误配置。
    listen-peer-urls: http://10.122.48.232:2380
     
    # List of comma separated URLs to listen on for client traffic.
    #含义:对外提供服务的地址
    #默认值:http://localhost:2379
    #环境变量:ETCD_LISTEN_CLIENT_URLS
    #作用:对外提供服务的地址。
    #提示:域名为无效值,如http://example.com:2379为错误配置。
    listen-client-urls: "http://10.122.48.232:2379,https://127.0.0.1:2379"
     
    # Maximum number of snapshot files to retain (0 is unlimited).
    #含义:要保留的最大快照文件数(0表示不受限制)。
    #默认值:5
    #环境变量:ETCD_MAX_SNAPSHOTS
    #作用:
    #提示:Windows上的用户默认值不受限制,建议手动清除至5。
    max-snapshots: 0
     
    # Maximum number of wal files to retain (0 is unlimited).
    #含义:要保留的最大wal文件数(0表示不受限制)。
    #默认值:5
    #环境变量:ETCD_MAX_WALS
    #作用:
    #提示:Windows上的用户默认值不受限制,建议手动清除至5。
    max-wals: 0
     
    # Comma-separated white list of origins for CORS (cross-origin resource sharing).
    #含义:逗号分隔的CORS原始白名单(跨源资源共享)
    #默认值:
    #环境变量:ETCD_CORS
    cors:
     
    #[Clustering]
    # List of this member's peer URLs to advertise to the rest of the cluster.
    # The URLs needed to be a comma-separated list.
    #含义:该节点成员对等URL地址,且会通告群集的其余成员节点。
    #默认值:http://localhost:2380
    #环境变量:ETCD_INITIAL_ADVERTISE_PEER_URLS
    #作用:
    initial-advertise-peer-urls: http://10.122.48.232:2380
     
    # List of this member's client URLs to advertise to the public.
    # The URLs needed to be a comma-separated list.
    #含义:此成员的客户端URL列表,用于通告群集的其余部分。这些URL可以包含域名。
    #默认值:http://localhost:2379
    #环境变量:ETCD_ADVERTISE_CLIENT_URLS
    #作用:对外公告的该节点客户端监听地址。
    advertise-client-urls: http://10.122.48.232:2379
     
    # Discovery URL used to bootstrap the cluster.
    #含义:用于引导群集的发现URL。
    #默认值:
    #环境变量:ETCD_DISCOVERY
    #作用:
    discovery:
     
    # Valid values include 'exit', 'proxy'
    #含义:发现服务失败时的预期行为(“退出”或“代理”)。“proxy”仅支持v2 API。
    #默认值:proxy
    #环境变量:ETCD_DISCOVERY_FALLBACK
    #作用:
    discovery-fallback: 'proxy'
     
    # HTTP proxy to use for traffic to discovery service.
    #含义:用于流量到发现服务的HTTP代理。
    #默认值:
    #环境变量:ETCD_DISCOVERY_PROXY
    #作用:
    discovery-proxy:
     
    # DNS domain used to bootstrap initial cluster.
    #含义:DNS srv域用于引导群集。
    #默认值:
    #环境变量:ETCD_DISCOVERY_SRV
    #作用:
    discovery-srv:
     
    # Initial cluster configuration for bootstrapping.
    #含义:集群中所有节点的信息。
    #默认值:default=http://localhost:2380
    #环境变量:ETCD_INITIAL_CLUSTER
    #作用:
    #注意:此处default为节点的--name指定的名字;localhost:2380为--initial-advertise-peer-urls指定的值。
    initial-cluster: "ptest01=http://10.122.48.232:2380,ptest02=http://10.122.48.233:2380,ptest03=http://10.122.48.234:2380"
     
    # Initial cluster token for the etcd cluster during bootstrap.
    #含义:创建集群的 token,这个值每个集群保持唯一。
    #默认值:etcd-cluster
    #环境变量:ETCD_INITIAL_CLUSTER_TOKEN
    #作用:此配置可使重新创建集群,即使配置和之前一样,也会再次生成新的集群和节点 uuid;否则会导致多个集群之间的冲突,造成未知的错误。
    initial-cluster-token: 'p-etcd-cluster'
     
    # Initial cluster state ('new' or 'existing').
    #含义:初始集群状态
    #默认值:new
    #环境变量:ETCD_INITIAL_CLUSTER_STATE
    #作用:设置new为初始静态或DNS引导期间出现的所有成员。如果将此选项设置为existing,则etcd将尝试加入现有群集。
    initial-cluster-state: 'new'
     
    # Reject reconfiguration requests that would cause quorum loss.
    #含义:拒绝可能导致仲裁丢失的重新配置请求。
    #默认值:false
    #环境变量:ETCD_STRICT_RECONFIG_CHECK
    #作用:
    strict-reconfig-check: false
     
    # Accept etcd V2 client requests
    #含义:接受etcd V2客户端请求
    #默认值:true
    #环境变量:ETCD_ENABLE_V2
    #作用:
    #2.3 代理相关标识
    #提示:--proxy配置etcd以在代理模式下运行,“proxy”仅支持v2 API。
    enable-v2: true
     
    # Enable runtime profiling data via HTTP server
    #含义:通过HTTP服务器启用运行时分析数据。地址位于客户端URL+"/debug/pprof/"
    #默认值:false
    #环境变量:
    #作用:
    enable-pprof: true
     
    # Valid values include 'on', 'readonly', 'off'
    #含义:代理模式设置,("off", "readonly" or "on")
    #默认值:off
    #环境变量:ETCD_PROXY
    #作用:
    proxy: 'off'
     
    # Time (in milliseconds) an endpoint will be held in a failed state.
    #含义:在重新考虑代理请求之前,endpoints 将处于失败状态的时间(以毫秒为单位)。
    #默认值:5000
    #环境变量:ETCD_PROXY_FAILURE_WAIT
    #作用:
    proxy-failure-wait: 5000
     
    # Time (in milliseconds) of the endpoints refresh interval.
    #含义:endpoints 刷新间隔的时间(以毫秒为单位)。
    #默认值:30000
    #环境变量:ETCD_PROXY_REFRESH_INTERVAL
    #作用:
    proxy-refresh-interval: 30000
     
    # Time (in milliseconds) for a dial to timeout.
    #含义:拨号超时的时间(以毫秒为单位)或0表示禁用超时
    #默认值:1000
    #环境变量:ETCD_PROXY_DIAL_TIMEOUT
    #作用:
    proxy-dial-timeout: 1000
     
    # Time (in milliseconds) for a write to timeout.
    #含义:写入超时的时间(以毫秒为单位)或0以禁用超时。
    #默认值:5000
    #环境变量:ETCD_PROXY_WRITE_TIMEOUT
    #作用:
    proxy-write-timeout: 5000
     
    # Time (in milliseconds) for a read to timeout.
    #含义:读取超时的时间(以毫秒为单位)或0以禁用超时。
    #默认值:0
    #环境变量:ETCD_PROXY_READ_TIMEOUT
    #作用:
    proxy-read-timeout: 0
     
    #[Security]
    client-transport-security:
      # Path to the client server TLS cert file.
      #含义:客户端服务器TLS证书文件的路径。
      #默认值:
      #环境变量:ETCD_CERT_FILE
      #作用:
      cert-file:
     
      # Path to the client server TLS key file.
      #含义:客户端服务器TLS密钥文件的路径。
      #默认值:
      #环境变量:ETCD_KEY_FILE
      #作用:
      key-file:
     
      # Enable client cert authentication.
      #含义:启用客户端证书验证。
      #默认值:false
      #环境变量:ETCD_CLIENT_CERT_AUTH
      #作用:
      client-cert-auth: false
     
      # Path to the client server TLS trusted CA cert file.
      #含义:客户端服务器的路径TLS可信CA证书文件。
      #默认值:
      #环境变量:ETCD_TRUSTED_CA_FILE
      #作用:
      trusted-ca-file:
     
      # Client TLS using generated certificates
      #含义:客户端TLS使用生成的证书
      #默认值:false
      #环境变量:ETCD_AUTO_TLS
      #作用:
      auto-tls: false
     
    peer-transport-security:
      # Path to the peer server TLS cert file.
      #含义:对等服务器TLS证书文件的路径。这是对等流量的证书,用于服务器和客户端。
      #默认值:
      #环境变量:ETCD_PEER_CERT_FILE
      #作用:
      cert-file:
     
      # Path to the peer server TLS key file.
      #含义:对等服务器TLS密钥文件的路径。这是对等流量的关键,用于服务器和客户端。
      #默认值:
      #环境变量:ETCD_PEER_KEY_FILE
      #作用:
      key-file:
     
      # Enable peer client cert authentication.
      #含义:启用对等客户端证书验证。
      #默认值:false
      #环境变量:ETCD_PEER_CLIENT_CERT_AUTH
      #作用:
      client-cert-auth: false
     
      # Path to the peer server TLS trusted CA cert file.
      #含义:对等服务器TLS可信CA文件的路径。
      #默认值:
      #环境变量:ETCD_PEER_TRUSTED_CA_FILE
      #作用:
      trusted-ca-file:
     
      # Peer TLS using generated certificates.
      #含义:Peer TLS使用自动生成的证书
      #默认值:false
      #环境变量:ETCD_PEER_AUTO_TLS
      #作用:
      auto-tls: false
     
    # Enable debug-level logging for etcd.
    #含义:将所有子包的默认日志级别设置为DEBUG。
    #默认值:false(所有包的INFO)
    #环境变量:ETCD_DEBUG
    #作用:
    debug: false
     
    含义:将单个etcd子包设置为特定的日志级别。一个例子是etcdserver=WARNING,security=DEBUG
    默认值:(所有包的INFO)
    环境变量:ETCD_LOG_PACKAGE_LEVELS
    作用:
    log-package-levels: 'etcdserver=ERROR,security=DEBUG,auth=ERROR'
     
    #含义:为结构化日志记录指定'zap'或'capnslog'。
    #默认值:capnslog
    #环境变量:ETCD_LOGGER
    #作用:
    logger: zap
     
    # Specify 'stdout' or 'stderr' to skip journald logging even when running under systemd.
    #含义:指定'stdout'或'stderr'以跳过日志记录,即使在systemd或逗号分隔的输出目标列表下运行也是如此。
    #默认值:default
    #环境变量:ETCD_LOG_OUTPUT
    #作用:
    log-outputs: [stderr]
     
    # Force to create a new one member cluster.
    #含义:强制创建新的单成员群集。它提交配置更改,强制删除集群中的所有现有成员并添加自身。需要将其设置为还原备份。
    #默认值:false
    #环境变量:ETCD_FORCE_NEW_CLUSTER
    #作用:
    force-new-cluster: false
     
    #含义:说明--auto-compaction-retention配置的基于时间保留的三种模式:periodic, revision. periodic
    #默认值:periodic
    #环境变量:ETCD_AUTO_COMPACTION_MODE
    #作用:
    auto-compaction-mode: periodic
     
    #含义:在一个小时内为mvcc键值存储的自动压实保留。0表示禁用自动压缩。
    #默认值:0
    #环境变量:ETCD_AUTO_COMPACTION_RETENTION
    #作用:
    auto-compaction-retention: "1"
     
    # Auth flags
    auth-token-ttl: 3600000

    展开全文
  • 引用1.0 关于强引用引用的场景1.1 强引用介绍1.2 强引用的特点1.3 注意相互引用情况2.软引用2.0 关于SoftReference软引用2.1 软引用应用场景2.2 软引用的简单使用2.3 软引用的特点2.4 实际应用案例2.5 注意避免软...
  • 记录-蓝鲸相关知识点

    2021-02-27 09:00:08
    运维自动化工程师(BKOS)理论基础 运维自动化工程师(BKOS)理论基础 ...蓝鲸安装过程中,使用一个标记文件来记录安装的步骤,它的路径是 A. /data/install/bk_install B. /data/install/.bk_install.st
  • JVM 核心知识点

    2021-03-19 11:36:42
    有时候单纯的Java代码并不能满足我们的需求,我们可能需要在Java中调用C或C++的代码,因此使用 Native方法 ,JVM内存中专门有一块本地方法栈,用来保存这些对象的引用,所以本地方法栈中引用的对象也会被作为GC ...
  • 【50期】基础考察:ClassNotFoundException 和 NoClassDefFoundError 有什么区别 51-60期 【51期】一道阿里面试题:说说你知道的关于BeanFactory和FactoryBean的区别 【52期】一道简单的Java面试题,但答错很高...
  • 原因很简单:随着流量变大,遇到各种各样的技术问题,比如接口响应超时、CPU load升高、GC频繁、死锁、大数据量存储等等,这些问题能推动我们在技术深度上不断精进。 在过往的面试中,如果候选人做过高并发的项目...
  • 在类加载阶段中的解析阶段将符号引用转为直接引用,这种转化也称为静态解析。 另外的一部分将在每一次运行时期转化为直接引用。这部分称为动态连接。 1.2.7 方法出口 当一个方法开始执行后,只有2种方式可以退出...
  • 只有当监听器函数发生变化并在事件监听器方法中使用该引用时,我们才更新该引用。 import { useEffect, useRef } from 'react'; const useEventListener = ( eventType = '', listener = () => null, target = ...
  • C#学习记录

    2021-10-16 09:29:23
    C#初级学习教程前言一、计算机语言二、Helloworld三、.NET概述总结 C#初级学习教程前言一、计算机语言二、Helloworld三、.NET概述总结 前言 主要是近期学习C#的记录...经过编译最终编译成机器语言,机器最终才能读懂
  • 但是我们都知道这并不能真正的独立,因为一个Region中的对象不一定只会被当前Region的其他对象引用,而可能堆中的其他对象引用,那G1是如何实现避免全堆扫描的呢?这个问题在分代的其他回收器中也有,但是在这里...
  • JVM学习记录

    2021-07-21 15:52:30
    另外一种思路是,s1 s2是引用型变量,运行时引用可以修改,编译期无法判断相加后是否不变,因此new新的对象。 因此System.out.println(s3 == s4);的结果也显而易见了,s3位于串池中,而s4是new出来的对象,位于...
  • 超硬核!数据结构学霸笔记,考试面试吹牛就靠它

    万次阅读 多人点赞 2021-03-26 11:11:21
    上次发操作系统笔记,很快浏览上万,这次数据结构比上次硬核的多哦,同样的发超硬核代码,关注吧。
  • 索引降低增删改的效率 索引优势:提高查询效率,降低IO适应,降低CPU使用 SQL性能问题 分析SQL执行计划,explain可以模拟SQL优化器执行SQL语句 MySQL查询优化器干扰我们的优化 explain select * from table...
  • 之后遍历灰色集合,将灰色对象引用的对象从白色集合放灰色集合,之后将此灰色对象放黑色集合 重复 4 直到灰色中无任何对象 通过write-barrier检测对象有变化,重复以上操作 收集所有白色对象(垃圾) 三色标记...
  • 之后遍历灰色集合,将灰色对象引用的对象从白色集合放灰色集合,之后将此灰色对象放黑色集合 重复 4 直到灰色中无任何对象 通过write-barrier检测对象有变化,重复以上操作 收集所有白色对象(垃圾) 三色标记...
  • 数仓建设规范指南

    2021-11-23 00:47:28
    冗余字段和已有字段的重复率不应过大,原则上不应超过60%,如需要可以选择join或原表拓展。 4. NULL字段处理规范 对于维度字段,需设置为-1 对于指标字段,需设置为 0 5. 指标口径规范 保证主题域内,指标口径一致...
  • 在应用开发初期,梳理数据源是一项必不可少的工作,了解项目中需要引用的数据后,业务人员能够更好地计划以何种方式导入数据,如何构建数据模型,采用哪种应用类型进行开发。如图11-8中所描述的,在本案例中,初期...
  • (拥有更好的阅读体验 -- 高分辨用户请根据需求调整网页缩放比例) Chinar -- 心分享 ... Android实战技巧之十二:Android Studio导入第三方类库、jar包和so库 第三方类库源码 将一网友的XMPP代码从ADT转到AS时,发现...
  • 最常见的如被引用的数据删除了,或关键字修改了,引 用的数据否出错;两个途径进入的数据否冲突或重复;此外还有因为相关的几个功能由不同人员编码,从而导致彼此的控制不一致,如A功能进入的数据在可允 许的*...
  • 定义个工具类,并在方法中调用本工程所在的接口服务,减少重复的代码片段,提高代码的复用 实现 可以先想想下面的实现有没有问题 问题 主要问题 框架扫描不到,注入失败 注入的修饰static,空指针异常 ...
  • 背景介绍在前文中我们对如何在gradle编译体系的工程中加入Jacoco代码覆盖统计的方法做了介绍,但是前文的方法仅能统计到主工程的代码覆盖,而无法统计到库工程,其具体原因可以参考此文Issue 76373: Code ...
  • Java学习记录

    2021-01-26 10:38:15
    3.重复上面的操作除了最后一个元素 时间复杂度O(n2) 空间复杂度O(1) 1.1.2优化 1.当排序结束后,循环有多余 ​ 设置一个flag = true; 当有元素进行交换发时候把flag设置为false,如果false不变跳出循环 2.每趟...
  • Sentinel相关问题记录

    千次阅读 2020-12-21 22:46:45
    A:实际上Sentinel是通过 Trace.trace(e)来统计异常的,可以这样实现: 你在接的时候只要收到错误码就调用这个函数来统计异常,那么error code就一样能够作为异常统计到。熔断降级也生效了 自定一个Default 的...
  • 十二、数据库常见面试题目 12.1 事务的四大特性 ACID特性。 原子性(Atomic): 要么执行,要么不执行; 一致性(Consistency): 事务前后,...不可重复读: 一行检索两次,并且该行中的值在不同的读取之间不同时 幻读
  • Minor GC一直重复这样的过程,直到“To”区填满,“To”区填满之后,将所有对象移动到年老代中。 线程之间如何通信? (1)利用最基本的synchronized (2)利用synchronized、notify、wait (3)while轮询的...
  • 函数你肯定用的到

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,263
精华内容 25,705
关键字:

引用会被记入重复率