当前位置: 首页 > wzjs >正文

企业网站建设的主要目的是济南做网站推广哪家好

企业网站建设的主要目的是,济南做网站推广哪家好,在阿里国际站做的网站,北京网站seo公司芋道源码——Spring Cloud Bus RocketMQ 入门 引言 在微服务架构中,服务之间的通信是一个关键问题。Spring Cloud Bus 提供了一种简单而高效的方式,通过消息队列实现服务之间的事件传播。本文将深入浅出地讲解 Spring Cloud Bus RocketMQ 的入门知识&a…

芋道源码——Spring Cloud Bus RocketMQ 入门

引言

在微服务架构中,服务之间的通信是一个关键问题。Spring Cloud Bus 提供了一种简单而高效的方式,通过消息队列实现服务之间的事件传播。本文将深入浅出地讲解 Spring Cloud Bus RocketMQ 的入门知识,帮助初学者快速上手。

一、Spring Cloud Bus 是什么?

1.1 定义

Spring Cloud Bus 是一个事件、消息总线,用于在集群中传播状态变化。它可以与 Spring Cloud Config 联合实现热部署,使得配置变化能够实时通知到所有服务实例。

1.2 特点

  • 事件驱动:基于事件的编程模型,使得服务之间的通信更加灵活。
  • 消息队列集成:支持多种消息队列,如 RabbitMQ、Kafka、RocketMQ 等。
  • 实时性:能够实时传播状态变化,确保服务之间的同步。

1.3 作用

  • 配置中心集成:与 Spring Cloud Config 配合,实现配置的自动刷新。
  • 事件传播:在微服务架构中,实现跨服务的事件通知。

二、RocketMQ 是什么?

2.1 定义

RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。

2.2 特点

  • 高吞吐量:能够处理大量消息,适用于高并发场景。
  • 严格的消息顺序:保证消息的顺序性,确保数据的一致性。
  • 丰富的消息模式:支持多种消息拉取模式,满足不同业务需求。

2.3 应用场景

  • 异步通信:解耦服务之间的直接调用。
  • 企业解决方案:广泛应用于金融支付、电子商务、物流等领域。

三、Spring Cloud Bus RocketMQ 快速入门

3.1 环境准备

在开始之前,确保你已经搭建了 RocketMQ 服务。可以参考《RocketMQ 极简入门》进行学习和搭建。

3.2 项目结构

我们将创建两个项目:

  • 事件发布器项目:负责发送事件。
  • 事件监听器项目:负责监听和处理事件。

3.3 事件发布器项目

3.3.1 引入依赖

pom.xml 文件中,引入 Spring Cloud Bus 和 RocketMQ 的相关依赖:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-bus-rocketmq</artifactId></dependency>
</dependencies>
3.3.2 配置文件

application.yml 文件中,配置 Spring Cloud Bus 和 RocketMQ:

server:port: 8081spring:application:name: publisher-democloud:bus:enabled: truedestination: springCloudBus
rocketmq:name-server: 127.0.0.1:9876
3.3.3 创建事件类

创建 UserRegisterEvent 类,继承 RemoteApplicationEvent

public class UserRegisterEvent extends RemoteApplicationEvent {private String username;public UserRegisterEvent() {}public UserRegisterEvent(Object source, String originService, String destinationService, String username) {super(source, originService);this.username = username;}public String getUsername() {return username;}
}
3.3.4 创建控制器

创建 DemoController 类,提供注册接口并发送事件:

@RestController
@RequestMapping("/demo")
public class DemoController {private Logger logger = LoggerFactory.getLogger(getClass());@Autowiredprivate ApplicationEventPublisher applicationEventPublisher;@Autowiredprivate ServiceMatcher busServiceMatcher;@GetMapping("/register")public String register(String username) {logger.info("[register][执行用户({}) 的注册逻辑]", username);applicationEventPublisher.publishEvent(new UserRegisterEvent(this, busServiceMatcher.getServiceId(), null, username));return "success";}
}
3.3.5 启动类

创建 PublisherDemoApplication 类,作为项目的启动类:

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

3.4 事件监听器项目

3.4.1 引入依赖

与事件发布器项目一致,引入相同的依赖。

3.4.2 配置文件

与事件发布器项目一致,配置 Spring Cloud Bus 和 RocketMQ。

3.4.3 创建事件监听器

创建 UserRegisterListener 类,监听 UserRegisterEvent 事件:

@Component
public class UserRegisterListener implements ApplicationListener<UserRegisterEvent> {private Logger logger = LoggerFactory.getLogger(getClass());@Overridepublic void onApplicationEvent(UserRegisterEvent event) {logger.info("[onApplicationEvent][监听到用户({}) 注册]", event.getUsername());}
}
3.4.4 启动类

创建 ListenerDemoApplication 类,作为项目的启动类,并添加 @RemoteApplicationEventScan 注解:

@SpringBootApplication
@RemoteApplicationEventScan
public class ListenerDemoApplication {public static void main(String[] args) {SpringApplication.run(ListenerDemoApplication.class, args);}
}

3.5 简单测试

  1. 启动事件发布器项目。
  2. 启动两个事件监听器项目。
  3. 调用 http://127.0.0.1:8081/demo/register?username=test 接口。

控制台将打印日志,显示事件被成功发布和监听。

四、监控端点

Spring Cloud Bus 提供了两个监控端点:

  • bus-env 端点:用于发布环境变化事件。
  • bus-refresh 端点:用于刷新 Spring Context。

4.1 配置 Actuator

pom.xml 文件中,引入 Spring Boot Actuator:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

application.yml 文件中,配置 Actuator:

management:endpoints:web:exposure:include: '*'

4.2 测试监控端点

使用 Postman 发送请求到 bus-envbus-refresh 端点,观察控制台日志。

五、面试回答思路

5.1 什么是 Spring Cloud Bus?

Spring Cloud Bus 是一个事件、消息总线,用于在集群中传播状态变化。它基于 Spring 事件机制,结合消息队列实现跨服务的事件通知。

5.2 Spring Cloud Bus 和 Spring Cloud Stream 有什么区别?

  • Spring Cloud Bus:主要用于事件传播,如配置变化通知。
  • Spring Cloud Stream:更侧重于数据流处理,提供更丰富的消息处理功能。

5.3 如何实现配置的自动刷新?

通过 Spring Cloud Bus 和 Spring Cloud Config 的结合,当配置发生变化时,发送一个刷新事件,通知所有服务实例重新加载配置。

六、总结

本文详细讲解了 Spring Cloud Bus RocketMQ 的入门知识,包括环境搭建、代码示例、监控端点等内容。通过本文的学习,初学者可以快速上手 Spring Cloud Bus RocketMQ,并在实际项目中应用。

相关资源

  • Spring Cloud Bus 官方文档
  • RocketMQ 官方文档
  • GitHub - yudaocode/SpringBoot-Labs
http://www.dtcms.com/wzjs/381623.html

相关文章:

  • 科技有限公司网站济南做网站建设的公司
  • 做网站怎样申请域名学校seo推广培训班
  • 电子商务网站建设风格上海网站建设费用
  • 东莞学校网站建设百度一下你就知道官方网站
  • 网站建设的总体设计思想深圳关键词推广
  • 西安建设集团网站谷歌怎么投放广告
  • 陕西建设银行社会招聘网站百度开户推广多少钱
  • wordpress做淘客网站郑州网络推广
  • 水果b2b电商平台有哪些seo关键词大搜
  • wordpress 添加备案号海外aso优化
  • 设计在线观看免费2014seo的实现方式
  • 做淘宝要网站?百度网站优化
  • 做高端生活方式的网站网站排名seo
  • 猎头网站 做猎头的流程网站目录扫描
  • 大连做网站软件广州seo推广运营专员
  • 猎头自己在哪个网站做单活动推广软文范例
  • 廊坊网站建设电话软文范例100字以内
  • 织梦企业网站管理系统百度网盘app官方下载
  • 湄潭建设局官方网站百度关键字搜索排名
  • 长沙疫情高峰期杭州seo中心
  • 全面的手机网站建设邢台网站公司
  • 老区建设促进会网站什么是seo什么是sem
  • 内蒙古网上办事大厅官网抚州网站seo
  • 用ps做个人网站界面今日头条淄博新闻
  • 鲁中网淄博市疫情谷歌seo关键词排名优化
  • 槐荫区城乡建设委员会网站企业seo推广的绝密诀窍曝光
  • 如何做能放照片的网站外贸网站制作
  • 备案ip 查询网站查询系统优化网站seo方案
  • 国外做黄漫的网站有哪些qq刷赞网站推广快速
  • 三栏wordpress+主题广州seo优化排名公司