- 浏览: 3594 次
最新评论
文章列表
JAVA 9模块系统(一)
- 博客分类:
- JAVA
在JAVA 9之前,我们会遇到一些JAR相关的问题:有些是缺少相关依赖,有些是存在多个版本,这可能导致功能错误,甚至是系统的崩溃。对开发者来说,我们很容易理解各个JAR有自己的标识,组件之间存在依赖。但是对JAVA来 ...
在软件架构中借鉴造船行业中的舱壁隔离设计,当某部分服务不可用的时候,造成的影响不会造成系统的崩溃,避免出现雪崩效应。
在Hystrix中,使用线程池和信号量来实现这一模式。(下图为:Hystric提供的隔离模型)
使用线程池隔离的实现:在访问依赖服务时,如果出现失败,Hystrix会创建线程池来处理这类服务;在服务可用时,即恢复正常,线程池被销毁。
使用线程池隔离的原因:由于依赖服务多;每个服务变化;经常出现某些属性配置错误,可以修改动态参数来恢复正常;客户端的调用一般是同步的。
使用线程池隔离的优势:依赖服务出现问题,不会引起系统其它模块出现问题;线程池可以动态监 ...
在微服务中,各种服务形成一个错综复杂的调用网络。如果其中一个服务或者某些服务发生错误后,可能引起级联的反应,从而导致系统发生严重的事故。如何避免这类情况的出现,我们在电力行业找到了类似的设计。
在电力行业,断电器是系统的一个重要组成部分,工程师们通过保险丝的熔断、调整来保证系统的安全。
软件行业也利用这种原理来设计具有弹性的容错架构,比如Netflix的hystrix.
断电器的设计包含以下几个方面:
1. 封装断电器对象,提供受保护的方法调用
2. 当方法调用出现超时,记录下超时次数,本次调用失败;在超时次数超过临界值的设定时,开启断电保护,以后访问该服务的直接返回错 ...
定义: 负载均衡是为了扩展服务器的带宽、吞吐量,加强应用的可用性和灵活性,搭架在现有的网络架构上。主要功能是根据一系列算法,将操作分配到不同的服务器上。常用的有硬件负载均衡,比如F5;软件负载均衡,比如Nginx。其架构如下图:
原理: 负载均衡服务器维护一系列可用的服务清单,通过心跳来检查服务器的健康情况。当客户端发送请求的时候,负载均衡服务根据相应的规则(轮询、加权轮询、最少连接、加权最少连接)来选择跳往的服务器.
服务器端负载均衡: 故名思意, 负载均衡配置在服务器端,客户端的所有请求都首先经过负载均衡服务器。然后根据具体的规则,决定访问某个具体的业务服务器。
...