spring cloud
不想睡觉的橘子君
这个作者很懒,什么都没留下…
展开
-
【feign】feign的单独使用
很多人了解feign是作为spring cloud的一个组件认识到的,feign可以帮助开发者去调用其他微服务,起到的就是httpClient的作用,可以说和eureka是唯二最重要的两个组件了。feign的使用是非常简单的,注入依赖,接口标上@FeignClient(),接口中的方法写明要调用方法的方法头即可。但是feign其实可以单独使用的,这会大大帮助我们提高开发调用接口的效率。原创 2022-10-19 14:53:52 · 1659 阅读 · 0 评论 -
【spring cloud】feign调用失败
在单独使用feign时发现调用总是超时,失败,找了半天发现原来是因为我写的不规范,直接在方法上标注了网址如www.baidu.com,而feignClient上没有注明url。后来我自己写了一个供feign调用测试的rest接口 ,并在@FeignClient上注明了url和name,在方法上也注明了@PostMapping的uri,终于能调通了。问题只是看似简单的问题,但是其实是对feign的使用不了解,经过这一次,对于feign的使用更加的熟悉,以后也不会为了方便少写点代码而踩入类似的坑了。原创 2022-10-14 11:51:33 · 1195 阅读 · 0 评论 -
【spring cloud】The bean ‘XXXClient.FeignClientSpecification‘ could not be registered.
今天在起项目的时候,项目无法正常启动,有这么一个报错,The bean ‘XXClient.FeignClientSpecification’ could not be registered. A bean with that name has already been defined and overriding is disabled.后来上网查了一下资料,自己也动手找了一下,后来发现其原因是@FeignClient(name = “scClient”…)中name属性的值重复了,导致bean名称相同原创 2022-03-14 09:23:45 · 1442 阅读 · 0 评论 -
【spring cloud】stream集成rabbitMQ实现降级和接口升版
当消息多次消费失败后,只将消息放入死信队列其实是不够的,至少也得给个静默处理的结果吧,也就是所谓的降级处理。引入依赖、创建topic等工作就不再赘述,可以参考上篇文章:【spring cloud】stream集成rabbitMQ,实现Topic订阅发布配置如下:#Fallback配置spring.cloud.stream.bindings.fallback-consumer.destination=fallback-topicspring.cloud.stream.bindings.fallbac原创 2021-12-15 21:10:13 · 1131 阅读 · 0 评论 -
【spring cloud】stream集成rabbitMQ死信队列
如果多次重复消费依然不成功,总要有个兜底的,那就给它丢到死信队列(Dead Letter Queue, DLQ)里就好了。在死信队列中的消息,不会主动向消费者发送消息,需要我们人工处理,比如将它们取出再次消费等。引入依赖、创建topic等工作就不再赘述,可以参考上篇文章:【spring cloud】stream集成rabbitMQ,实现Topic订阅发布配置如下:#死信队列spring.cloud.stream.bindings.dlq-consumer.destination=dlq-topic原创 2021-12-15 21:01:14 · 1576 阅读 · 0 评论 -
【spring cloud】stream集成rabbitMQ实现本地OR多节点重试
消息没有消费成功咋办?重试?这里介绍下本地重试和多节点的范例。引入依赖、创建topic等工作就不再赘述,可以参考上篇文章:【spring cloud】stream集成rabbitMQ,实现Topic订阅发布本地重试配置如下:#异常消息(单机版)spring.cloud.stream.bindings.error-consumer.destination=error-out-topicspring.cloud.stream.bindings.error-producer.destination=e原创 2021-12-15 20:52:48 · 825 阅读 · 0 评论 -
【spring cloud】stream集成rabbitMQ实现延迟消息
rabbitMQ有延迟插件,可以帮助我们实现消息的延迟发送。但是一定要注意,版本必须和当前rabbitMQ的一致,否则可能会出现识别不到插件的问题。下载地址:https://www.rabbitmq.com/community-plugins.html插件解压到Plugins文件夹后,输入安装插件命令:rabbitmq-plugins enable rabbitmq_delayed_message_exchange重启rabbitMQ:rabbitmq-server restart至此原创 2021-12-15 20:43:41 · 839 阅读 · 0 评论 -
【spring cloud】stream集成rabbitMQ实现消费组消费分区
引入依赖、创建topic等工作就不再赘述,可以参考上篇文章:【spring cloud】stream集成rabbitMQ,实现Topic订阅发布此处重点拎出来消息分组和消息分区的配置。配置如下:#消息分组spring.cloud.stream.bindings.group-consumer.destination=group-topicspring.cloud.stream.bindings.group-consumer.group=Group-B#消费分区配置spring.cloud.str原创 2021-12-15 20:30:08 · 1451 阅读 · 0 评论 -
【spring cloud】stream集成rabbitMQ,实现Topic订阅发布
stream主要负责与消息相关的功能,如与消息中间件rabbitMQ的集成等。这里先示例一个广播功能。生产者 发布消息后,所有的消费者都可以消费到消息。1,引入依赖 <dependencies> <!-- spring boot web--> <dependency> <groupId>org.springframework.boot</groupId> &l原创 2021-12-15 20:01:05 · 2342 阅读 · 1 评论 -
【spring cloud】sleuth的简单使用
sleuth是spring cloud框架中,作为消息调用链追踪的组件,起配置相对简单,下面简单介绍一下sleuth的使用。1,引入依赖 <dependencies> <!--eureka-client--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>原创 2021-11-29 19:42:51 · 1591 阅读 · 0 评论 -
【spring cloud】gateway组件基本使用
gateway组件是spring cloud框架中负责网关层的,下面简单介绍一下gateway的基本使用:1,引入依赖 <!--actuator--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifac原创 2021-11-10 08:20:29 · 480 阅读 · 0 评论 -
【spring cloud】bus消息总线-配合config刷新config server集群
这里主要演示一下bus做为消息总线,配合config刷新config server的功能。之前弄过的手动刷新config server,是单机的环境,对于config server为一个集群的情况,显然挨个去刷新太蠢了…配合bus,config可以做到批量刷新。注意,需要有rabbitMQ或者kafka的环境。rabbitMQ依赖于erlang的环境。1,引入bus依赖对于rabbitMQ和kafka,bus有不同的依赖。引入消息队列,可以让bus通过MQ去发送消息给config server集群,从原创 2021-11-06 11:54:35 · 198 阅读 · 0 评论 -
【spring cloud】config高可用
这里的config高可用是server集群向eureka注册来完成的。主要内容如下:1,config server 和config client都需要引入依赖 <!--config server--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-c原创 2021-11-03 08:35:59 · 216 阅读 · 0 评论 -
【spring cloud】config对称加密
config是提供加密功能的,将加密后的配置保存在github,而拉取到的,是解密后的配置。过程如下:1,添加配置配置非常简单,新建一个bootstrap.yml,对application.yml做引导配置。内容如下:encrypt: key: XXX随便写点什么,作为加解密的key。2,测试加密端点,uri为/encrypt测试解密端点,uri为/decrypt3,把加密后的配置存储到github。注意格式,必须在加密字符串前面加上{cipher}才能顺利解密。4,然后测原创 2021-11-03 08:28:40 · 377 阅读 · 0 评论 -
【spring cloud】动态拉取配置文件
当我们保存在github上的配置变化以后,config server如果不重启是不会读取变化后的配置的。这个时候我们就需要congi组件提供的另外一个功能,动态刷新。config组件其实是可以动态刷新的。其中手动刷新的方法,是新建一个客户端config client,对客户端进行一系列的配置后。当配置有变化后,调用客户端暴露出的端点,刷新服务端的配置。注意,是调用客户端,进而刷新服务端。其中对于客户端的配置之前有讲过,【踩坑专栏】config手动动态刷新失败不知道为什么动态刷新一直没有成功,端点有暴原创 2021-11-03 08:20:26 · 315 阅读 · 0 评论 -
【spring cloud】config server配置
config组件提供了拉取配置的能力,config的基础是准备一个config server,下面讲一下config server的配置。1,引入依赖 <!--config server--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-confi原创 2021-11-03 08:13:37 · 934 阅读 · 0 评论 -
【踩坑专栏】config手动动态刷新失败
spring cloud的config组件是支持动态刷新的,如果只是一些属性的变化,是不用重启机器的。按照网络上的教程,步骤大致如下:1,加入actuator的依赖,并在配置中打开端点。 <!--actuator--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin原创 2021-10-30 11:01:37 · 398 阅读 · 4 评论 -
【踩坑专栏】config client拉取不到config server的配置
最近在做config的demo的时候,发现config client始终拉取不到server的配置。config client的配置基本就那几项,示例如下:spring: application: name: config-consumer cloud: config: #config会默认将spring.application.name作为name,很可能导致name与github中需要的application name不一致,进而拉去失败 #这里需要重新原创 2021-10-29 08:06:23 · 719 阅读 · 0 评论 -
【踩坑专栏】spring cloud的config组件拉去不到github配置文件的坑
注意,即使是public的repo,也需要在配置文件里注明用户名和密码,或者私钥才行,不然结果就是404,后台看日志就是超时!部分config的配置如下:spring: application: name: config-server cloud: config: server: git: uri: https://github.com/xxxx/config-repo.git #强制拉去资源文件原创 2021-10-22 07:52:37 · 369 阅读 · 0 评论 -
【spring cloud】hystrix、turbine、dashboard组合,实现聚合信息,实时监控
hystrix可以通过和turbine、dashboard的配合实现实时监控,其中turbine用于聚合服务的数据,dashboard接入turbine的数据,将其展示出来,这三者的结合使得我们可以做到实时监控。1, turbine的使用1.1, 配置启动类turbine服务的启动类相比其他服务的启动类主要是多了一个@EnableTurbine。@EnableDiscoveryClient//@SpringBootApplication@EnableHystrix@EnableTurbine原创 2021-10-21 08:41:09 · 179 阅读 · 0 评论 -
【spring cloud】hystrix请求缓存功能,提高服务响应速度
hystrix的降级和超时都已经写过了,接下来记录下hystrix的请求缓存功能。对于同一个ip的对同一个方法的请求,hystrix有请求缓存功能可以让服务更快的返回结果。示例如下,首先调用controller中的方法,该方法调用缓存方法。从上下文中获得结果,记得用lombok的@Cleanup关闭上下文。@RestControllerpublic class Controller { @Autowired private MyService myService; @Aut原创 2021-10-20 22:18:12 · 184 阅读 · 0 评论 -
【spring cloud】为方法配置超时时间
这里接着上一篇《【spring cloud】hystrix降级功能基本使用》继续讲,hystrix是可以为某个方法单独设置超时时间的。将上文中的default替换为需要配置的方法的签名即可,例如MyService#retry(int)。如方法签名过长,可通过下面的方式生成方法签名。 System.out.print(Feign.configKey(MyService.class, MyService.class.getMethod("retry",int.c原创 2021-10-20 22:02:09 · 365 阅读 · 0 评论 -
【spring cloud】hystrix降级功能基本使用
本文主要讨论基于spring cloud提供的hystrix组件的降级功能,示例如下:1,引入必要的依赖包括不限于hystrix、feign、dashboard(大盘监控)、feign客户端等的依赖 <!--hystrix--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>原创 2021-10-20 21:28:46 · 313 阅读 · 0 评论 -
【spring cloud】feign组件的使用
feign组件在spring cloud体系中主要负责方法的远程调用,有了它,调用其他应用的接口,不需要使用RestTemplate那么麻烦,在简单的配置后,可以直接将接口Autowired进来,直接调就好,很简单。这里主要讲下怎么简单的配置下feign。引入依赖部分依赖如下所示:feign的依赖, <!--feign-client--> <dependency> <groupId>org.springfr原创 2021-10-13 22:23:25 · 161 阅读 · 0 评论 -
【spring cloud】负载均衡组件ribbon的几种配置方式
使用ribbon肯定要先配置pom,依赖如下: <!--ribbon--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </dependency原创 2021-09-30 08:28:47 · 693 阅读 · 0 评论 -
【spring cloud】搭建eureka高可用注册中心
1,改动host文件在host文件中添加127.0.0.1与项目hostname的映射127.0.0.1 peer1127.0.0.1 peer22,新增两个module,peer1和peer2方式参考文章【spring cloud】搭建单体eureka注册中心注意,只有application.yml有所不同3,修改application.yml两个eureka注册中心都要做相应改动spring: application: name: eureka-server-peer2原创 2021-09-26 21:13:55 · 208 阅读 · 0 评论 -
【spring cloud】搭建单体eureka注册中心
1,引入依赖。首先spring cloud依赖加进去,子项目的eureka引用父项目依赖; <!--spring cloud --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</ar原创 2021-09-26 07:58:11 · 108 阅读 · 0 评论 -
【spring cloud】eureka注册中心UI界面参数含义
Current Time:当前时间Uptime:注册中心启动至今的时间,注意,是小时:分钟Lease expiration enabled:是否启用租约过期Renews threshold:每分钟最少的续约数Renews(last min):最后一分钟的服务续约数量,指的是上一分钟,而不是当前这一分钟DS Replicas:eureka注册中心相邻的备份(单节点注册中心下这一项为空白)total-avail-memory:总共的可用内存environment:num-of-cpus:CP.原创 2021-09-23 08:24:06 · 528 阅读 · 0 评论 -
【文档熟肉】spring cloud官方文档の中文熟肉之eureka
下面会陆续开始spring cloud中文文档的更新工作。先更新个spring cloud最关键的eureka吧,原文地址:https://docs.spring.io/spring-cloud-netflix/docs/current/reference/html/Spring Cloud Netflix3.0.2This project provides Netflix OSS integrations for Spring Boot apps through autoconfigurati原创 2021-05-10 15:09:29 · 759 阅读 · 5 评论 -
spring cloud微服务的主要几个特点(组件)
spring cloud是一个包括了很多组件的微服务框架,那么当需要讲一下spring cloud的特点时,该怎么讲呢以下为spring cloud其特点的官方文档原文:Distributed/versioned configurationService registration and discoveryRoutingService-to-service callsLoad balancingCircuit BreakersGlobal locksLeadership el原创 2021-05-08 20:19:50 · 380 阅读 · 2 评论