随笔分类 - spring-cloud
spring-cloud微服务
摘要:一、Sleuth介绍 为什么要使用微服务跟踪?它解决了什么问题? 1.微服务的现状? 微服务的现状 随着业务的发展,单体架构变为微服务架构,并且系统规模也变得越来越大,各微服务间的调用关系也变得越来越复杂。多服务协同工作 在微服务的应用中,一个由客户端发起的请求在后端系统中会经过多个不同的微服务调用
阅读全文
摘要:官方定义 Spring Cloud Stream 是一个构建消息驱动微服务的框架。 应用程序通过 inputs 或者 outputs 来与 Spring Cloud Stream 中binder 交互,通过我们配置来 binding ,而 Spring Cloud Stream 的 binder 负
阅读全文
摘要:好了现在我们接着上一篇的随笔,继续来讲。上一篇我们讲到,我们如果要去更新所有微服务的配置,在不重启的情况下去更新配置,只能依靠spring cloud config了,但是,是我们要一个服务一个服务的发送post请求, 我们能受的了吗?这比之前的没配置中心好多了,那么我们如何继续避免挨个挨个的向服务
阅读全文
摘要:Spring Cloud Config为分布式系统中的外部化配置提供了服务器端和客户端支持。有了配置服务器,您就有了一个中心位置来管理跨所有环境的应用程序的外部属性。本文记录实现一个配置中心、客户端获取配置参数、refresh手动刷新。 官方文档:https://cloud.spring.io/sp
阅读全文
摘要:Gateway网关简介及使用 1. 什么是 API 网关(API Gateway) 分布式服务架构、微服务架构与 API 网关 在微服务架构里,服务的粒度被进一步细分,各个业务服务可以被独立的设计、开发、测试、部署和管理。这时,各个独立部署单元可以用不同的开发测试团队维护,可以使用不同的编程语言和技
阅读全文
摘要:分布式系统下,处理某个业务功能时,通常是存在服务调用链路的,即可能存在服务 A 调用服务 B,服务B调用服务C,从而完成一个服务。 如果只是调用链路中的某个微小服务不可用了,都可能导致整个业务功能无法提供服务。 Hystrix 能做什么? 而 Hystrix 框架能做服务降级、服务熔断和进行实时监控
阅读全文
摘要:在分布式环境中,许多服务依赖项中的一些必然会失败。Hystrix是一个库,通过添加延迟容忍和容错逻辑,帮助你控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点、停止级联失败和提供回退选项来实现这一点,所有这些都可以提高系统的整体弹性。 Hystrix为了什么 Hystrix被设计的
阅读全文
摘要:ZooKeeper是个集群,内部有多个server,每个server都可以连接多个client,每个client都可以修改server中的数据ZooKeeper可以保证每个server内的数据完全一致,是如何实现的呢? 答:数据一致性是靠Paxos算法保证的,Paxos可以说是分布式一致性算法的鼻祖
阅读全文
摘要:Feign可以把Rest请求进行封装,将远程调用的请求封装成本地请求的方式,不需要再手动拼接url和路径 1请求路径 2请求参数 3请求方式 4返回结果 我们使用注解的方式将此四项参数提供给Feign,Feign即可帮我们自动完成一次远程请求 注解: 主类上方加入: @EnableFeignClie
阅读全文
摘要:OpenFeign的日志级别有: NONE: 默认的,不显示任何日志 BASIC: 仅记录请求方法、URL、响应状态码以及执行时间 HEADERS:除了BASIC 中自定义的信息外,还有请求和响应的信息头 FULL: 除了HEADERS中定义的信息外, 还有请求和响应的正文以及元数据。 下面咱们来进
阅读全文
摘要:1. 简单玩法 1.1 一个简单例子 (1)服务端: @RestController @RequestMapping("hello") public class HelloController implements HelloApi { @Override public String hello(S
阅读全文
摘要:负载均衡整体是从IRule进去的: public interface IRule{ /* * choose one alive server from lb.allServers or * lb.upServers according to key * * @return choosen Serve
阅读全文
摘要:Ribbon简介Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项
阅读全文
摘要:Ribbon是一个为客户端提供负载均衡功能的服务,它内部提供了一个叫做ILoadBalance的接口代表负载均衡器的操作,比如有添加服务器操作、选择服务器操作、获取所有的服务器列表、获取可用的服务器列表等等。 需要解决的问题: ① 如何在配置Eureka Client注册中心时不去硬编码Eureka
阅读全文
摘要:前言服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分布往往是动态变化的,也是无法预先确定的。因此,原本在单体应用阶段常用的静态LB机制就不再适用了,
阅读全文
摘要:Eureka服务端application.yml文件: eureka: instance: hostname: eureka7001.com client: register-with-eureka: false fetch-registry: false service-url: defaultZ
阅读全文
摘要:问题场景服务器上分别配置了eth0, eth1和eth2三块网卡,只有eth1的地址可供其它机器访问,eth0和eth2的 IP 无效。在这种情况下,服务注册时Eureka Client会自动选择eth0作为服务ip, 导致其它服务无法调用。 问题原因由于官方并没有写明Eureka Client探测
阅读全文
摘要:eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/ instance: prefer-ip-address: true instance-id: ${spring.cloud.client.ip-address
阅读全文
摘要:Eureka集群的搭建 上次说过了在SpringCloud应用中使用Eureka注册中心,用来对服务提供者进行服务注册与发现,但同时,它也是一个“微服务”,单个应用使用空间有限,因此和zookeeper一样,它也需要搭建集群(Cluster)。 搭建Eureka集群的原理就是创建多个eureka应用
阅读全文
摘要:Eureka 集群的工作原理。我们假设有三台 Eureka Server 组成的集群,第一台 Eureka Server 在北京机房,另外两台 Eureka Server 在深圳和西安机房。这样三台 Eureka Server 就组建成了一个跨区域的高可用集群,只要三个地方的任意一个机房不出现问题,
阅读全文