Road to growth of rookie

Meaningful life is called life

0%

昨天晚上 MySQL 机器的 CPU 有点高, 感觉有点扛不住了. 新项目只是一个尝试性的项目, 不确定是否有市场, 所有并没有搭建主从

Read more »

ComposerComposer 用来管理依赖(dependency)关系的工具. Composer 通常情况下通过 composer.json 文件来配置和管理依赖的

1
2
3
4
5
6
# mac 安装
$ sudo curl -s https://getcomposer.org/installer | sudo php
$ sudo chmod a+x composer.phar
$ sudo mv composer.phar /usr/local/bin/composer && composer --version
# 切换 composer 国内镜像
$ composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
Read more »

在传统的项目中计算机通过文件系统存储数据. 而现在各种微服务、负载均衡横行的时代, 文件会被多台服务器访问, 造成数据文件不能被存储在本地文件系统中.

传统的解决方法一般会有一台专门存储文件的服务器, 业务服务器的文件存储会通过 ftpssh 的方式上传到文件服务上. 这种方式被称为 网络文件系统NFS (Network File System), 但是 NFS 在使用中也存在: 大量的访问磁盘 IO、存在单点故障、存储空间不足等缺点

为了解决 NFS 的缺点 分布式文件系统DFS (Distributed File System) 应运而生. 分布式文件系统可以有效的解决数据的存储和管理难题; DFS 将固定某一地点的某个文件系统, 扩展到任意多个地点/多个文件系统, 众多节点组成一个文件系统网络. 每个节点可以分布在不同的地点, 通过网络进行节点间的通信和数据传输. 在使用分布式文件系统时, 无需关心数据是存储在哪个节点上、或者是从哪个节点从获取的, 只需要像使用本地文件系统一样管理和存储文件系统中的数据.

Read more »

在开发中 Reids 是我们经常使用到的 NoSql 之一, 在生产环境中, 在某些特定的情况下 (例如: 给开发人员使用的只读库) 需要引入 Redis 的集群方案. Redis 支持三种集群方案: 主从复制模式Sentinel (哨兵) 模式Cluster 模式

image

Read more »

对称加密作为最快速、最简单的加密方式, 所以被广泛的使用在很多加密协议的核心中. 但是对称加密也有一个致命的弱点, 那就是对称加密算法在加密和解密是需要使用到同一个 密钥; 当 AB 两个人在需要进行加密数据的传输时, 如果他们使用的是对称加密算法, 那么必须有一端将 密钥 发送给另外一端. 在不安全的网络传输中这一点就是相当危险! 密钥 一旦被窃或拦截, 那么之前所做的加密就相当于已经失效.

1976 年, 美国学者 DimeHenman 为了解决信息公开传送和秘钥管理问题, 提出一种新的密钥交换协议, 允许在不安全媒体上的通信双方交换数据, 安全的达成一致的密钥, 这种密钥交换协议就被称为 “**公开密钥密码学 (Public-key cryptography)**”. 相对于 对称加密算法 这种方法也被叫做 非对称加密算法.

非对称加密算法之所以可以规避对称加密的致命缺点, 就是因为非对称加密使用的是 一对 密钥, 而不是像对称加密一样使用 一个 密钥; 非对称加密的秘钥分为两个: 一个是 公钥 (public key); 另一个则是 私钥 (private key). 私钥只由安全的一方保管, 不能外泄; 公钥则可以发给任何请求它的人. 非对称加密算法在加密时可以使用两个密钥中的任何一个, 但是在解密时则需要另外一个密钥才能解密. 比如: 使用公钥加密就需要私钥才能解密、使用私钥加密就需要公钥才能解密.

Read more »

对称加密 (Symmetric-key algorithm) 又被称为: 对称秘钥加密、私钥加密、共享密钥加密. 是密码学中一个种加密算法, 这类加密算法在加密和解密时需要使用到同一个秘钥. 根据不同的加密算法秘钥长度也不同, 一般在 64bit ~ 256bit 之间, 具体长度取决于所需的安全级别, 但是秘钥长度越长加密和解密所需要消耗的资源越多. 常用的对称加密算法有: DES (Data Encrytion Standard)3DES (Triple DES)AES (Advanced Encryption Standard) 等;

Read more »

There are only 10 kinds of people in the world, one is a person who understands binary, and the other is a person who does not understand binary.

代码需要升级; 配置文件需要更新. 如果在 PHP 中这些都很简单, 一个简单的 vimgit pull 就能解决. 可是像 Golang 这样的静态语言就无法做到像 PHP 中的那么灵活. 在线上的生产环境, 我们必须保证新老服务无缝交替. 如果贸然停掉服务, 就可能造成一些问题; 例如:

  • 旧的请求未完成, 服务端进程直接退出, 会造成客户端链接中断
  • 新的请求发送过来, 服务端还未完成重启, 造成 connection refused
  • 旧的请求未处理完成, 服务端进程直接退出, 可能会造成用户数据不对称(即: 用户已完成一部分操作, 还要一部分未完成)

当然; 这些问题都可以通过其他方法去规避. 例如使用负载均衡(如: nginx), 保证在升级的过程中始终有一个服务可用, 即各服务器依次灰度升级. 但是像 nginx -s reload 这种的方式, 好像更加方便

Read more »

The Internet has made the world today, and today’s world has made the Internet

最近帮朋友写了个小程序, 写完啦, 要测试啦. 没有 https 证书!! 我个人比较喜欢把测试代码放到自己的服务器上, 这样方便我自己修改 (PS: 自己的服务器嘛, 想怎么来怎么来). 所以得想办法整个 https 证书. 本来想看看网上有没有免费的, 一个不小心就 Google 到阿里云就有免费的证书. 刚好服务器是阿里的, 域名也是阿里的. 所以决定整一个用用

网站部署 HTTPS 的重要性

互联网造就了很多产业, 也造就了很多黑产业. 让我们想象一下: 当我们访问淘宝、京东的时候. 右下角漂浮着 “大家好我是渣渣辉, 是兄滴就来啃我”. 这种感觉肯定特别的酸爽 (PS: 哈哈哈哈哈, 要真是这样张家辉肯定还会火点). 或者我们再来想象一下: 当我们输入银行的网址后打算转账的时候, 卡号输了、密码输了、钱没到账不说, 银行卡里一分不剩, 这是不是就很悲哀了呢

上举的两个例子其实是真实存在的. 在输入网址访问网页, 到网页返回数据给我们的过程中, 其实是分很多步骤的比如最基础的 DNS 解析 (PS: 不做详解). 如果在 DNS 解析的过程中被人劫持并注入一些东西, 就可能会出现上述的两种情况

Read more »

今天公司的梯子挂掉了我很伤心! 对于我这种不知道是几流的程序员不能 Google 实在是太难受了, 本来自己有一个付费的梯子奈何公司的速度快 (PS:白嫖真的太爽了). 靠人不如靠自己,所以我决定自己搭个梯子自己用,谁都不给! (PS:不能让我对象知道).

  • 真诚表态: 梯子只是为了更好的学习, 不做不利于国家的事情

选择 VPS

VPS (Virtual Private Server 虚拟专用服务器), 说白了要搭梯子得先有个能访问国外资源的服务器不是, VPS 有很多选择: AWSVultr搬瓦工 等.我这边直接选的是 Vultr, Vultr 是按小时收费的, 因为现在管控的比较严所以随时都有可能被强掉, 按小时计费的好处就是可以随时销毁随时创建. 当然从价格上来看 搬瓦工 是最便宜的, 大家可以根据自己的情况选择 VPS. 在我购买截止为止 Vultr 的服务器最低是 5 刀每个月 (PS: 一年也就三四百块钱, 我个人觉得还可以).

Read more »

作为一个 IT 行业的菜鸟,有的时候在网上浏览到一些好的技术文章,看过之后转头就忘记了,所以有一个自己的技术博客做一些记录是非常有必要的。但是个人博客虽然简单但是开发起来费时费力,而且如果要添加什么功能也非常的麻烦;SO 选一个开源的博客工具是一个非常好的办法。这里就记录一下使用 HexoGithub pages 搭建个人博客的步骤、插件的集成和碰到的问题

那么为什么要使用 Github pages 来搭建个人博客呢?

  • 支持绑定自己的域名
  • 提交网站等同于上传自己的代码
  • 提供免费的空间,而且就在自己的仓库里 (PS: 在服务器上维护自己的 Blog 真的很麻烦!!)
Read more »