5 sun_qiangwei

尚未进行身份认证

暂无相关简介

等级
TA的排名 8w+

Docker Swarm 报 Error response from daemon: rpc error: code = 4 desc = context deadline exceeded

问题:Docker集群重启之后,使用dockernodels查看节点时,报"Errorresponsefromdaemon:rpcerror:code=4desc=contextdeadlineexceeded"的错误。之前的集群配置如下:解决步骤:1、查看当前docker的输出的日志文件,Jun3010:55:33Docker1dockerd-cur...

2018-06-30 11:21:07

docker save与docker export的区别

缘起docker save和docker export都能导出镜像包,咋看起来区别似乎不大。本文就针对这个问题,试图搞清楚docker save和docker export的功能是什么?适用于什么应用场景?本文的测试的Docker版本如下,不保证所有版本的docker都能重现本文的结果。>docker versionClient: Version: 17.07.0-ce-rc...

2018-06-21 21:54:19

OpenShift 数据持久化

容器的一个特点是当容器退出后,其内部所有的数据和状态就会丢失。对于无状态应用来说这不是问题,但对于有状态的应用来说则是重要数据丢失的重大问题。OpenShift中为了满足数据持久化需求,采用了 kubernates 的 persistence volume 框架,在 kubenates 中的这个 persistence volume 子系统则为集群用户和管理员提供了一套API,这套API对底层的持...

2018-05-28 22:06:53

OpenShift Metrics(监控)部署

OpenShift Metrics(监控)采用Kubernetes原生的kubelet api提供数据,然后使用 heapster进行收集存储到cassandra数据库中,这些监控数据最主要是用来进行 pad autoscalers。一、准备工作先在Master节点上安装1.8版本的JDK,并将其添加到PATH环境变量中。二、切换项目到 openshift-infra[root@ocp ~]# o...

2018-05-28 22:01:28

OpenShift 健康检查

一、健康检查方式在OpenShift的Deployment Config中,用户可以定义两种健康检查方式:Readiness Probe:检查应用是否已经就绪(原因是当应用刚刚开始启动的时候,应用需要进行其所依赖资源的准备工作,列如 加载class、获得数据库连接 等等),OpenShift通过检查Readiness Probe接口,只有在确认服务就绪后,才会将外界的流量转发至服务。如果检测失败之...

2018-05-25 23:22:00

OpenShift 弹性伸缩 Replication Controller

RC(Replication Controller),复制控制器,其是Kubernetes的一个组件,主要是负责监控容器数量,当发现容器数量少于部署定义数量时,出发新的部署请求。在OpenShift中,每个应用的Deployment Config 中都定义了部署容器数量(Replicas),当OpenShift在进行部署的时候同时会启动一个Replication Controller,并将Depl...

2018-05-25 22:18:14

OpenShift 3.9 多节点集群(Ansible)安装

OpenShift集群的部署可以分为以下几个阶段:1、主机环境准备:准备OpenShift集群需要的主机,并进行集群环境准备。2、安装依赖包:提前安装使用Ansible安装OpenShift集群所依赖的第三方包。3、Ansible执行安装:使用Ansible Playbook进行自动化安装。4、OpenShift系统配置:在使用Ansible执行安装完成之后的系统配置。5、测试...

2018-05-24 21:19:16

缓存失效问题及解决方案

问题:某个时间点内,系统预加载的缓存周期性集中失效了。解决方法:可以通过设置不同的过期时间,来错开缓存过期,从而避免缓存集中失效。

2018-05-21 09:49:47

缓存穿透问题及解决方案

缓存穿透也被称为“击穿”。很多朋友对缓存穿透的理解是:由于缓存故障或者缓存过期导致大量请求穿透到后端数据库服务器,从而对数据库造成巨大冲击。这其实是一种误解。真正的缓存穿透应该是这样的:    在高并发场景下,如果某一个key被高并发访问,没有被命中,出于对容错性考虑,会尝试去从后端数据库中获取,从而导致了大量请求达到数据库,而当该key对应的数据本身就是空的情况下,这就导致数据库中并发的去执行了...

2018-05-21 09:49:06

缓存雪崩问题及处理方案

一、什么是缓存雪崩缓存雪崩就是指缓存由于某些原因(比如宕机、cache服务挂了或者不响应)整体crash掉了,导致大量请求到达后端数据库,从而导致数据库崩溃,整个系统崩溃,发生灾难。下面的就是一个雪崩的简单过程:1、redis集群彻底崩溃2、缓存服务大量对redis的请求hang住,占用资源3、缓存服务大量的请求打到源头服务去查询mysql,直接打死mysql4、源头服务因为mysql被打死也崩...

2018-05-21 09:41:30

十一、Hystrix Dashboard+Turbine

除了隔离依赖服务的调用外,Hystrix还提供了近乎实时的监控,Hystrix会实时的,累加的记录所有关于HystrixCommand的执行信息,包括执行了每秒执行了多少请求,多少成功,多少失败等等,更多指标请查看:https://github.com/Netflix/Hystrix/wiki/Metrics-and-Monitoring导出监控数据有了这些指标,Netflix还提供了一个类库(h...

2018-05-20 08:16:00

十、Hystrix 参数详解

Hystrix属性优先级1、内置全局默认值(Global default from code),默认值如果某属性未通过下面的任何方式进行设置,则默认使用内置全局默认值。2、动态全局默认属性(Dynamic global default property),默认属性可以通过此方式来更改某属性的全局默认值。3、内置实例默认值(Instance default from code),实例默认可以在写代码...

2018-05-19 18:43:35

九、Hystrix线程池

Hystrix把服务调用统称为依赖调用,Hystrix通过命令模式封装依赖调用,每一个依赖调用封装在HystrixCommand中,每个命令在Hystrix的线程池中运行。另外可以对其配置分组名、线程组,使得不同的依赖可以分类在不同的线程组,隔离不同模块的依赖,也可根据负载情况,配置不同组的线程数。命令名称HystrixCommandKeyHystrixCommand的名字,比如可以是某远程服务名...

2018-05-19 18:41:55

八、Hystrix 工作流程解析

Hystrix内部存在一套精细、高效和简洁的流程,该流程为实现hystrix的服务降级、故障隔离、访问限流和对被依赖服务运行信息的维护奠定了坚实的基础。Hystrix整体工作流程hystrix整个工作流程涉及到熔断器、缓冲、线程池等组件。这些组件分别实现了故障隔离、访问合并、服务降级和访问限流等功能,正是这些组件高效密切的配合确保了服务的稳定运行。下面是hystrix的整体工作流程图:整个流程可以...

2018-05-19 18:40:43

七、Hystrix请求合并(request collapser)

Hystrix支持N个请求自动合并为一个请求,这个功能在有网络交互的场景下尤其有用,比如每个请求都要网络访问远程资源,如果把请求合并为一个,将使多次网络交互变成一次,极大节省开销。请求合并有很多种级别:1、Global Context,tomcat所有调用线程,对一个依赖服务的任何一个command调用都可以被合并在一起。2、User Request Context,tomcat内某一个调用线程,...

2018-05-19 18:38:55

六、Hystrix请求缓存(request cache)

Hystrix支持将一个请求结果缓存起来,在同一个请求上下文中,具有相同key的请求将直接从缓存中取出结果,很适合查询类的接口,可以使用缓存进行优化,减少请求开销,从而跳过真实服务的访问请求。Hystrix请求结果缓存的作用:1、在同一个请求上下文中,可以减少使用相同参数请求原始服务的开销。3、请求缓存在 run() 和 construct() 执行之前生效,所以可以有效减少不必要的线程开销。要使...

2018-05-19 18:38:19

五、Hystrix特性之降级

Fallback相当于是降级操作。所谓降级,就是指在Hystrix执行非核心链路功能失败的情况下,该如何处理,比如返回默认值或者从缓存中取值。触发降级的情况1、hystrix调用各种接口,或者访问外部依赖(如mysql、redis等等)时,执行方法中抛出了异常。2、对每个外部依赖,无论是服务接口,中间件,资源隔离,对外部依赖只能用一定量的资源去访问,线程池/信号量,如果资源池已满,则后续的请求将会...

2018-05-19 18:37:47

四、Hystrix特性之熔断

熔断器(CircuitBreaker)熔断器的原理很简单,如同电力过载保护器。它可以实现快速失败,如果它在一段时间内侦测到许多类似的错误,会强迫其以后的多个调用快速失败,不再访问远程服务器,从而防止应用程序不断地尝试执行可能会失败的操作,使得应用程序继续执行而不用等待修正错误,或者浪费CPU时间去等到长时间的超时产生。熔断器也可以使应用程序能够诊断错误是否已经修正,如果已经修正,应用程序会再次尝试...

2018-05-19 18:35:49

三、Hystrix特性之限流

限流在日常生活中很常见,比如节假日你去一个旅游景点,为了不把景点撑爆,管理部门通常会在外面设置拦截,限制景点的进入人数(等有人出来之后,再放新的人进去)。对应到计算机中,比如要搞活动、秒杀等,通常都会限流。在Hystrix中:1、如果是线程隔离,可以通过线程数+队列大小限制。参数如下:hystrix.threadpool.default.coreSizehystrix.threadpool.def...

2018-05-19 18:34:48

二、Hystrix特性之资源隔离

在一个分布式系统中,服务之间都是相互调用的,比如,商品详情展示服务会依赖商品服务,价格服务,商品评论服务,如下图所示:调用三个依赖服务会共享商品详情服务的线程池,如果其中的商品评论服务因不可用导致线程阻塞,这个时候后续的大量商品详情请求过来了,那么线程池里所有线程都因等待响应而被阻塞,整个商品详情服务对外不可用,从而造成服务雪崩,如图所示:一、资源隔离之线程隔离1、简介货船为了进行防止漏水和火灾的...

2018-05-19 18:33:38

查看更多

勋章 我的勋章
    暂无奖章