随笔分类 -  springCloud(C语言中文网)

http://c.biancheng.net/skill/springcloud/
摘要:创建一个新的 Maven 项目 hystrix-feign-demo,增加 Hystrix 的依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-h 阅读全文
posted @ 2021-02-07 16:52 节日快乐 阅读(101) 评论(0) 推荐(0)
摘要:缓存在开发中经常用到,我们常用 Redis 这种第三方的缓存数据库对数据进行缓存处理。本节讲解 Hystrix 缓存的实现和清除,以及请求的合并。 结果缓存 在 Hystrix 中也为我们提供了方法级别的缓存。通过重写 getCacheKey 来判断是否返回缓存的数据,getCacheKey 可以根 阅读全文
posted @ 2021-02-07 16:42 节日快乐 阅读(128) 评论(0) 推荐(0)
摘要:Hystrix 的资源隔离策略有两种,分别为线程池和信号量。那我们为什么需要资源隔离呢?在一个分布式系统中,服务之间都是相互调用的,例如,我们容器(Tomcat)配置的线程个数为 1000,服务 A-服务 R,其中服务 I 的并发量非常的大,需要 500 个线程来执行,此时,服务 I 又挂了,那么这 阅读全文
posted @ 2021-02-07 16:17 节日快乐 阅读(278) 评论(0) 推荐(0)
摘要:Hystrix 是 Netflix 针对微服务分布式系统采用的熔断保护中间件,相当于电路中的保险丝。在分布式环境中,许多服务依赖项中的一些必然会失败。Hystrix 是一个库,通过添加延迟容忍和容错逻辑,帮助你控制这些分布式服务之间的交互。Hystrix 通过隔离服务之间的访问点、停止级联失败和提供 阅读全文
posted @ 2021-02-07 13:38 节日快乐 阅读(105) 评论(0) 推荐(0)
摘要:1、日志配置 有时候我们遇到 Bug,比如接口调用失败、参数没收到等问题,或者想看看调用性能,就需要配置 Feign 的日志了,以此让 Feign 把请求信息输出来。 首先定义一个配置类 @Configuration public class FeignConfiguration { /** * 日 阅读全文
posted @ 2021-02-07 13:04 节日快乐 阅读(774) 评论(0) 推荐(0)
摘要:JAVA 项目中接口调用怎么做? 1)Httpclient HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 Http 协议的客户端编程工具包,并且它支持 HTTP 协议最新版本和建议。HttpClient 相比传统 JDK 自 阅读全文
posted @ 2021-02-07 11:49 节日快乐 阅读(144) 评论(0) 推荐(0)
摘要:常用配置 1. 禁用 Eureka 当我们在 RestTemplate 上添加 @LoadBalanced 注解后,就可以用服务名称来调用接口了,当有多个服务的时候,还能做负载均衡。这是因为 Eureka 中的服务信息已经被拉取到了客户端本地,如果我们不想和 Eureka 集成,可以通过下面的配置方 阅读全文
posted @ 2021-02-06 20:16 节日快乐 阅读(156) 评论(0) 推荐(0)
摘要:通过实现 IRule 接口可以自定义负载策略,主要的选择服务逻辑在 choose 方法中。我们这边只是演示怎么自定义负载策略,所以没写选择的逻辑,直接返回服务列表中第一个服务。 public class MyRule implements IRule { private ILoadBalancer 阅读全文
posted @ 2021-02-06 20:06 节日快乐 阅读(73) 评论(0) 推荐(0)
摘要:图中说明如下: 1)BestAvailabl 选择一个最小的并发请求的 Server,逐个考察 Server,如果 Server 被标记为错误,则跳过,然后再选择 ActiveRequestCount 中最小的 Server。 2)AvailabilityFilteringRule 过滤掉那些一直连 阅读全文
posted @ 2021-02-06 12:24 节日快乐 阅读(92) 评论(0) 推荐(0)
摘要:在《Spring Cloud Ribbon介绍及使用》教程中我们简单地使用 Ribbon 进行了负载的一个调用,这意味着 Ribbon 是可以单独使用的。在 Spring Cloud 中使用 Ribbon 会更简单,因为 Spring Cloud 在 Ribbon 的基础上进行了一层封装,将很多配置 阅读全文
posted @ 2021-02-05 17:16 节日快乐 阅读(178) 评论(0) 推荐(0)
摘要:目前主流的负载方案分为以下两种: 集中式负载均衡,在消费者和服务提供方中间使用独立的代理方式进行负载,有硬件的(比如 F5),也有软件的(比如 Nginx)。 客户端自己做负载均衡,根据自己的请求情况做负载,Ribbon 就属于客户端自己做负载。 Spring Cloud Ribbon 是一个基于 阅读全文
posted @ 2021-02-05 16:51 节日快乐 阅读(158) 评论(0) 推荐(0)
摘要:Eureka REST API Eureka 作为注册中心,其本质是存储了每个客户端的注册信息,Ribbon 在转发的时候会获取注册中心的服务列表,然后根据对应的路由规则来选择一个服务给 Feign 来进行调用。如果我们不是 Spring Cloud 技术选型,也想用 Eureka,可以吗?完全可以 阅读全文
posted @ 2021-02-05 16:41 节日快乐 阅读(537) 评论(0) 推荐(0)
摘要:在实际开发过程中,我们可能会不停地重启服务,由于 Eureka 有自己的保护机制,故节点下线后,服务信息还会一直存在于 Eureka 中。我们可以通过增加一些配置让移除的速度更快一点,当然只在开发环境下使用,生产环境下不推荐使用。 首先在我们的 eureka-server 中增加两个配置,分别是关闭 阅读全文
posted @ 2021-02-05 16:12 节日快乐 阅读(210) 评论(0) 推荐(0)
摘要:关闭自我保护 保护模式主要在一组客户端和 Eureka Server 之间存在网络分区场景时使用。一旦进入保护模式,Eureka Server 将会尝试保护其服务的注册表中的信息,不再删除服务注册表中的数据。当网络故障恢复后,该 Eureka Server 节点会自动退出保护模式。如果在 Eurek 阅读全文
posted @ 2021-02-05 16:08 节日快乐 阅读(282) 评论(0) 推荐(0)
摘要:前面我们搭建的注册中心只适合本地开发使用,在生产环境中必须搭建一个集群来保证高可用。Eureka 的集群搭建方法很简单:每一台 Eureka 只需要在配置中指定另外多个 Eureka 的地址就可以实现一个集群的搭建了。 下面我们以 2 个节点为例来说明搭建方式。假设我们有 master 和 slav 阅读全文
posted @ 2021-02-05 15:56 节日快乐 阅读(106) 评论(0) 推荐(0)
摘要:Eureka 自带了一个 Web 的管理页面,方便我们查询注册到上面的实例信息,但是有一个问题:如果在实际使用中,注册中心地址有公网 IP 的话,必然能直接访问到,这样是不安全的。所以我们需要对 Eureka 进行改造,加上权限认证来保证安全性。 改造我们的 eureka-server,通过集成 S 阅读全文
posted @ 2021-02-05 15:52 节日快乐 阅读(161) 评论(0) 推荐(0)
摘要:1)创建项目注册到 Eureka 注册中心已经创建并且启动好了,接下来我们实现将一个服务提供者 eureka-client-user-service 注册到 Eureka 中,并提供一个接口给其他服务调用。 首先还是创建一个 Maven 项目,然后在 pom.xml 中增加相关依赖 <!-- Spr 阅读全文
posted @ 2021-02-05 15:46 节日快乐 阅读(84) 评论(0) 推荐(0)
摘要:1)直接调用接口 创建服务消费者,消费我们刚刚编写的 user/hello 接口,同样需要先创建一个 Maven 项目 eureka-client-article-service,然后添加依赖,依赖和服务提供者的一样,这里就不贴代码了。创建启动类 App,启动代码与前面所讲也是一样的。唯一不同的就是 阅读全文
posted @ 2021-02-05 15:40 节日快乐 阅读(119) 评论(0) 推荐(0)
摘要:首先创建一个 Maven 项目,取名为 eureka-server,在 pom.xml 中配置 Eureka 的依赖信息 <!-- Spring Boot --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spr 阅读全文
posted @ 2021-02-05 15:29 节日快乐 阅读(75) 评论(0) 推荐(0)
摘要:Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 做了二次封装,主要负责实现微服务架构中的服务治理功能。Spring Cloud Eureka 是一个基于 REST 的服务,并且提供了基于 Java 的客户端 阅读全文
posted @ 2021-02-05 15:23 节日快乐 阅读(82) 评论(0) 推荐(0)