tuzicms做企业手机网站如何上海 房地产网站建设

news/2025/9/23 10:29:13/文章来源:
tuzicms做企业手机网站如何,上海 房地产网站建设,wordpress默认登录页修改,wordpress 自带评论一、消息队列消息队列中间件是分布式系统中重要的组件#xff0c;主要解决应用耦合、异步消息、流量削锋等问题#xff0c;实现高性能、高可用、可伸缩和最终一致性架构#xff0c;是大型分布式系统不可缺少的中间件。目前在生产环境中使用较多的消息队列有ActiveMQ、Rabbit…一、消息队列消息队列中间件是分布式系统中重要的组件主要解决应用耦合、异步消息、流量削锋等问题实现高性能、高可用、可伸缩和最终一致性架构是大型分布式系统不可缺少的中间件。目前在生产环境中使用较多的消息队列有ActiveMQ、RabbitMQ、Kafka、RocketMQ等。A、特性异步性将耗时的同步操作以消息的方式进行异步化处理减少了同步等待的时间松耦合消息队列减少了服务之间的耦合性不同的服务可以通过消息队列进行通信而不用关心彼此的实现细节只要定义好消息的格式就行分布式通过对消费者的横向扩展降低了消息队列阻塞的风险以及单个消费者产生单点故障的可能性可靠性消息队列一般会把接收到的消息存储到本地硬盘上这样即使应用挂掉或者消息队列本身挂掉消息也能够重新加载。B、JMS规范JMS即Java消息服务Java Message Service应用程序接口是Java面向消息中间件MOM的API用于在两个应用程序之间或分布式系统中发送消息进行异步通信。Java消息服务是一个与具体平台无关的API绝大多数MOM提供商都对JMS提供支持。JMS的消息机制有2种模型一种是Point to Point表现为队列的形式发送的消息只能被一个接收者取走另一种是Topic可以被多个订阅者订阅类似于群发。ActiveMQ就是JMS的一个实现。二、ActiveMQ介绍ActiveMQ是Apache软件基金下的一个开源软件它遵循JMS 1.1规范是消息驱动中间件软件。它为企业消息传递提供高可用、出色性能、可扩展、稳定和安全保障。ActiveMQ使用Apache许可协议因此任何人都可以使用和修改它而不必反馈任何改变。ActiveMQ的目标是在尽可能多的平台和语言上提供一个标准的消息驱动的应用集成。ActiveMQ实现JMS规范并在此之上提供大量额外的特性。ActiveMQ支持队列和订阅两种模式的消息发送。Spring Boot提供了ActiveMQ组件spring-boot-starter-activemq用来支持ActiveMQ在Spring Boot体系内使用。A、ActiveMQ安装1、下载安装启动# 安装JDK并配置环境# 下载activemq wget http://archive.apache.org/dist/activemq/5.12.2/apache-activemq-5.12.2-bin.tar.gz# 解压安装 cd /usr/local/apache-activemq-5.12.2/bin# 启动ActiveMQ ./activemq start# web控制台 http://192.168.240.131:8161 admin/admin2、安全配置安装完成ActiveMQ后任何连接到ActiveMQ的程序都可以创建和消费队列可以通过修改配置文件conf/activemq.xml来加入身份验证在文件的borker标签中加入plugins simpleAuthenticationPlugin users authenticationUser usernameadmin passwordadmin groupsusers,admins/ /users /simpleAuthenticationPlugin /plugins控制台账号密码修改conf/jetty.xml确保authenticate的值是true。bean idsecurityConstraint classorg.eclipse.jetty.util.security.Constraint property namename valueBASIC / property nameroles valueadmin / property nameauthenticate valuetrue / /bean登陆管控台的帐号和密码在conf/jetty-realm.properties文件。# Defines users that can access the web (console, demo, etc.) # username: password [,rolename ...] admin: admin, admin重启生效。A、相关依赖dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-activemq/artifactId /dependencyB、配置文件在使用ActiveMQ时有两种使用方式一种是使用独立安装的ActiveMQ在生产环境推荐使用这种另一种是使用基于内存ActiveMQ 在调试阶段建议使用这种方式。# 基于内存 ActiveMQspring.activemq.in-memorytrue# 不适应连接池 spring.activemq.pool.enabledfalse# 独立安装ActiveMQ #spring.activemq.broker-urltcp://10.255.242.168:61616 #spring.activemq.useradmin #spring.activemq.passwordadmin三、队列Queue队列发送的消息只能被一个消费者接收。A、创建队列Configuration public class ActiveMqConfig {Beanpublic Queue queue(){return new ActiveMQQueue(isisiwish.test.queue);} }使用定义了队列queue命名为isisiwish.test.queue。B、消息生产者Slf4j Component public class Producer {Autowiredprivate JmsMessagingTemplate jmsMessagingTemplate;Autowiredprivate Queue queue;public void sendQueue(String msg){log.info(send queue msg : {}, msg);this.jmsMessagingTemplate.convertAndSend(this.queue, msg);} }JmsMessagingTemplate是Spring提供发送消息的工具类使用JmsMessagingTemplate和创建好的queue对消息进行发送。C、消息消费者Slf4j Component public class ConsumerA {JmsListener(destination isisiwish.test.queue)public void receiveQueue(String text){log.info(ConsumerA queue msg : {}, text);} }Slf4j Component public class ConsumerB {JmsListener(destination isisiwish.test.queue)public void receiveQueue(String text){log.info(ConsumerB queue msg : {}, text);} }使用注解JmsListener(destination isisiwish.test.queue)表示此方法监控了名为isisiwish.test.queue的队列。当队列isisiwish.test.queue中有消息发送时会触发此方法的执行text为消息内容。D、测试RunWith(SpringRunner.class) SpringBootTest public class MqActivemqQueueApplicationTests {Autowiredprivate Producer producer;Testpublic void sendSimpleQueueMessage() throws InterruptedException{this.producer.sendQueue(Test queue message);}Testpublic void send100QueueMessage() throws InterruptedException{for (int i 0; i 100; i){this.producer.sendQueue(Test queue message i);}Thread.sleep(1000L);} }当有多个消费者监听一个队列时消费者会自动均衡负载的接收消息并且每个消息只能有一个消费者所接收。PS控制台输出javax.jms.JMSException: peer (vm://localhost#1) stopped.报错信息可以忽略。四、广播Topic广播发送的消息可以被多个消费者接收。A、创建TopicConfiguration public class ActiveMqConfig {Beanpublic Topic topic(){return new ActiveMQTopic(isisiwish.test.topic);} }B、消息生产者Slf4j Component public class ConsumerA {JmsListener(destination isisiwish.test.topic)public void receiveTopic(String text){log.info(ConsumerA topic msg : {}, text);} }Slf4j Component public class ConsumerB {JmsListener(destination isisiwish.test.topic)public void receiveTopic(String text){log.info(ConsumerB topic msg : {}, text);} }C、消息消费者Slf4j Component public class Producer {Autowiredprivate JmsMessagingTemplate jmsMessagingTemplate;Autowiredprivate Topic topic;public void sendTopic(String msg){log.info(send queue msg : {}, msg);this.jmsMessagingTemplate.convertAndSend(this.topic, msg);} }D、测试RunWith(SpringRunner.class) SpringBootTest public class MqActivemqTopicApplicationTests {Autowiredprivate Producer producer;Testpublic void sendSimpleTopicMessage() throws InterruptedException{this.producer.sendTopic(Test Topic message);Thread.sleep(1000L);} }广播Topic是一个发送者多个消费者的模式两个消费者都收到了发送的消息。五、同时支持队列Queue和广播TopicSpring Boot集成ActiveMQ的项目默认只支持队列或者广播中的一种通过配置项 spring.jms.pub-sub-domain的值来控制true为广播模式false为队列模式默认情况下支持队列模式。如果需要在同一项目中既支持队列模式也支持广播模式可以通过DefaultJmsListenerContainerFactory创建自定义的JmsListenerContainerFactory实例之后在JmsListener注解中通过containerFactory属性引用它。分别创建两个自定义的JmsListenerContainerFactory实例通过pubSubDomain来控制是支持队列模式还是广播模式。Configuration EnableJms public class ActiveMqConfig {Bean(queueListenerFactory)public JmsListenerContainerFactory? queueListenerFactory(ConnectionFactory connectionFactory){DefaultJmsListenerContainerFactory factory new DefaultJmsListenerContainerFactory();factory.setConnectionFactory(connectionFactory);factory.setPubSubDomain(false);return factory;}Bean(topicListenerFactory)public JmsListenerContainerFactory? topicListenerFactory(ConnectionFactory connectionFactory){DefaultJmsListenerContainerFactory factory new DefaultJmsListenerContainerFactory();factory.setConnectionFactory(connectionFactory);factory.setPubSubDomain(true);return factory;}Beanpublic Queue queue(){return new ActiveMQQueue(isisiwish.test.queue);}Beanpublic Topic topic(){return new ActiveMQTopic(isisiwish.test.topic);} }在消费者接收的方法中指明使用containerFactory接收消息。Slf4j Component public class ConsumerA {JmsListener(destination isisiwish.test.queue, containerFactory queueListenerFactory)public void receiveQueue(String text){log.info(ConsumerA queue msg : {}, text);}JmsListener(destination isisiwish.test.topic, containerFactory topicListenerFactory)public void receiveTopic(String text){log.info(ConsumerA topic msg : {}, text);} }常用配置。# 基于内存的ActiveMQ #spring.activemq.in-memorytrue #spring.activemq.pool.enabledfalse# 独立安装的ActiveMQ spring.activemq.broker-urltcp://10.255.242.168:61616 spring.activemq.useradmin spring.activemq.passwordadmin# 结束之前等待的时间 #spring.activemq.close-timeout15s# 等待消息发送响应的时间设置为0永远等待 spring.activemq.send-timeout0# 默认情况下ActiveMQ提供的是queue模式若要使用topic模式需要配置下面配置 #spring.jms.pub-sub-domaintrue#账号 # spring.activemq.useradmin# 密码 # spring.activemq.passwordadmin# 是否信任所有包 #spring.activemq.packages.trust-all# 要信任的特定包逗号分隔 #spring.activemq.packages.trusted# 当连接请求和满时是否阻塞设置false会抛出JMSException异常 #spring.activemq.pool.block-if-fulltrue# 如果池满则在抛出异常前阻塞时间 #spring.activemq.pool.block-if-full-timeout-1ms# 是否在启动时创建连接可以在启动时用于热加载 #spring.activemq.pool.create-connection-on-startuptrue# 是否用Pooledconnectionfactory代替普通的ConnectionFactory #spring.activemq.pool.enabledfalse# 连接过期超时 #spring.activemq.pool.expiry-timeout0ms# 连接空闲超时 #spring.activemq.pool.idle-timeout30s# 连接池最大连接数 #spring.activemq.pool.max-connections1# 每个连接的有效会话的最大数目。 #spring.activemq.pool.maximum-active-session-per-connection500# 当有JMSException时尝试重新连接 #spring.activemq.pool.reconnect-on-exceptiontrue# 空闲连接清除线程之间运行的时间当为负数时没有空闲连接驱逐线程运行 #spring.activemq.pool.time-between-expiration-check-1ms# 是否只使用一个MessageProducer #spring.activemq.pool.use-anonymous-producerstrue 六、总结消息中间件广泛应用在大型互联网架构中利用消息中间件队列和广播各自的特性可以支持很多业务比如群发发送短信、给单个用户发送邮件等。ActiveMQ是一款非常流行的消息中间件它的特点是部署简单、使用方便比较适合中小型团队。Spring Boot提供了集成ActiveMQ对应的组件在Spring Boot中使用ActiveMQ只需要添加相关注解即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912213.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站架构设计图怎么做wordpress网站如何播放视频

组合评价模型—模糊Borda(Matlab) 我们的征途是星辰大海,而并非烟尘人间。 目录 组合评价模型—模糊Borda(Matlab) 一、模糊Borda法简介 二、模糊Borda法主要步骤 (1)计算隶属度 (2)计算模糊频数 (…

门源县住房和城乡建设局网站wordpress+悬浮+登录

目录 欧拉函数一、用公式求代码 二、线性筛法求欧拉函数扩展欧拉定理 欧拉函数 AcWing 873. 欧拉函数 一、用公式求 定义:1 ~ N 中与 N 互质的数的个数被称为欧拉函数,记为ϕ(N)。 怎么求呢?? 有一个公式: N p1a1 X…

中国铁道工程建设协会查证网站微信crm管理系统免费

zookeeper 集群 1、zookeeper 集群说明 initLimit 是Zookeeper用它来限定集群中的Zookeeper服务器连接到Leader的时限 syncLimit 限制了follower服务器与leader服务器之间请求和应答之间的时限 服务器名称与地址:集群信息(服务器编号,服务器…

[OpenGL]相机环境

[OpenGL]相机环境pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Cou…

指令流水线的影响因素

机器周期的设置 为了方便流水线设计,每个阶段耗时都设置成一样的,以最长耗时为准 影响流水线的因素 结构相关(资源冲突) 多条指令在同一个时间争夺使用同一个资源而形成的冲突称为结构相关 例子在书本第257页第一张…

HT-SC4PS-33+:小功分大胃口,300 MHz-3 GHz全场通吃

HT-SC4PS-33+:小功分大胃口,300 MHz-3 GHz全场通吃HT-SC4PS-33+ 是成都恒利泰推出的 300-3000 MHz 超宽带一分四贴片功分器,插损低到 1.6 dB,隔离度 17 dB,幅度不平衡仅 0.4 dB,-40 ℃~+85 ℃全温漂得住;5G 小基…

网站开发新乡网站建设服务

os模块 在Python中文件和文件夹的操作要借助os模块里面的相关功能,具体步骤如下: 第一步:导入os模块 import os 第二步:调用os模块中的相关方法 os.函数名() 与文件操作相关方法 编号函数功能1os.rename(目标文件名称&…

济南建设厅网站安全员威海建设局网站楼盘信息公布

文章目录 1. 概述2. 内连接3. 外连接4. 自连接5. 联合查询-union,union all6. 子查询 1. 概述 在项目开发中,在进行数据库表结构设计是,会根据业务需求和业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所…

东莞市建设安监局网站首页网站运行维护

1.摘要 在细粒度图像识别(FGIR)中,区域注意力的定位和放大是一个重要因素,基于卷积神经网络(cnn)的方法对此进行了大量探索。近年来发展起来的视觉变压器(ViT)在计算机视觉任务中取得了可喜的成果。与cnn相比,图像序列化是一种全新的方式。然…

win7网站后台无法编辑青原区城乡建设局门户网站

接入CDN对免备案网站服务器来说有以下几个好处: 提高网站的访问速度:CDN会将网站的静态资源(如图片、文档等)缓存到离用户最近的节点服务器上,用户访问时可以从离他们最近的节点服务器获取资源,加快访问速度…

个人网站带论坛 备案百度发布信息的免费平台

摘要:在本博客中介绍了基于YOLOv8/v7/v6/v5的机场航拍小目标检测系统。该系统的核心技术是采用YOLOv8,并整合了YOLOv7、YOLOv6、YOLOv5算法,从而进行性能指标的综合对比。我们详细介绍了国内外在机场航拍小目标检测领域的研究现状、数据集处理…

高端网站的制作做标签这个网站刷单安全吗

UI Automator为Android程序的UI开发提供了测试环境,这里我们就来看一下Android App开发的自动化测试框架UI Automator使用教程,需要的朋友可以参考下 Android的自动化测试有很多框架,其中ui automator是google官方提供的黑盒UI相关的自动化测试工具,&am…

电子商务网站用什么语言开发辽宁建设工程信息网站

“我讲课不割韭菜,宗旨是免费、分享、科普、交流。AI时代技术发展迅速,AI知识普及尤为重要。”2月29日,360公司创始人周鸿祎免费课正式开启,全网多平台直播了AI系列第一讲“预见AGI”,千万网友观看。免费课上&#xff…

像素时代网站建设手机站设计wordpress的.htaccess

目录 自动映射 表映射 字段映射 字段失效 视图属性 Mybatis框架之所以能够简化数据库操作,是因为他内部的映射机制,通过自动映射,进行数据的封装,我们只要符合映射规则,就可以快速高效的完成SQL操作的实现。既然…

[vscode] 快捷键记录

[vscode] 快捷键记录$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");1. 代码折叠 1.1 折叠所有: Windows/Linux: Ctrl + K, Ctrl + 0 (先按 Ctrl+K,然后按…

Gitee本土化创新实践:中国企业研发效能提升的新引擎

Gitee本土化创新实践:中国企业研发效能提升的新引擎 在数字化转型浪潮席卷全球的当下,软件开发效率已成为企业核心竞争力的关键指标。作为国内领先的代码托管平台,Gitee凭借其本土化创新优势,正在重塑中国企业研发…

画面拼接后推流/64路画面同时拼接到一路流/指定程序窗口采集推流/另一种解决方案

一、前言说明 近期遇到一个需求,需要将对个画面合并到一个流中推流出去,这个有很多种方案去实现,一个方案是采用ffmpeg的滤镜,视频水印的方式叠加上去,测试下来行是行,就是编码占用压力巨大,有点得不偿失。另一…

详细介绍:nvm使用和node使用

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Markdown的基本语法

欢迎使用 OpenWrite 开始写作您的文章... 这是一个二级标题 您可以使用 Markdown 语法:粗体文字 斜体文字 行内代码// 代码块示例 console.log(Hello OpenWrite!);这是一个引用块链接示例

小说发表哪个网站赚钱网站建设炎陵

变量是只不过保留的内存位置用来存储值。这意味着,当创建一个变量,那么它在内存中保留一些空间。根据一个变量的数据类型,解释器分配内存,并决定如何可以被存储在所保留的内存中。因此,通过分配不同的数据类型的变量&a…