- 博客(30)
- 资源 (2)
- 收藏
- 关注
原创 Spring源码之Resources官方文档翻译
8.1简介不幸的是,Java的标准java.net.URL类和用于各种URL前缀的标准处理程序并不足以对所有低级资源进行访问。例如,没有标准化的URL实现可以用于访问需要从类路径获得的资源,或者访问与servlet上下文相关的资源。虽然可以为专门化的URL前缀注册新的处理程序(类似于为前缀(如http:)注册现有的处理程序),但这通常非常复杂,URL接口仍然缺少一些理想的功能,例如检查所指向的...
2018-12-28 11:23:42 433
原创 Spring Cloud Netflix之路由器和过滤器: Zuul
路由是微服务体系结构的一个组成部分。例如,/可能映射到web应用程序,/api/users映射到用户服务,/api/shop映射到商店服务。Zuul是Netflix基于JVM的路由器和服务器端负载均衡器。Netflix使用Zuul做以下用途:身份验证 洞察 压力测试 金丝雀测试 动态路由 服务迁移 甩负荷 安全性 静态响应处理 主动/主动交通管理zuul的规则引...
2018-12-28 09:48:37 768
原创 Spring Cloud Netflix Hystrix官方文档翻译之:配置
简介Hystrix使用Archaius作为配置属性的默认实现。下面的文档描述了默认的HystrixPropertiesStrategy实现,除非您使用插件覆盖它。每个属性有四个优先级:1.代码的全局默认值如果以下3个选项都没有设置,这是默认设置。全局默认值在下表中显示为“Default Value”。2.动态全局默认属性可以使用属性更改全局默认值。全局默认属性名...
2018-12-18 14:59:06 737 1
原创 Spring Cloud Netflix Eureka官方WIKI翻译之 Eureka初印象
Eureka是什么?Eureka是一种基于REST(具像状态传输)的服务,主要用于AWS云中定位服务,以实现中间层服务器的负载平衡和故障转移。我们将此服务称为Eureka服务器。Eureka还附带了一个基于java的客户端组件——Eureka客户端,它使与服务的交互更加容易。客户端还有一个内置的负载均衡器,它执行基本的循环负载平衡。在Netflix,一个更加复杂的负载均衡器封装了Eureka,...
2018-12-14 17:38:40 253
原创 Spring Cloud Netflix Eureka官方WIKI翻译之 配置Eureka
Eureka提供了两个组件——Eureka客户端和Eureka服务器。使用Eureka的体系结构通常有两个应用程序Application Client 它使用Eureka客户端向应用程序服务发出请求。 Application Service 它接收来自应用程序客户端的请求并发回响应。设置包括以下内容Eureka Server Eureka Client for the applica...
2018-12-14 17:38:29 453
原创 Spring Cloud Netflix Ribbon官方WIKI翻译之 使用负载平衡器
概述Ribbon提供了软件负载均衡器来与服务器集群通信。负载均衡器提供以下基本功能:向通信客户端提供单个服务器的公共DNS名称或IP 根据特定逻辑在服务器列表之间进行轮换某些负载平衡器还可以提供以下高级特性:通过将客户端和服务器划分为多个区域(如数据中心中的机架)来建立它们之间的亲缘关系,并支持位于同一区域的服务器,以减少延迟 保持服务器的统计数据,避免服务器出现高延迟或频繁故障...
2018-12-13 19:00:00 255
原创 Spring Cloud Netflix Ribbon官方WIKI翻译之 程序员指南
客户端配置选项配置客户端和负载均衡器最简单的方法是将符合特定格式的属性加载到Archaius中:<clientName>.<nameSpace>.<propertyName>=<value> 您可以在类路径上的文件中定义属性,也可以将其定义为系统属性。如果是前者,应该调用ConfigurationManager.loadProperti...
2018-12-13 18:43:50 543
原创 Spring Cloud Netflix Ribbon官方WIKI翻译之 Getting Started
最简单的入门方法是使用属性驱动的工厂用负载均衡器创建客户机实例。示例应用程序在rip -httpclient中显示了基本用法,并描述如下:The properties file (sample-client.properties)# 同一服务器上重试的最大次数(不包括第一次重试)sample-client.ribbon.MaxAutoRetries=1# 重试的下一个服务器的最大数量...
2018-12-13 18:19:18 323
原创 Spring Cloud Netflix Ribbon官方WIKI翻译之 特性
特性多个可插入的负载平衡规则Ribbon提供基于规则的负载平衡。它支持循环、响应时间加权和随机负载平衡机制。它可以通过插入不同的规则来进一步扩展。与服务发现的集成Ribbon包括能够在动态环境中发现服务的负载平衡器。您所需要做的就是实现一个返回服务器列表的接口。在ribbon-eureka中提供了与基于Eureka的服务发现的集成。Cloud enabledRibbon提供...
2018-12-13 18:09:17 201
原创 Spring Cloud Netflix之声明式REST客户端:Feign
Feign是一个声明性web服务客户端。它使编写web服务客户机变得更容易。要使用Feign创建一个接口并对其进行注释。它具有可插入的注释支持,包括伪注释和JAX-RS注释。Feign还支持可插拔的编码器和解码器。Spring Cloud增加了对Spring MVC注释的支持,并支持使用在Spring Web中默认使用的相同httpmessageconverter。Spring Cloud集成Ri...
2018-12-13 16:48:49 409
原创 Spring Cloud Netflix之客户端负载均衡器:Ribbon
Ribbon是一个客户端负载均衡器,它提供了对HTTP和TCP客户端的行为的大量控制。Feign已经在使用Ribbon了,所以如果你在使用@FeignClient,那么这个部分也适用。Ribbon中的一个核心概念是命名客户端。每个负载均衡器都是组件集合的一部分,这些组件一起工作,根据需要联系远程服务器,集成有一个名称,作为应用程序开发人员使用(比如:使用@FeignClient注解)。Spri...
2018-12-13 15:18:43 762
原创 Spring Cloud Netflix之Hystrix超时和Ribbon客户端超时及Turbine
在使用包装Ribbon客户端的Hystrix命令时,您希望确保将您的Hystrix超时配置为比配置的Ribbon超时更长的超时,包括可能进行的任何潜在重试。例如,如果您的Ribbon连接超时为一秒,而Ribbon客户机可能重试请求三次,那么您的Hystrix超时应该略多于三秒。如何引入Hystrix Dashboard在项目中引入Hystrix Dashboard,通过starter使用g...
2018-12-13 14:24:50 589
原创 Spring Cloud Netflix之断路器:Hystrix Clients
Netflix创建了一个名为Hystrix的库,它实现了断路器模式。在微服务体系结构中,通常有多个服务调用层。Figure 3.1. Microservice Graph 低级服务中的服务失败会导致级联失败,一直持续到用户。当对特定服务的调用大于circuitBreaker.requestVolumeThreshold (default: 20 requests)和失败百分比大于cir...
2018-12-13 11:26:59 272
原创 Spring Cloud Netflix之服务发现:Eureka Server
如何引入Eureka Server要在项目中引入Eureka Server,请使用group org.springframework.cloud和artifact id spring-cloud-starter-netflix-eureka-server.。有关使用当前的Spring Cloud发布系列设置构建系统的详细信息,请参阅Spring Cloud项目页面。如何运行Eureka S...
2018-12-13 10:51:13 203
原创 Spring Cloud Netflix之服务发现:Eureka Client
服务发现是基于微服务的体系结构的关键原则之一。手动配置每个客户端或某种形式的约定可能非常困难,而且非常脆弱。Eureka是Netflix服务发现服务器和客户端。可以将服务器配置和部署为高可用性,每个服务器将注册服务的状态复制到其他服务器。如何引入Eureka客户要在项目中包含Eureka客户端,请使用starter和group org.springframework.cloud 和arti...
2018-12-13 10:33:42 2243
原创 Netty学习:ChannelPipeline
一个{@link ChannelHandler}的列表,它处理或拦截{@link Channel}的入站事件和出站操作。创建管道 每个通道都有自己的管道,在创建新通道时自动创建管道。事件如何在管道中流动下图描述了在{@link ChannelPipeline}中{@link ChannelHandler}s如何处理I/O事件。I/O事件由{@link ChannelInboun...
2018-12-11 10:00:31 1597
原创 Netty学习:ChannelHandler
处理I/O事件或拦截I/O操作,并将其转发给其{@link ChannelPipeline}中的下一个处理程序。子类型{@link ChannelHandler}本身并没有提供很多方法,但是您通常需要实现它的一个子类型:{@link ChannelInboundHandler}来处理入站I/O事件 {@link ChannelOutboundHandler}来处理出站I/O操作。另...
2018-12-10 21:42:59 163
原创 Netty学习:ChannelHandlerContext及基实现类AbstractChannelHandlerContext
ChannelHandlerContext允许{@link ChannelHandler}与其{@link ChannelPipeline}和其他处理程序交互。处理程序可以通知{@link ChannelPipeline}中的下一个{@link ChannelHandler},还可以动态修改它所属的{@link ChannelPipeline}。通知通过调用这里提供的各种方法之一...
2018-12-10 20:06:16 1826
原创 Netty学习:ChannelOutboundInvoker
ChannelFuture bind(SocketAddress localAddress);请求绑定到给定的{@link SocketAddress},并在操作完成后通知{@link ChannelFuture},原因可能是操作成功,也可能是错误。这将导致{@link Channel}的{@link ChannelPipeline}中的下一个{@link ChannelOutboundHandl...
2018-12-10 20:05:24 1736 1
原创 Netty学习:ChannelInboundInvoker
ChannelInboundInvoker fireChannelRegistered();一个{@link Channel}注册到它的{@link EventLoop}。这将导致{@link ChannelInboundHandler#channelRegistered(ChannelHandlerContext)}方法被调用,该方法调用的下一个{@link ChannelInboundHan...
2018-12-10 19:36:18 651
原创 Netty学习:Channel及其内部接口Unsafe
连接到网络套接字或组件的一种连接,它能够进行I/O操作,如读、写、连接和绑定。通道为用户提供:通道的当前状态(例如是否打开?)它是连接吗?) 通道的{@linkplain ChannelConfig配置参数}(如接收缓冲区大小), 通道支持的I/O操作(例如读、写、连接和绑定) {@link ChannelPipeline}处理与通道关联的所有I/O事件和请求。所有I/O操作都是异...
2018-12-10 17:19:34 6910 1
原创 Netty学习:DefaultChannelPromise
默认的{@link ChannelPromise}实现。建议使用{@link Channel#newPromise()}创建一个新的{@link ChannelPromise},而不是显式调用构造函数。 Promise<V> setSuccess(V result);标志着这一future 的成功,并通知所有listeners。如果已经成功或失败,它将抛出{@link Ille...
2018-12-10 16:42:28 2808
原创 Netty学习:ChannelFuture
异步{@link Channel} I/O操作的结果。Netty中的所有I/O操作都是异步的。这意味着任何I/O调用都将立即返回,并且不能保证在调用结束时已完成所请求的I/O操作。相反,您将返回一个{@link ChannelFuture}实例,该实例将提供关于I/O操作的结果或状态的信息。一个{@link ChannelFuture}要么是<em>uncompleted<...
2018-12-10 15:54:16 804
原创 Netty学习:EventExecutorGroup
{@link EventExecutorGroup}负责通过其{@link #next()}方法提供{@link EventExecutor}的。除此之外,它还负责处理它们的生命周期,并允许在全局范围内关闭它们。boolean isShuttingDown();当且仅当由这个{@link EventExecutorGroup}管理的所有{@link EventExecutor}正在{@link...
2018-12-10 13:47:08 1291
原创 Netty学习:EventExecutor
{@link EventExecutor}是一个特殊的{@link EventExecutorGroup},它提供了一些方便的方法来查看{@link线程}是否在事件循环中执行。除此之外,它还扩展了{@link EventExecutorGroup},以便提供一种访问方法的通用方法。EventExecutor next();返回对自身的引用。EventExecutorGroup parent...
2018-12-10 13:35:31 1062
转载 JAVA多线程之:ExecutorService
public interface ExecutorService extends Executor { void shutdown();//顺次地关闭ExecutorService,停止接收新的任务,等待所有已经提交的任务执行完毕之后,关闭ExecutorService List<Runnable> shutdownNow();//阻止等待任务启动并试图停止当...
2018-12-10 13:13:35 145
原创 Netty学习一:官网文档翻译(4.x版本)
官网地址:https://netty.io/Netty是一个异步事件驱动的网络应用框架用于快速开发可维护的高性能协议服务器和客户端。Netty是一个NIO客户端服务器框架,它支持快速和容易地开发网络应用程序,如协议服务器和客户端。它极大地简化和流线型网络编程,如TCP和UDP套接字服务器。“快速和简单”并不意味着最终的应用程序将受到可维护性或性能问题的影响。Netty经过精心设计,积累...
2018-12-07 09:34:59 2434
原创 Spring源码之The IoC container官方文档翻译
官方文档:https://docs.spring.io/spring/docs/4.3.21.RELEASE/spring-framework-reference/htmlsingle/#beansSpring IoC容器和bean的介绍本章介绍了Spring框架实现的控制反转(IoC)[1]原理。IoC也称为依赖注入(dependency injection, DI)。它是一个过程,对象...
2018-12-06 17:52:29 801
原创 Spring源码之事物 Transaction官方文档翻译
官方文档地址:https://docs.spring.io/spring/docs/4.3.21.RELEASE/spring-framework-reference/htmlsingle/#transaction介绍Spring框架事务管理全面的事务支持是使用Spring框架的最令人信服的原因之一。Spring框架为事务管理提供了一致的抽象,提供了以下好处:跨不同事务API(如J...
2018-12-05 18:17:58 1742 1
原创 Spring源码之事物注解@Transactional原理(源码层面)
官方文档地址:https://docs.spring.io/spring/docs/4.3.21.RELEASE/spring-framework-reference/htmlsingle/#transaction我翻译的地址:https://blog.csdn.net/AnY11/article/details/84837899我的疑惑如下:SPRING事物原理@Tran...
2018-12-05 15:59:14 5266 5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人