July 5, 2018
一个docker-compose微服务脚本,自用
"容器为swoole+php7\ndocker-compose.yml\nversion: \u0026#39;3.6\u0026#39; services: redis: image: redis web: image: cfanbo/swoole4_php7:v1 depends_on: - redis links: - redis volumes: - /Users/sxf/sites/msgserve:/usr/src/myapp command: \u0026#34;php /usr/src/myapp/src/wx_push_server.php start\u0026#34; 对于 wx_push_server.php文件里redis的主机地址应该写成docker-compose配置文件里的容器服务名(redis)"
July 2, 2018
Go中复制文件的3种方式
"https://opensource.com/article/18/6/copying-files-go\n更多: https://opensource.com/tags/go"
June 15, 2018
服务发现:Zookeeper vs etcd vs Consul vs Eureka
"https://studygolang.com/articles/4837 https://blog.csdn.net/dengyisheng/article/details/71215234"
June 14, 2018
时间复杂度:O(1)、O(n)、O(n²)、O(nlogn)等
"https://blog.csdn.net/qq_27093465/article/details/70690749"
June 13, 2018
分布式事务XA解决方案之两阶段提交(2PC)
"对于三阶段提交请参考:\nhttps://www.cnblogs.com/binyue/p/3678390.html\nhttps://www.cnblogs.com/charlesblc/p/6289348.html\n在 计算机网络 以及 数据库 领域内, 二阶段提交(英语:Two-phase Commit)是指,为了使基于 分布式系统 架构下的所有节点在进行 事务 提交时保持一致性而设计的一种 算法(Algorithm)。通常, 二阶段提交 也被称为是一种 协议(Protocol)。在分布式系统中,每个节点虽然可以知晓自己的操作时成功或者失败,却无法知道其他节点的操作的成功或失败。当一个事务跨越多个节点时,为了保持事务的 ACID 特性,需要引入一个作为 协调者 的组件来统一掌控所有节点(称作 参与者)的操作结果并最终指示这些节点是否要把操作结果进行真正的提交(比如将更新后的数据写入磁盘等等)。因此,二阶段提交的算法思路可以概括为: 参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是否要提交操作还是中止操作。\n需要注意的是, 二阶段提交(英文缩写: 2PC)不 …"
June 12, 2018
了解MySQL中的字符集
"https://dev.mysql.com/doc/refman/5.7/en/charset.html\n平时我们只说了字符集这个概念,另外还有对应的“字符序”。一个字符集(如utf8)对应多个字符序(utf8_general_ci、utf8_german2_ci等),每个字符集都有一个默认“字符序”。\n什么是字符集、字符序?简单的来说:\n字符集(character set):定义了字符以及字符的存储编码。 字符序(collation):定义了字符的比较规则。 可以通过命令查看字符集、字符序信息:\nSHOW CHARACTER SET; 在我们开发中,一般要保持服务器端的字符集与客户端的字符集保持一致,不然容易出现乱码的情况。\nMySQL提供了不同级别的设置,包括server级、database级、table级、column级,可以提供非常精准的设置。\n参考文章: https://www.cnblogs.com/chyingp/p/mysql-character-set-collation.html"
June 11, 2018
Linux下对进程通信管理的信号机制概述
"今天看到了篇使用golang实现的系统无感重启的文章, https://gravitational.com/blog/golang-ssh-bastion-graceful-restarts/,一般用来平滑处理一些系统服务,避免先停止再启用导致的服务不可用的情况。其中用到了信号机制,这里找了一些文章主要有来介绍这方面的文章,以便加深理解。 https://blog.csdn.net/junyucsdn/article/details/50519248 https://blog.csdn.net/tiany524/article/details/17048069 https://my.oschina.net/chenliang165/blog/125825"
June 7, 2018
MySQL中的sql_mode模式
"官方文档: https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sql-mode-setting\n一、模式分类\n在MySQL8.0中主要包括以下几种模式\nONLY_FULL_GROUP_BY 对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么将认为这个SQL是不合法的,因为列不在GROUP BY从句中 STRICT_TRANS_TABLES 在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做任何限制 NO_ZERO_IN_DATE 在严格模式,不接受月或日部分为0的日期。如果使用IGNORE选项,我们为类似的日期插入’0000-00-00’。在非严格模式,可以接受该日期,但会生成警告。 NO_ZERO_DATE 在严格模式,不要将 ‘0000-00-00’做为合法日期。你仍然可以用IGNORE选项插入零日期。在非严格模式,可以接受该日期,但会生成警告 ERROR_FOR_DIVISION_BY_ZERO 在严格模式,在INSERT或UPDATE过程中,如果被零除( …"
June 7, 2018
了解MySQL中的驱动表
"一、为什么要用小表驱动大表\n1、驱动表的定义\n当进行多表连接查询时, [驱动表] 的定义为:\n1)指定了联接条件时,满足查询条件的记录行数少的表为[驱动表]\n2)未指定联接条件时,行数少的表为[驱动表](重要)\n忠告:如果你搞不清楚该让谁做驱动表、谁 join 谁,请让 MySQL 运行时自行判断\n既然“未指定联接条件时,行数少的表为[驱动表]”了,而且你也对自己写出的复杂的 Nested Loop Join 不太有把握(如下面的实例所示),就别指定谁 left/right join 谁了,请交给 MySQL优化器 运行时决定吧。\n2、mysql关联查询的概念:\nMySQL 表关联的算法是 Nest Loop Join(嵌套循环),是通过驱动表的结果集作为循环基础数据,然后一条一条地通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并结果。\n例: user表10000条数据,class表20条数据\nSELECT * FROM user u LEFT JOIN class c u.userid=c.userid\n这样则需要用user表循环10000次才能查询出来,而如果 …"
April 26, 2018
U盘安装Centos7.4
"启动盘制作教程: https://www.cnblogs.com/yeeo1/p/7306611.html http://blog.51cto.com/mifan6/2070118"