SpringCloud
小泽不会Java
本人主攻后端,冲冲冲。
展开
-
分布式锁Redisson(简单入门案例一)
分布式锁Redisson(简单入门案例一)原创 2022-08-21 14:04:31 · 214 阅读 · 0 评论 -
SpringBoot整合Swagger
Springboot整合Swagger。原创 2022-07-15 16:18:19 · 139 阅读 · 0 评论 -
消息转换器(json)
之前说过,Spring会把你发送的消息序列化为字节发送给MQ,接收消息的时候,还会把字节反序列化为Java对象。只不过,默认情况下Spring采用的序列化方式是JDK序列化。众所周知,JDK序列化存在下列问题: 数据体积过大 有安全漏洞 可读性差 步骤1:在父工程中引入依赖<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <ar原创 2022-04-21 20:01:21 · 968 阅读 · 0 评论 -
TopicExchange交换机简单使用。
Topic类型的Exchange与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符!通配符规则:#:匹配一个或多个词*:匹配不多不少恰好1个词代码实现1:在publisher服务的SpringAmqpTest类中添加测试方法:@Testpublic void testSendTopicExchange() { // 交换机名称 Strin...原创 2022-04-21 19:28:26 · 196 阅读 · 0 评论 -
DirectExchange交换机的简单使用。
在Fanout模式中,一条消息,会被所有订阅的队列都消费。但是,在某些场景下,我们希望不同的消息被不同的队列消费。这时就要用到Direct类型的Exchange。在Direct模型下: 队列与交换机的绑定,不能是任意绑定了,而是要指定一个RoutingKey(路由key) 消息的发送方在 向 Exchange发送消息时,也必须指定消息的 RoutingKey。 Exchange不再把消息交给每一个绑定的队列,而是根据消息的Routing Key进行判断,只有队列的Routi原创 2022-04-21 19:10:46 · 782 阅读 · 0 评论 -
FanoutExchange交换机简单使用
1:首先呢,为什么要使用交换机?我个人得想法是:当发布者将消息直接放入队列中以后,一旦消费者对此消息使用,则消息将会从队列中删除,导致其他消费者拿不到队列中得消息。可以看到,在订阅模型中,多了一个exchange角色,而且过程略有变化: Publisher:生产者,也就是要发送消息的程序,但是不再发送到队列中,而是发给交换机 Exchange:交换机。一方面,接收生产者发送的消息。另一方面,知道如何处理消息,例如递交给某个特别队列、递交给所有队列、或是将消息丢弃。到底如何操作,.原创 2022-04-21 18:41:26 · 1192 阅读 · 0 评论 -
SpringAMQP快速入门
1:首先在父工程中引入依赖(这里包括amqp的依赖和单元测试依赖)。 <!--AMQP依赖,包含RabbitMQ--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dep原创 2022-04-21 11:36:58 · 2316 阅读 · 0 评论 -
Feign使用优化
1:Feign底层发起http请求,依赖于其它的框架。其底层客户端实现包括:• URLConnection:默认实现,不支持连接池• Apache HttpClient :支持连接池• OKHttp:支持连接池因此提高Feign的性能主要手段就是使用连接池代替默认的URLConnection。2:具体实现1)引入依赖(在服务消费者中)<!--httpClient的依赖 --><dependency> <groupId>io.git.原创 2022-04-08 15:48:21 · 989 阅读 · 0 评论 -
Feign远程调用
1:引用依赖。(当然是在服务消费者中进行导入配置。)<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency>2:在消费者所在的启动类中添加注解 @EnableFeignClients3:编写Feign的客户端原创 2022-04-08 15:07:25 · 300 阅读 · 0 评论 -
Nacos配置热更新两种方式。
1:目的: 修改nacos中的配置后,微服务中无需重启即可让配置生效,也就是配置热更新2:方式(1)在@Value注入的变量所在类上添加注解@RefreshScope:(在这里呢应该辉出现空指针异常问题,可查看上篇文章解决)(2)使用@ConfigurationProperties注解代替@Value注解(自定义配置类,然后放到容器中,在controller层自动注入,获取值。)@Data@Component@ConfigurationProperties(prefix ...原创 2022-04-07 10:41:11 · 2404 阅读 · 0 评论 -
在nacos中实现自动热部署用@RefreshScope出现空指针异常。
1:首先先看到nacos中配置得代码2在服务中导入,既然要使用到nacos中得配置,所以要在项目运行application.yml之前要先拿到配置。解决办法:1:进行导包,加入nacos管理依赖。<!--nacos配置管理依赖--><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba原创 2022-04-07 10:26:31 · 1773 阅读 · 9 评论 -
Nacos与Eureka的区别
一:先看看两个工作原理图。二:相同点。 都支持服务注册和服务拉取。 都支持服务提供者心跳方式做健康检测。 三:区别。 Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式 临时实例心跳不正常会被剔除,非临时实例则不会被剔除 Nacos支持服务列表变更的消息推送模式,服务列表更新更及时 Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用.原创 2022-04-06 23:04:32 · 31762 阅读 · 4 评论 -
Nacos认识
1:Nacos 是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高,也是一个注册中心。2:在cloud-demo父工程的pom文件中的<dependencyManagement>中引入SpringCloudAlibaba的依赖:<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring原创 2022-04-06 21:32:22 · 942 阅读 · 0 评论 -
Ribbon负载均衡策略
1:首先呢,先上流程图2:如何改变它得负载均衡规则(有两种方式)(1):在配置类中注入一个新的IRule(举例为随机均衡策略,当然这种为全局进行配置,也就是该服务中得分所有规则都将采用配置得负载均衡规则。)@Beanpublic IRule randomRule(){ return new RandomRule();}(2):在yml文件中进行配置(这样得配置可以针对某一个服务改变他得负载均衡策略,以下图中就只针对了userservice服务及逆行配置,也就是说在本.原创 2022-04-06 18:53:11 · 855 阅读 · 0 评论 -
Eureka服务注册
1:添加配置依赖 <dependencies><!-- eureka服务器--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>原创 2022-04-06 15:20:32 · 446 阅读 · 0 评论 -
SpringCloud学习(1:服务远程调用)
1:首先了解工作流程,创建两个数据库,一个order,一个user,当然order中有对应user信息。这里呢既然使用微服务思想,那就不能将他们两个放到一个库中,因此这里不能调用对方得Service层(都不在一个数据库下面,也就没有办法去调用了),那么就拿不到数据,应该怎么办呢?首先将对方需要得接口暴露出去(这里可以使用Restful风格),然后使用方将记住该接口得url,这样就可以拿到想要得数据了。具体操作如下:2:在Spring容器中注入 RestTemplate(在启动类下面)@Spri原创 2022-04-06 11:32:02 · 264 阅读 · 0 评论