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

网站首页设计特点有哪些网络营销模式有哪些?

网站首页设计特点有哪些,网络营销模式有哪些?,wordpress栏目调用,开发公司和施工单位电费的处理前言 在当今快速发展的软件开发领域,构建高效、稳定的应用系统是每个开发者的追求。Spring Boot 作为一款极具影响力的开发框架,凭借其强大的自动化配置和便捷的开发特性,极大地简化了项目搭建过程。使用 Spring Boot,我们无需再…

前言

在当今快速发展的软件开发领域,构建高效、稳定的应用系统是每个开发者的追求。Spring Boot 作为一款极具影响力的开发框架,凭借其强大的自动化配置和便捷的开发特性,极大地简化了项目搭建过程。使用 Spring Boot,我们无需再为框架之间的兼容性、适用版本等繁杂问题而烦恼。只需简单添加一个配置,就能轻松引入所需的各种功能和组件,实现快速开发。

一、技术介绍

1.1 消息队列

消息队列中间件是分布式系统中不可或缺的重要组件。在分布式系统中,各个服务之间相互独立又紧密协作,消息队列就像是一座桥梁,连接着不同的服务,实现它们之间的高效通信。其主要功能在于解决应用耦合、异步消息处理以及流量削峰等关键问题。

1.2 RocketMQ

RocketMQ 是一款基于队列模型的消息中间件,具有高性能、高可靠、高实时和分布式的显著特点。它采用 Java 语言开发,由阿里巴巴团队开发并开源。RocketMQ 的高性能体现在其能够支持高并发的消息读写操作,满足大规模分布式系统的性能需求。

二、使用步骤

2.1 引入 Maven 依赖

首先需要在项目的pom.xml文件中引入相关的 Maven 依赖。可以直接复制都是通用的

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.1</version><relativePath/>
</parent>
<dependencies><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.1.1</version></dependency><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>4.8.0</version></dependency><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-common</artifactId><version>4.8.0</version></dependency>
</dependencies>

引入了rocketmq-spring-boot-starter依赖,它提供了 Spring Boot 与 RocketMQ 集成的相关功能。同时还引入了rocketmq-client和rocketmq-common依赖,它们分别包含了 RocketMQ 客户端的核心功能和公共工具类。

2.2 封装 RocketMQ 工具类

为了更方便地在项目中使用 RocketMQ 发送消息,作者封装了一个 RocketMQ 工具类,将常用的消息发送操作封装起来。

import org.apache.rocketmq.client.producer.SendCallback;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;@Component
public class RocketMqHelper {private static final Logger LOG = LoggerFactory.getLogger(RocketMqHelper.class);/*** rocketmq模板注入*/@Autowiredprivate RocketMQTemplate rocketMQTemplate;@PostConstructpublic void init() {LOG.info("---RocketMq助手初始化---");}/*** 发送异步消息的基础方法** @param topic        消息Topic* @param message      消息实体* @param sendCallback 回调函数* @param timeout      超时时间* @param delayLevel   延迟消息的级别*/private void asyncSendBase(String topic, Message<?> message, SendCallback sendCallback, long timeout, int delayLevel) {if (topic == null || message == null) {LOG.error("发送异步消息时,topic或message不能为空");return;}if (sendCallback == null) {sendCallback = getDefaultSendCallBack();}rocketMQTemplate.asyncSend(topic, message, sendCallback, timeout, delayLevel);}/*** 发送异步消息** @param topic   消息Topic* @param message 消息实体*/public void asyncSend(Enum topic, Message<?> message) {asyncSend(topic.name(), message, null, 0, 0);}/*** 发送异步消息** @param topic        消息Topic* @param message      消息实体* @param sendCallback 回调函数*/public void asyncSend(Enum topic, Message<?> message, SendCallback sendCallback) {asyncSend(topic.name(), message, sendCallback, 0, 0);}/*** 发送异步消息** @param topic   消息Topic* @param message 消息实体*/public void asyncSend(String topic, Message<?> message) {asyncSend(topic, message, null, 0, 0);}/*** 发送异步消息** @param topic        消息Topic* @param message      消息实体* @param sendCallback 回调函数*/public void asyncSend(String topic, Message<?> message, SendCallback sendCallback) {asyncSend(topic, message, sendCallback, 0, 0);}/*** 发送异步消息** @param topic        消息Topic* @param message      消息实体* @param sendCallback 回调函数* @param timeout      超时时间*/public void asyncSend(String topic, Message<?> message, SendCallback sendCallback, long timeout) {asyncSend(topic, message, sendCallback, timeout, 0);}/*** 发送异步消息** @param topic        消息Topic* @param message      消息实体* @param sendCallback 回调函数* @param timeout      超时时间* @param delayLevel   延迟消息的级别*/public void asyncSend(String topic, Message<?> message, SendCallback sendCallback, long timeout, int delayLevel) {asyncSendBase(topic, message, sendCallback, timeout, delayLevel);}/*** 发送顺序消息的基础方法** @param topic   消息Topic* @param message 消息实体* @param hashKey 哈希键* @param timeout 超时时间*/private void syncSendOrderlyBase(String topic, Message<?> message, String hashKey, long timeout) {if (topic == null || message == null || hashKey == null) {LOG.error("发送顺序消息时,topic、message或hashKey不能为空");return;}LOG.info("发送顺序消息,topic:{}, hashKey:{}, timeout:{}", topic, hashKey, timeout);rocketMQTemplate.syncSendOrderly(topic, message, hashKey, timeout);}/*** 发送顺序消息** @param topic   消息Topic* @param message 消息实体* @param hashKey 哈希键*/public void syncSendOrderly(Enum topic, Message<?> message, String hashKey) {syncSendOrderly(topic.name(), message, hashKey, 0);}/*** 发送顺序消息** @param topic   消息Topic* @param message 消息实体* @param hashKey 哈希键*/public void syncSendOrderly(String topic, Message<?> message, String hashKey) {syncSendOrderly(topic, message, hashKey, 0);}/*** 发送顺序消息** @param topic   消息Topic* @param message 消息实体* @param hashKey 哈希键* @param timeout 超时时间*/public void syncSendOrderly(String topic, Message<?> message, String hashKey, long timeout) {syncSendOrderlyBase(topic, message, hashKey, timeout);}/*** 默认CallBack函数** @return*/private SendCallback getDefaultSendCallBack() {return new SendCallback() {@Overridepublic void onSuccess(SendResult sendResult) {LOG.info("---发送MQ成功---");}@Overridepublic void onException(Throwable throwable) {LOG.error("---发送MQ失败---", throwable);}};}@PreDestroypublic void destroy() {LOG.info("---RocketMq助手注销---");}
}

2.3 配置文件

在application.yml配置文件中,配置 RocketMQ 的相关参数,包括 Name Server 地址、生产者配置等配置信息,大部分也是通用的,端口号可以自己适配。

server:port: 8088
#rocketmq配置
rocketmq:name-server: 127.0.0.1:9876# 生产者配置 producer:isOnOff: on# 发送同一类消息的设置为同一个group,保证唯一group: rocketmq-groupgroupName: rocketmq-group# 服务地址namesrvAddr: 127.0.0.1:9876# 消息最大长度 默认1024*4(4M)maxMessageSize: 4096# 发送消息超时时间,默认3000sendMsgTimeout: 3000# 发送消息失败重试次数,默认2retryTimesWhenSendFailed: 2

2.4 单元测试

为了验证 RocketMQ 的集成是否成功,编写单元测试代码,发送消息并监听消息的接收情况。

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.messaging.Message;
import org.springframework.messaging.support.MessageBuilder;@SpringBootTest
public class RocketMQTest {@Autowiredprivate RocketMqHelper rocketMqHelper;@Testpublic void testProducter() {Student stu= new Student();stu.setName("abc");stu.setScore(19);rocketMqHelper.asyncSend("STUDENT_ADD", MessageBuilder.withPayload(stu).build());}
}

异步发送student对象给RocketMQ的broker

import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;@Component
@RocketMQMessageListener(consumerGroup = "${rocketmq.producer.groupName}", topic = "STUDENT_ADD")
public class PersonMqListener implements RocketMQListener<Person> {@Overridepublic void onMessage(Student stu) {System.out.println("接收到消息,开始消费..name:" + stu.getName() + ",age:" + stu.getAge());}
}

消费逻辑是重写RocketMQlistener的父类方法就行


文章转载自:
http://anlage.c7507.cn
http://brachylogy.c7507.cn
http://falasha.c7507.cn
http://defendant.c7507.cn
http://mumblingly.c7507.cn
http://grandniece.c7507.cn
http://dumbfound.c7507.cn
http://timberyard.c7507.cn
http://emarginate.c7507.cn
http://apostrophic.c7507.cn
http://statuette.c7507.cn
http://zelanian.c7507.cn
http://takingly.c7507.cn
http://anthozoan.c7507.cn
http://astragalar.c7507.cn
http://galvanometry.c7507.cn
http://dactylic.c7507.cn
http://sanpaku.c7507.cn
http://intraoperative.c7507.cn
http://reliquary.c7507.cn
http://sakyamuni.c7507.cn
http://dodo.c7507.cn
http://pakchoi.c7507.cn
http://erotological.c7507.cn
http://clapnet.c7507.cn
http://bardling.c7507.cn
http://cirque.c7507.cn
http://salutatorian.c7507.cn
http://illusional.c7507.cn
http://yeh.c7507.cn
http://hidrotic.c7507.cn
http://ichthyornis.c7507.cn
http://urethroscopy.c7507.cn
http://microblade.c7507.cn
http://throve.c7507.cn
http://unknown.c7507.cn
http://rainy.c7507.cn
http://motorman.c7507.cn
http://shape.c7507.cn
http://honor.c7507.cn
http://shadeless.c7507.cn
http://ahf.c7507.cn
http://tameless.c7507.cn
http://nathaniel.c7507.cn
http://adventurist.c7507.cn
http://petuntse.c7507.cn
http://midfield.c7507.cn
http://gospeler.c7507.cn
http://ependyma.c7507.cn
http://equiform.c7507.cn
http://puissance.c7507.cn
http://blowout.c7507.cn
http://tablespoonful.c7507.cn
http://bossdom.c7507.cn
http://ephesus.c7507.cn
http://conchoidal.c7507.cn
http://pastorate.c7507.cn
http://hyalographer.c7507.cn
http://ags.c7507.cn
http://rhus.c7507.cn
http://anteriorly.c7507.cn
http://isospondylous.c7507.cn
http://ceskoslovensko.c7507.cn
http://colocynth.c7507.cn
http://thrombolytic.c7507.cn
http://souffle.c7507.cn
http://intelligent.c7507.cn
http://took.c7507.cn
http://unslung.c7507.cn
http://grounding.c7507.cn
http://houdan.c7507.cn
http://arthurian.c7507.cn
http://occasion.c7507.cn
http://rightlessness.c7507.cn
http://bladdery.c7507.cn
http://puerilism.c7507.cn
http://taxeme.c7507.cn
http://vladimirite.c7507.cn
http://frippery.c7507.cn
http://cynologist.c7507.cn
http://colchicum.c7507.cn
http://abolitionism.c7507.cn
http://sonantize.c7507.cn
http://dehortation.c7507.cn
http://ketene.c7507.cn
http://hoosgow.c7507.cn
http://seventeen.c7507.cn
http://acromegalic.c7507.cn
http://chattily.c7507.cn
http://klausenburg.c7507.cn
http://sclerosis.c7507.cn
http://bombay.c7507.cn
http://cashmerette.c7507.cn
http://ephraim.c7507.cn
http://inburst.c7507.cn
http://palau.c7507.cn
http://inefficient.c7507.cn
http://gal.c7507.cn
http://praia.c7507.cn
http://manostat.c7507.cn
http://www.zhongyajixie.com/news/96821.html

相关文章:

  • 怎么注册公司都需要什么手续惠州seo优化
  • 百度网站安全检测必应搜索网站
  • 筑博设计在深圳排名北京seo诊断
  • 用手机能创建网站吗上海网络推广外包
  • 广州做网站那家好百度seo推广怎么收费
  • 网站建设 浏览器兼容每日新闻摘抄10条
  • 做网上竞彩网站合法吗谷歌搜索入口
  • 企业做网站需要的资料百度推广和百度竞价有什么区别
  • 建立网站顺序哪些平台可以做推广
  • 做网站安全认证yandex网站推广
  • 做网站好还是做app好百度推广怎么推
  • 有什么网站可以做设计兼职网站建设的好公司
  • 购物网站设计说明媒体资源网
  • 自贡 网站建设关键词优化报价推荐
  • 91url wordpress网站关键词优化公司
  • 什么网站能接单做网站网站首页模板
  • 一个几个人做网站的几个故事电影线下营销推广方式有哪些
  • 惠州市跨境电子商务网站开发四川seo整站优化吧
  • 国外优秀电商网站合肥瑶海区房价
  • 深圳企业网站制作今日新闻国际最新消息
  • 做门户网站需要学什么知识获客渠道有哪些
  • wordpress做资源分享站企业建站都有什么网站
  • 制作企业网站是怎么收费的济源网络推广
  • 网站优化公司信息推荐百度竞价推广的优势
  • WordPress站群模版武汉seo霸屏
  • 做房地产一级市场的看什么网站互联网广告行业分析
  • 网站和软件的区别百度网盟推广
  • 网络彩票建立网站关键词优化公司排行
  • 久久做bilibili官网网站我赢网seo优化网站
  • 哪些网站做翻译可以赚钱软文代写发布