随笔分类 -  Spring Cloud

摘要:Spring Cloud Zuul作为网关所具备的最基本的功能:路由,还具备另外一个核心的功能:过滤器。 过滤器 通过Spring Cloud Zuul实现的路由功能,我们的微服务可以通过统一的API网关入口被客户端访问到了。但是他们的访问权限往往都需要一定的限制,系统并不会将所有的微服务接口都对他 阅读全文
posted @ 2018-06-07 13:56 海盗船长 阅读(619) 评论(0) 推荐(0)
摘要:传统路由配置 所谓传统路由配置方式就是在不依赖于服务发现机制情况下,通过在配置文件中具体制定每个路由表达式与服务实例的映射关系来实现API网关对外部请求的路由。没有Eureka服务治理框架帮助的时候,我们需要根据服务实例的数量采用不同方式的配置来实现路由规则: 单实例配置:通过一组zuul.rout 阅读全文
posted @ 2018-06-07 12:36 海盗船长 阅读(2092) 评论(0) 推荐(0)
摘要:通过前几篇介绍,已经可以构建一个简单的微服务架构了,如下图: 通过eureka实现服务注册中心以及服务注册发现,通过ribbon或feign实现服务的消费以及负载均衡,通过spring cloud config实现了应用多环境的外部配置以及版本管理。为了集群更为健壮使用了Hystrix的隔断机制来避 阅读全文
posted @ 2018-06-07 10:51 海盗船长 阅读(264) 评论(0) 推荐(0)
摘要:上一篇利用Hystrix Dashboard去监控断路器的Hystrix command,当我们有很多服务的时候,就需要聚合所有服务的Hystrix Dashboard数据了,这就需要Hystrix Turbine了。 Hystrix Turbine 看单个的Hystrix Dashboard的数据 阅读全文
posted @ 2018-06-06 17:39 海盗船长 阅读(258) 评论(0) 推荐(0)
摘要:Hystrix DashBoard 断路器是根据一段时间窗内的请求状况来判断并操作断路器的打开和关闭状态的。Hystrix Dashboard是作为断路器状态的一个组件,提供了数据监控和友好的图形化界面。 这里使用第一篇创建的david-client项目,在pom.xml中添加相应的依赖: 在启动 阅读全文
posted @ 2018-06-06 17:03 海盗船长 阅读(299) 评论(0) 推荐(0)
摘要:断路器 断路器本身是一种开关装置,用于在电路上保护线路过载,当线路中又电路发生短路时,断路器能够及时的切断故障电路,放置发生过载、发热、甚至起火等严重后果。 在分布式架构中,断路器模式的作用也是类似,当某个服务发生故障之后,通过断路器的故障监控,直接切断原来的主逻辑调用。但是,在Hystrix中的断 阅读全文
posted @ 2018-06-06 16:20 海盗船长 阅读(275) 评论(0) 推荐(0)
摘要:依赖隔离 docker使用舱壁模式来实现进程的隔离,使容器与容器之间不会互相影响。而Hystrix则使用该模式实现线程池的隔离,它会为每一个Hystrix命令创建一个独立的线程池,这样就算在某个Hystrix命令包装下的依赖服务出现延迟过高的情况,也只是对该依赖服务的调用产生影响,而不会拖慢其他业务 阅读全文
posted @ 2018-06-06 15:11 海盗船长 阅读(199) 评论(0) 推荐(0)
摘要:在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以互相调用,在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络 原因或者自身原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会 阅读全文
posted @ 2018-06-06 14:36 海盗船长 阅读(323) 评论(0) 推荐(0)
摘要:高可用 现在已经可以从配置中心读取配置文件了,当微服务很多时都从配置中心读取配置文件,这时可以将配置中心做成一个微服务,将其集群化,从而达到高可用。 改造config-server 加入eureka 并在application.yml中制定服务注册地址: 在启动类中增加@EnableDiscover 阅读全文
posted @ 2018-06-06 13:55 海盗船长 阅读(244) 评论(0) 推荐(0)
摘要:Spring Cloud Config 在分布式系统中,由于服务数量很多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,使用Spring Cloud Config来实现分布式配置中心,它支持配置服务放在配置服务的内存中(本地),也支持放在远程git 阅读全文
posted @ 2018-06-05 18:26 海盗船长 阅读(277) 评论(0) 推荐(0)
摘要:Spring Cloud Feign Spring Cloud Feign 是一套基于Netflix Feign实现的声明式服务调用客户端。它使得编写Web服务客户端变得更加简单,我们只需要创建接口并使用注解来配置它既可完成对web服务接口的绑定。它具备可插拔的注解支持,包括Feign注解、JAX- 阅读全文
posted @ 2018-06-05 16:28 海盗船长 阅读(321) 评论(0) 推荐(0)
摘要:在上一篇中使用LoadBalancerClient接口实现了获取某个服务的具体实例,并根据实例信息发起服务接口消费请求。但是这样的做法需要我们手工的区编写服务选取、连接拼接等繁琐的工作,对于开发人员来说非常不友好。所以使用Spring Cloud中针对客户端负载均衡的工具包:Spring Cloud 阅读全文
posted @ 2018-06-05 14:59 海盗船长 阅读(339) 评论(0) 推荐(0)
摘要:LoadBalancerClient 使用Spring Cloud提供的负载均衡器客户端来实现服务的消费。 首先创建一个服务消费者工程,命名为com.david.consumer,并在pom.xml中添加依赖: 配置application.yml指定eureka注册中心地址: 在工程的启动类中,通过 阅读全文
posted @ 2018-06-05 14:31 海盗船长 阅读(214) 评论(0) 推荐(0)
摘要:Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。 什么是微服务架构? 微服 阅读全文
posted @ 2018-06-05 13:48 海盗船长 阅读(375) 评论(0) 推荐(0)