8 爱思考的实践者

尚未进行身份认证

我的到来,让世界变得更好。My coming makes this world a better place to live in.

等级
TA的排名 9k+

看懂Serverless,这一篇就够了

1.无服务器(Serverless)计算是什么云计算涌现出很多改变传统IT架构和运维方式的新技术,比如虚拟机、容器、微服务。无论这些技术应用在哪些场景,“降低成本、提升效率”是云服务永恒的主题。过去十年来,我们已经把应用和环境中很多通用的部分变成了服务。Serverless的出现,带来了跨越式变革。Serverless把“主机管理、操作系统管理、资源分配、扩容”,甚至是“应用逻辑的全部组...

2019-12-05 20:08:41

curl无法访问http/https的解决方法

今天遇到一个奇怪的事情,curl无法访问http/https url地址,但是postman可以调用,浏览器也可以访问。如下所示:仔细看了下curl -v的返回值,发现请求的是本地IP和端口,推测可能有http代理进程干扰。于是,顺藤摸瓜,查询下是否有进程占用这个端口,使用命令如下:$ netstat -a | grep 8123结果如下所示:确实是有进程占用这个端口,使...

2019-11-15 15:30:40

supervisor配置示例

supervisor是通过配置文件来管理进程的。可以把所有配置项都写到supervisord.conf 文件里,但并不推荐这样做。推荐做法是:通过 include 的方式,把不同的程序(或程序组)写到不同的配置文件里。为了举例,我们使用目录 /etc/supervisor/ 存放这些配置文件,相应的,把/etc/supervisord.conf里include部分的配置修改为:[incl...

2019-11-12 15:04:59

php支持mongo模糊查询、转义特殊字符

在php里面,mongo模糊查询某些带特殊符号的字符串,发现查不到结果。于是,一顿找资料,发现:必须将带转义特殊字符的字符串进行转义处理,才能匹配到结果。封装了一个PHP版本的mongo模糊查询转义特殊字符的方法,如下所示: /** * 转义正则特殊字符 ($()*+.[]?\^{},|) * * @param originStr * @return */ publ...

2019-11-05 14:20:22

php实现获取某指定叶子结点到根结点的路径

问题:有一个多叉树,如下所示: class node { public $data = null; public $children = null; public function __construct($data) { $this->data = $data; } } $r...

2019-10-30 15:59:51

php实现获取从叶子结点到根结点的路径

问题:有一个多叉树,如下所示: class node { public $data = null; public $children = null; public function __construct($data) { $this->data = $data; } } $r...

2019-10-30 15:40:38

高并发中的惊群效应简介

一.惊群效应简介所谓惊群效应,就是多个进程或者线程在等待同一个事件,当事件发生时,所有进程或者线程都会被内核唤醒。然后,通常只有一个进程获得了该事件,并进行处理;其他进程在发现获取事件失败后,又继续进入了等待状态。这在一定程度上降低了系统性能。具体来说,惊群通常发生在服务器的监听等待调用上。服务器创建监听socket,然后fork多个进程,在每个进程中调用accept或者epoll_wai...

2019-10-29 15:29:53

C10k问题简述

所谓c10k问题,指的是:服务器如何支持10k个并发连接,也就是concurrent 10000 connection(这也是c10k这个名字的由来)。由于硬件成本的大幅度降低和硬件技术的进步,如果一台服务器能够同时服务更多的客户端,那么也就意味着服务每一个客户端的成本大幅度降低。从这个角度来看,c10k问题显得非常有意义。一、C10K问题由来互联网的基础是网络通信,早期的互联网可以说是一...

2019-10-28 14:46:48

单台服务器并发TCP连接数到底可以有多大

曾几何时,我们还在寻找网络编程中C10K问题的解决方案。现在,从硬件和操作系统支持来看,“单台服务器支持上万并发连接”已经没有多少挑战性了。我们先假设:单台服务器最多只能支持万级并发连接。其实,这对绝大多数应用来说,已经远远足够了。但是,对于一些拥有很大用户基数的互联网公司,往往面临的并发连接数是百万、千万,甚至是上亿(百度、阿里、腾讯等公司,其网络服务TCP并发连接数往往会过亿)。现在的...

2019-10-28 11:06:25

php实现笛卡尔积

问题:有那么一个数组$arr = array( array(1, 2, 3), array('中','国','人'), array('a','b','c'));要求使用PHP语言实现计算该数组的笛卡尔积。实现过程如下所示:<?php $arr = array( array(1, 2, 3), array('...

2019-10-26 17:31:26

深入理解 MySQL ——锁、事务与并发控制

本文对 MySQL 数据库中有关锁、事务及并发控制的知识及其原理做了系统化的介绍和总结,希望帮助读者能更加深刻地理解 MySQL 中的锁和事务,从而在业务系统开发过程中可以更好地优化与数据库的交互。1、MySQL 服务器逻辑架构 (图片来源MySQL官网...

2019-10-21 19:17:16

mac下安装python3

mac下安装python31.先用brew search命令查看brew search python3结果如下所示:==> Formulaeboost-python3 python3 python@3If you ...

2019-10-14 14:42:19

etcdAPI 文档

etcd 对外通过 HTTP API 对外提供服务,这种方式方便测试(通过 curl 或者其他工具就能和 etcd 交互),也很容易集成到各种语言中(每个语言封装 HTTP API 实现自己的 client 就行)。下面介绍下 etcd 通过 HTTP API 提供了哪些功能,并使用httpie来交互(当然你也可以使用 curl 或者其他工具)。一、etcd的http api1.获...

2019-09-10 17:53:36

etcd安装简介

etcd的简介请参考https://blog.csdn.net/chinawangfei/article/details/95046120。本篇主要介绍etcd的安装。etcd 是用 go 语言编写的,安装过程简单,只需要下载对应的二进制文件,并放到合适的路径即可。1.单点安装如果在测试环境,启动一个单点的 etcd 服务,只需要运行etcd命令就行。2019-07-03...

2019-09-10 17:29:43

mac安装mongodb

mac安装mongodb比较简单,直接使用命令brew install mongodb即可。安装过程所示:$ brew install mongodb==> Installing dependencies for mongodb: python@2==> Installing mongodb dependency: python@2==> Downloading ht...

2019-07-19 16:00:17

mac安装redis

mac安装redis比较简单,直接使用命令brew install redis即可。安装过程所示:$ brew install redis==> Downloading https://homebrew.bintray.com/bottles/redis-5.0.5.mojave.bottle.tar.gz==> Downloading from https://akamai...

2019-07-19 15:21:55

mac安装mysql

mac安装mysql比较简单,直接使用命令brew install mysql即可。安装过程所示:$ brew install mysqlUpdating Homebrew...==> Downloading https://homebrew.bintray.com/bottles/mysql-8.0.16.mojave.bottle.tar.gz==> Downloadi...

2019-07-19 15:16:24

mac安装nginx

mac安装nginx比较简单,直接使用命令brew install nginx即可。安装过程所示:$ brew install nginx==> Installing dependencies for nginx: openssl and pcre==> Installing nginx dependency: openssl==> Downloading https...

2019-07-18 14:12:39

etcd使用场景

要问etcd是什么?很多人第一反应可能是“一个键值存储仓库”,却没有重视官方定义的后半句,用于配置共享和服务发现。A highly-available key value store for shared configuration and service discovery.实际上,etcd作为一个受到ZooKeeper与doozer启发而催生的项目,除了拥有与之类似的功能外,更专注...

2019-07-08 17:59:34

Etcd概念简介

一、Etcd简介etcd 是一个分布式键值对存储系统,由coreos 开发,内部采用 raft 协议作为一致性算法,用于可靠、快速地保存关键数据,并提供访问。通过分布式锁、leader选举和写屏障(write barriers),来实现可靠的分布式协作。etcd集群是为高可用、持久化数据存储和检索而准备。"etcd"这个名字源于两个想法,即 unix “/etc” 文件夹和分布式系统"d"...

2019-07-08 17:54:10

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。