Spring Boot整合Spring Cloud最简单方法

本文详细介绍如何使用SpringCloud构建微服务架构,包括搭建Eureka注册中心、创建生产者与消费者服务,并实现服务间的调用与负载均衡。通过具体步骤与代码示例,帮助读者快速上手SpringCloud。

Spring Cloud简介

Spring Cloud是一个分布式的整体解决方案。Spring Cloud为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全局琐, leader选举,分布式session,集群状态)中快速构建的工具,使用Spring Cloud的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。

Spring Boot整合Spring Cloud

打开IDEA,创建一个空工程。
在这里插入图片描述
在这里插入图片描述

接下面再通过Spring Initializr分别创建三个模块:注册中心、生产者、消费者。
在这里插入图片描述
在这里插入图片描述

先是我们的第一个模块:eureka注册中心,为其添加一个Eureka Server依赖。
在这里插入图片描述

接着是我们的第二个模块:生产者,为其添加Web和Eureka Discovery依赖
在这里插入图片描述
在这里插入图片描述

再创建最后一个模块:消费者,所需依赖和生产者相同,就不赘述了。

![在这里插入图片描述](https://img-blog.csdnimg.cn/20181201114753630.png
三个模块都创建好了就像上面图片那样。

要注意三个模块都是在同级的目录的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

接下来配置每一个模块,首先是注册中心模块:

注册中心相关文件

application.properties
server.port = 8000
spring.application.name = eureka-server
eureka.client.service-url.defaultZone = http://localhost:8000/eureka
EurekaServerApplication.java
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}

运行该模块,访问http://localhost:8000,即可访问Eureka的注册中心。
在这里插入图片描述

生产者模块相关文件

application.properties

server.port = 8100
spring.application.name = provider
eureka.instance.prefer-ip-address = true
eureka.client.service-url.defaultZone = http://localhost:8000/eureka

ProviderController.java
@RestController
public class ProviderController {

    @GetMapping("hello")
    public String SayHello() {
        return "Hello!";
    }

}

消费者模块相关文件

application.properties

server.port = 8200
spring.application.name = consumer
eureka.instance.prefer-ip-address = true
eureka.client.service-url.defaultZone = http://localhost:8000/eureka

ConsumerApplication.java
@SpringBootApplication
@EnableDiscoveryClient // 启用服务发现功能
public class ConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }

    @LoadBalanced // 使用负载均衡机制,如果有多个生产者,轮询每个每产者。
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
ConsumerController.java
@RestController
public class ConsumerController {

    @Autowired
    RestTemplate restTemplate;

    @GetMapping("greet")
    public String greet(String name) {
    	// 这里消费者的名字必须用大写
        String str = restTemplate.getForObject("http://PROVIDER/hello", String.class);
        return str + " " + name;
    }

}

最后,把这三个模块都运行起来,访问http://localhost:8000/,即可看到当前注册到注册中心的三个实例
在这里插入图片描述

接着再访问http://localhost:8200/greet?name=James,应该就能看到如下的输入了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值