自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

赵林的博客

欲寄彩笺兼尺素,山长水阔知何处。

  • 博客(13)
  • 收藏
  • 关注

原创 linkerd实战(8)熔断机制

概述熔断器关注禁用那些可能请求错误的会话,从负载均衡器的角度来看,它们充当断路器,当被触发时,临时暂停特定端点的使用。以避免级联错误及雪崩效应导致资源耗尽。在client配置中有两个模块可以被视为断路器:Fail Fast - 会话(连接)驱动的断路器Failure Accrual - 请求驱动的断路器Fail Fast默认情况下,快速失败在 linkerd 中是禁用的,因为在使用少量主机时代理服...

2018-05-10 14:58:36 1138

原创 linkerd实战(7)load balance负载均衡

概述linkerd 提供客户端负载均衡,包括 p2c, ewma, aperture, heap, 和 roundRobin。接下来让我们来通过示例来说明这几种负载均衡机制。服务提供者之前我们使用ngnix搭建了一个服务提供者示例。为了演示负载均衡,我们必须有至少两个及以上的服务提供者提供相同命名的服务。我们来调整下ngnix的配置。1、新建ngnix配置/etc/nginx/sites-enab...

2018-05-09 14:56:04 1664

原创 linkerd实战(6)dtab规则存储到consul

概述上文我们使用了consul作为服务注册和发现中间件,然后将namerd配置为由consul来进行服务查询。但是路由规则dtab仍然存储在namerd的内存中,每次重启namerd之后都需要通过namerctl来创建规则。接下来我们示例如何将dtab路由规则存储到consul kv中。Namerd配置1、修改namerd.yaml配置文件$ vi config\namerd.yamlstorag...

2018-05-04 17:27:33 740

原创 linkerd实战(5)consul服务发现

概述前面我们把服务发现和dtab规则从linkerd放到了namerd中。然而在namerd中我们所用的服务发现都是基于文件系统的io.l5d.fs。接下来我们把服务注册和发现放到consul中,实现动态服务注册和发现机制。安装consul1、下载对应操作系统的consul版本$ wget https://releases.hashicorp.com/consul/1.0.7/consul_1.0...

2018-05-04 14:54:25 3210 2

原创 linkerd实战(4)namerd示例详解

概述之前的linkerd示例中,服务发现和路由都集成在一个进程内。如果你的微服务和linkerd部署为sidecar模式,即一个service关联一个linkerd,那么当大规模部署之后,我们想要修改路由规则就是件很麻烦的事情。默认情况下,配置在linkerd中的dtab(路由规则列表)配合解析器的解析在运行时是无法动态更改的,因此我们可以把这部分功能放到独立的命名解析组件中,则可以实现灵活的动态...

2018-05-03 17:42:48 1270

原创 linkerd实战(3)HTTP1.1 Identifiers详解

概述上一篇我们一步一步搭建了linkerd示例,用到了默认的Identifier将服务调用方的请求转换成service name。现在我们来具体了解一下linkerd中Identifier的使用。在linkerd中所有的基于http/1.1协议的Identifier都有一个kind属性配置,不同的kind配置使用不同转换策略对请求进行转换生成service name。如果不配置默认为kind:io...

2018-04-28 14:43:05 842

原创 Linkerd实战(2)示例详解

概述我们用一个step by step的基本示例来动手搭建一个linkerd代理。服务提供方为了简化示例,我们以ubuntu上的ngnix为例,搭建一个最基本的http服务作为服务提供方。sudo apt-get install nginx修改/var/www/html/index.html 内容为 It works!我们来访问一下服务。服务调用方为了简化示例,我们采用http协议,因此服务调用方...

2018-04-27 18:25:33 3018

原创 Linkerd实战(1)入门

Linkerd是什么Linkerd,在其配置中也会缩写为l5d(缩略中间5个字母inker),其定位是在微服务中作为网络通讯代理,解决服务调用方和服务提供方之间的通讯、服务发现、路由、负载均衡、度量监控、限流、灰度等功能,使微服务更注重业务实现。Linkerd能做什么看一下官方的拓扑图:更典型的应用场景,在服务调用方:服务调用方只需发起基本的rpc请求(例如http请求),linkerd负责服务发...

2018-04-27 18:23:43 1327

原创 Spring AutoConfigurationSorter源码详解

概述前面我们简介了spring boot的自动配置机制,现在我们来探讨下spring boot是如何解决这么多繁荣复杂的自动配置类之间的依赖顺序的。sort在上一篇《Spring @AutoConfiguration源码详解》中,EnableAutoConfigurationImportSelector中使用了自动配置类的排序private List<String> sort(List...

2018-04-19 17:22:02 862

原创 Spring @AutoConfiguration源码详解

概述前面我们了解了spring框架中的@Configuration配置和@ConfigurationProperties加载外部配置注解的使用。那么在Spring boot项目中,应用上下文又是如何找到那么多配置并加载初始化好的呢?@SpringBootApplicationspring boot项目推荐大家在主类中标注@SpringBootApplication这个注解,我们来看看它的源码:@T...

2018-04-19 17:20:23 4276

原创 Spring @ConfigurationProperties源码详解(2)

@EnableConfigurationProperties源码解析是时候来看看@EnableConfigurationProperties()的源码了:@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(EnableConfigurationPropertiesImportSelector....

2018-04-18 18:26:39 1280

原创 Spring @ConfigurationProperties源码详解(1)

概述之前介绍过Spring中的配置类@Configuration,在配置类中通过注入Environment或者@Value,我们可以拿到外部配置数据。在Spring boot中,框架默认提供了application,properties配置文件来提供系统配置,那么有没有更好的办法来获取外部配置呢? 那就是@ConfigurationProperties。应用示例1、我们在类路径下新建一个配置文件:...

2018-04-18 18:15:30 2269

原创 spring @Configuration源码详解

概述@Configuration注解提供了全新的bean创建方式。最初spring通过xml配置文件初始化bean并完成依赖注入工作。从spring3.0开始,在spring framework模块中提供了这个注解,搭配@Bean等注解,可以完全不依赖xml配置,在运行时完成bean的创建和初始化工作。例如:public interface IBean {}public class AppBean...

2018-04-16 17:54:28 1546

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除