elasticsearch中的基本概念和原理

phpmianshi2年前 (2019-06-28)ES247
基本概念和原理 ES其实就是基于lucene之上封装的一个分布式 索引框架,所以lucene拥有的特性,它都是有的,同时因为它是基于分布式的,所以对很多的功能进行了扩展,要想掌握ES,需要先熟悉一...

高性能网络编程中的I/O模型

phpmianshi2年前 (2019-06-06)架构42
高性能网络编程中的I/O模型
互联网服务端处理网络请求的原理首先看看一个典型互联网服务端处理网络请求的典型过程由上图可以看到,主要处理步骤包括:1. 获取请求数据,客户端与服务器建立连接发出请求,服务器接受请求(1-3);2. 构...

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

phpmianshi2年前 (2019-06-05)架构41
常识一:文件句柄限制在linux下编写网络服务器程序的朋友肯定都知道每一个tcp连接都要占一个文件描述符,一旦这个文件描述符使用完了,新的连接到来返回给我们的错误是“Socket/File:Can&#...

大型系统高可用的一般策略

phpmianshi2年前 (2019-05-26)架构82
负载均衡首先是应用服务器的负载均衡。负载均衡核心要解决的就是通过一个负载均衡服务器,将用户的请求分发给多个应用服务器,将多个应用服务器构建成一个集群,共同对外提供服务。这样的架构可以提高系统的处理能力...

互联网应用可用性的度量

phpmianshi2年前 (2019-05-20)架构108
概念业界通常用多少个 9 来说明互联网应用的可用性。示例比如说 QQ 的可用性是 4 个 9,就是说 QQ 的服务 99.99% 可用,这句话的意思是 QQ 的服务要保证在其所有的运行时间里只有 0....

系统架构的演进之路-单体到SOA到微服务

phpmianshi2年前 (2019-05-10)架构94
单体系统的困难在微服务出现之前,互联网应用系统主要是单体系统,也就是说一个网站的整个系统由一个应用构成。如果是 Java,就打包成一个 war 包,一个 war 包包含整个应用系统,系统更新的时候,即...

redis超时时间和连接数查询与设置

phpmianshi2年前 (2019-04-15)缓存48
redis客户端连接数redis通过监听一个TCP端口或socket的方式接收来自客户端的连接, 当与客户端建立连接后,redis内部会进行如下操作: (1)客户端socket会被设置为非阻塞模式...

redis中分析key大小的几种方法

phpmianshi2年前 (2019-04-13)缓存206
背景当redis被用作缓存时,有时我们希望了解key的大小分布,或者想知道哪些key占的空间比较大。本文提供了几种方法。一. bigKeys这是redis-cli自带的一个命令。对整个redis进行扫...

redis的bigkey问题如何解决

phpmianshi2年前 (2019-04-12)缓存443
寻找big key有如下几种方法redis-cli自带--bigkeys,例如:redis-cli -h -a --bigkeys获取生产Redis的rdb文件,通过rdbtools分析rdb生成cs...

redis的热key问题如何解决

phpmianshi2年前 (2019-04-11)缓存662
概念其实热key问题说来也很简单,就是瞬间有几十万的请求去访问redis上某个固定的key,那么,这样会造成流量过于集中,达到物理网卡上限,从而导致这台redis的服务器宕机。那接下来这个key的请求...

如何使用sentry进行异常监控

phpmianshi2年前 (2019-04-11)架构557
系统架构中应用程序的监控非常重要。比如你是否遇到过这种问题:当用户向你抛出一个bug(或者说异常),而你却找不到异常出现的原因和时机,也很难去重现这种奇葩的事件,此时你有一种众里寻他千百度,那bug却...

如何应对网站流量暴增

phpmianshi2年前 (2019-04-10)架构476
如何应对网站流量暴增
按照经验大概出问题地方是DB,磁盘io、CPU、带宽、连接数、内存其中的一个或几个。不同的业务,不同的系统设计,出问题的地方会有所不同。如果流量增大数倍,势必某个资源会在瞬间被榨干,然后所有的服务都会...

微博朋友圈亿级Feed流如何设计

phpmianshi2年前 (2019-04-07)架构311
微博朋友圈亿级Feed流如何设计
简介Feed流是Feed + 流,Feed的本意是饲料,Feed流的本意就是有人一直在往一个地方投递新鲜的饲料,如果需要饲料,只需要盯着投递点就可以了,这样就能源源不断获取到新鲜的饲料。 在...

秒杀如何设计

phpmianshi2年前 (2019-04-06)架构377
秒杀难点:1、突发流量、数据热点2、数据一致性、短暂混沌态如果采用传统的数据库进行数据存储,对同一资源的争抢,就会面临严重的锁冲突问题。一般是通过一个前置的,速度更快的存储顶在前面,这就涉及到源库和目...

Golang中协程调度器底层实现( G、M、P)

phpmianshi2年前 (2019-04-06)golang317
三个必知的核心元素。(G、M、P)G:Goroutine的缩写,一个G代表了对一段需要被执行的Go语言代码的封装M:Machine的缩写,一个M代表了一个内核线程,等同于系统线程P:Processor...

如何实现分布式事务及BASE和CAP理论

phpmianshi2年前 (2019-04-03)架构378
事务定义简单地说,事务提供一种“要么什么都不做,要么做全套(All or Nothing)”机制。数据库本地事务数据库事务中的四大特性 ACIDA:原子性(Atomicity),一个事务(transa...

基于rebase的Git工作流

phpmianshi2年前 (2019-04-01)架构198
使用Git在多人协作的过程中,我们也会面临如何运用好Git的问题。这种情况下,就出现了各种各样的Git Workflow,而本文将介绍一种基于rebase的工作流,这种工作流也是目前开源社区所比较推崇...

Docker中部署Golang项目

phpmianshi2年前 (2019-01-12)docker37
1. 安装docker参考:https://blog.csdn.net/tiancityycf/article/details/1027996462. 默认你已经有一个可以正常运行的golang项目了...

docker 宿主机与容器里文件共享 -v和 VOLUME

phpmianshi2年前 (2019-01-11)docker42
在介绍VOLUME指令之前,我们来看下如下场景需求:1)容器是基于镜像创建的,最后的容器文件系统包括镜像的只读层+可写层,容器中的进程操作的数据持久化都是保存在容器的可写层上。一旦容器删除后,这些数据...

Docker中Dockerfile 中的 COPY 与 ADD 命令

phpmianshi2年前 (2019-01-10)docker50
Docker中Dockerfile 中的 COPY 与 ADD 命令
Dockerfile 中提供了两个非常相似的命令 COPY 和 ADD,本文尝试解释这两个命令的基本功能,以及其异同点,然后总结其各自适合的应用场景。Build 上下文的概念在使用 docker bu...