目录
一、什么是微服务
二、使用spring boot搭建微服务
1.创建 Spring Boot 项目
2.配置 RabbitMQ
3.创建消息生产者
4.创建消息消费者
5.运行应用程序并测试
一、什么是微服务
微服务(Microservices)是一种软件开发架构风格,它将一个应用程序拆分成一组小型、独立的服务。每个服务都运行在自己的进程中,并使用轻量级的通信机制与其他微服务进行交互。这些独立的服务可以由不同的团队开发、测试和部署,使得应用程序更易于维护、升级和扩展。
微服务架构的优点包括:
- 独立性:不同的服务可以独立开发、测试和部署,使得团队间的协作更加灵活高效;
- 可伸缩性:可以根据实际需求对不同的服务进行水平或垂直扩展,提高应用程序的性能和可靠性;
- 容错性:由于每个服务都是独立部署的,因此当某个服务发生故障时,整个应用程序不会受到影响;
- 技术多样性:不同的服务可以使用不同的编程语言和技术栈,使得团队可以选择最适合自己的工具和技术;
- 可维护性:由于每个服务都相对较小,因此对于单个服务的维护和修改更加容易。
二、使用spring boot搭建微服务
1.创建 Spring Boot 项目
首先,您需要创建一个 Spring Boot 项目。您可以使用 Spring Initializr 进行快速构建:https://start.spring.io/。选择适当的选项,例如 Maven/Gradle、Spring Boot 版本和依赖项,然后下载和解压生成的项目。
2.配置 RabbitMQ
在 pom.xml 文件中添加以下依赖项,以便在应用程序中使用 RabbitMQ:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
然后,在 application.properties 或 application.yml 文件中添加以下配置:
spring.rabbitmq.host=localhost # RabbitMQ 服务器地址
spring.rabbitmq.port=5672 # RabbitMQ 端口号
spring.rabbitmq.username=admin # RabbitMQ 用户名
spring.rabbitmq.password=secret # RabbitMQ 密码
3.创建消息生产者
使用 Spring AMQP 库创建消息生产者非常简单。只需定义一个发送消息的方法,并将其注释为 @Bean 和 @ConfigurationProperties。例如:
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
@SpringBootApplication
public class ProducerApplication {
public static void main(String[] args) {
SpringApplication.run(ProducerApplication.class, args);
}
@Bean
public Queue queue() {
return new Queue("hello");
}
@Component
@ConfigurationProperties(prefix = "rabbitmq")
public class Producer {
@Autowired
private RabbitTemplate rabbitTemplate;
private String exchange;
private String routingkey;
public void send(String message) {
rabbitTemplate.convertAndSend(exchange, routingkey, message);
}
public String getExchange() {
return exchange;
}
public void setExchange(String exchange) {
this.exchange = exchange;
}
public String getRoutingkey() {
return routingkey;
}
public void setRoutingkey(String routingkey) {
this.routingkey = routingkey;
}
}
}
在上面的代码中,我们首先定义了一个名为“hello”的队列。然后我们定义了一个名为“Producer”的类,它包含一个 sendMessage() 方法,可以发送消息到队列中。
4.创建消息消费者
使用 Spring AMQP 库创建消息消费者也非常简单。只需定义一个接收消息的方法,并用 @RabbitListener 注释该方法。例如:
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
@Component
public class Consumer {
@RabbitListener(queues = "hello")
public void receive(String message) {
System.out.println("Received: " + message);
}
}
在上面的代码中,我们定义了一个名为“Consumer”的类,它包含一个 receive() 方法,用于从队列中接收消息。此方法由 @RabbitListener 注释。
5.运行应用程序并测试
现在您已经准备好了生产者和消费者,可以启动应用程序并测试消息传递。在命令行中运行以下命令启动应用程序:
mvn spring-boot:run
然后,在生产者发送一条消息,消费者将接收到该消息并在控制台上显示。