网站在正在建设中崇义县网站建设

news/2025/9/30 0:39:21/文章来源:
网站在正在建设中,崇义县网站建设,淘宝运营培训有必要吗,设计说明英语翻译JMS规范 一、JMS是什么二、MQ中间件对比三、JMS组成1.JMS Provider2.JMS Producer3.JMS Consumer4.JSM Message4.1 消息头4.2 消息体4.2.1 生产者4.2.2 消费者 4.3 消息属性 四、JMS可靠性1.PERSISTENT - 持久化1.1 参数设置1.2 Queue持久化1.3 Topic持久化1.3.1 持久的发布主题… JMS规范 一、JMS是什么二、MQ中间件对比三、JMS组成1.JMS Provider2.JMS Producer3.JMS Consumer4.JSM Message4.1 消息头4.2 消息体4.2.1 生产者4.2.2 消费者 4.3 消息属性 四、JMS可靠性1.PERSISTENT - 持久化1.1 参数设置1.2 Queue持久化1.3 Topic持久化1.3.1 持久的发布主题生产者1.3.2 持久的订阅主题消费者 2.Transaction - 事务2.1 生产者开启事务2.2 消费者开启事务 3.Acknowledge - 签收3.1 案例-手动签收 4.签收和事务的关系 一、JMS是什么 首先需要区分JavaSE、JavaEE、JMS JavaSE是一门编程语言JavaEE是一套使用Java进行企业级应用开发的大家一致遵循的13个核心规范工业标准。JavaEE平台提供了一个基于组件的方法来加快设计开发。装配及部署企业应用程序。 DBCJava Databease数据库连接JNDIJava Naming and Directory InterfacesJava的命令和目录接口EJBEnterprise JavaBeanRMIRemote Method Invoke远程方法调用Java IDLInterface Description Language/CORBACommon Object Broker Architecture接口定义语言/共用对象请求代理程序体系结构JSPJava Server PageServletXMLExtensible Markup Language可标记白标记语言JMSJava Message ServiceJava消息服务JTAJava Transaction APIJava事务APIJTSJava Transaction ServiceJava事务服务JavaMailJAFJavaBean Activation Framework JMSJava Message Service是JavaEE中的一个技术是消息服务 Java消息服务指的是两个应用程序之间进行异步通信的API它为标准协议和消息服务提供了一组通用接口包括创建、发送、读取消息等用于支持Java应用程序开发。在JavaEE中当两个应用程序使用JMS进行通信时它们之间不是直接相连的而是通过一个共同的消息收发服务组件关联起来以达到解耦/异步削峰的效果。 二、MQ中间件对比 特性ActiveMQRabbitMQKafkaRocketMQPRODUCER-CUMSUMER支持支持支持支持PUBLISH-SUBSCRIBE支持支持支持支持REQUEST-REPLY(请求-响应)支持支持-支持API完备性高高高低静态配置多语言支持支持Java优先语言无关支持Java优先支持单机吞吐量万级万级十万级单机万级消息延迟-微秒级毫秒级-可用性高主从高主从非常高分布式高消息丢失-低理论上不会丢失-消息重复-可控制理论上会有重复-文档的完备性高高高中提供快速入门有有有无首次部署难度-低中高 三、JMS组成 1.JMS Provider 实现JMS接口和规范的消息中间件也就是我们说的MQ服务器 2.JMS Producer 消息生产者创建和发送JMS消息的客户端应用 3.JMS Consumer 消息消费者接收和处理JMS消息的客户端应用 4.JSM Message 4.1 消息头 JMSDestination消息发送的目的地主要是指Queue和TopicJMSDeliveryMode持久模式和非持久模式。 一条持久性的消息应该被传送“一次仅仅一次”这就意味着如果JMS提供者出现故障该消息并不会丢失它会在服务器恢复之后再次传递。一条非持久的消息最多会传递一次这意味着服务器出现故障该消息将会永远丢失。 JMSExpiration可以设置消息在一定时间后过期默认是永不过期 消息过期时间等于Destination的send方法中的timeToLive值加上发送时刻的GMT时间值。如果timeToLive值等于0则JMSExpiration被设为0表示该消息永不过期。如果发送后在消息过期时间之后还没有被发送到目的地则该消息被清除。 JMSPriority消息优先级从0-9十个级别0-4是普通消息5-9是加急消息。 JMS不要求MQ严格按照这十个优先级发送消息但必须保证加急消息要先于普通消息到达。默认是4级。 JMSMessageID唯一标识每个消息的标识由MQ产生。 4.2 消息体 封装具体的消息数据5种消息格式 TxtMessage普通字符串消息包含一个StringMapMessage一个Map类型的消息key为Strng类型而值为Java基本类型BytesMessage二进制数组消息包含一个byte[]StreamMessageJava数据流消息用标准流操作来顺序填充和读取ObjectMessage对象消息包含一个可序列化的Java对象 注意发送和接收的消息体类型必须一致对应 4.2.1 生产者 package com.qingsi.activemq;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;public class JmsProduce {public static final String ACTIVEMQ_URL tcp://192.168.86.128:61616;public static final String QUEUE_NAME queue01;public static void main(String[] args) throws JMSException {// 1.创建连接工厂, 采用默认的用户名密码ActiveMQConnectionFactory activeMQConnectionFactory new ActiveMQConnectionFactory(ACTIVEMQ_URL);// 2.通过连接工厂获得connection并启动访问Connection connection activeMQConnectionFactory.createConnection();connection.start();// 3.创建会话session// 两个参数第一个叫事务第二个叫签收Session session connection.createSession(false, Session.AUTO_ACKNOWLEDGE);// 4.创建目的地是队列还是主题Queue queue session.createQueue(QUEUE_NAME);// 5.创建消息的生产者MessageProducer producer session.createProducer(queue);// 6.使用生产者生成3条消息发送到MQ队列for (int i 1; i 3; i) {// 7.1 创建文本消息TextMessage textMessage session.createTextMessage(msg-- i);// 最简单的字符串producer.send(textMessage);// 7.2 创建Map类型的消息MapMessage mapMessage session.createMapMessage();mapMessage.setString(k1, v1);producer.send(mapMessage);// 7.3 创建 BytesMessageBytesMessage bytesMessage session.createBytesMessage();bytesMessage.writeBytes(hello.getBytes());bytesMessage.writeBytes(world.getBytes());producer.send(bytesMessage);// 7.4 创建 StreamMessageStreamMessage streamMessage session.createStreamMessage();streamMessage.writeString(hello);streamMessage.writeInt(123);producer.send(streamMessage);// 7.5 创建 ObjectMessage// ObjectMessage objectMessage session.createObjectMessage();// MyObject myObject new MyObject();// myObject.setName(张三);// myObject.setAge(20);// objectMessage.setObject(myObject);// producer.send(objectMessage);}// 9.关闭资源producer.close();session.close();connection.close();System.out.println(MQ消息发布完成);}} 4.2.2 消费者 package com.qingsi.activemq;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*; import java.io.IOException;public class JmsConsumer {public static final String ACTIVEMQ_URL tcp://192.168.86.128:61616;public static final String QUEUE_NAME queue01;public static void main(String[] args) throws JMSException, IOException {// 1.创建连接工厂, 采用默认的用户名密码ActiveMQConnectionFactory activeMQConnectionFactory new ActiveMQConnectionFactory(ACTIVEMQ_URL);// 2.通过连接工厂获得connection并启动访问Connection connection activeMQConnectionFactory.createConnection();connection.start();// 3.创建会话session// 两个参数第一个叫事务第二个叫签收Session session connection.createSession(false, Session.AUTO_ACKNOWLEDGE);// 4.创建目的地是队列还是主题Queue queue session.createQueue(QUEUE_NAME);// 5.创建消息的消费者MessageConsumer consumer session.createConsumer(queue);// 6.通过监听的方式来消费消息consumer.setMessageListener(new MessageListener() {Overridepublic void onMessage(Message message) {if (message instanceof TextMessage) {TextMessage textMessage (TextMessage) message;try {System.out.println(消费者消费消息 textMessage.getText());} catch (JMSException e) {e.printStackTrace();}}if (message instanceof MapMessage) {MapMessage mapMessage (MapMessage) message;try {System.out.println(消费者消费map消息 mapMessage.getString(k1));} catch (JMSException e) {e.printStackTrace();}}if (message instanceof BytesMessage) {BytesMessage bytesMessage (BytesMessage) message;byte[] bytes new byte[0];try {bytes new byte[(int) bytesMessage.getBodyLength()];} catch (JMSException e) {e.printStackTrace();}try {bytesMessage.readBytes(bytes);} catch (JMSException e) {e.printStackTrace();}String content new String(bytes);System.out.println(消费者消费 BytesMessage 消息 content);}if (message instanceof StreamMessage) {StreamMessage streamMessage (StreamMessage) message;String text null;try {text streamMessage.readString();} catch (JMSException e) {e.printStackTrace();}int number 0;try {number streamMessage.readInt();} catch (JMSException e) {e.printStackTrace();}System.out.println(消费者消费 StreamMessage 消息 text , number);}// if (message instanceof ObjectMessage) {// ObjectMessage objectMessage (ObjectMessage) message;// Serializable object objectMessage.getObject();// if (object instanceof MyObject) {// MyObject myObject (MyObject) object;// System.out.println(消费者消费 ObjectMessage 消息 myObject.getName() , myObject.getAge());// }//}}});// 保证控制台不关掉System.in.read();consumer.close();session.close();connection.close();} } 4.3 消息属性 如果需要除消息字段以外的值那么可以使用消息属性识别/去重/重点标注等操作非常有用的方法有以下API 四、JMS可靠性 1.PERSISTENT - 持久化 1.1 参数设置 非持久当服务器宕机消息不存在。 messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT) 持久持久化当服务器宕机消息依然存在。 messageProducer.setDeliveryMode(DeliveryMode.PERSISTENT) 1.2 Queue持久化 Queue默认是持久 1.3 Topic持久化 场景只要订阅了之后离线了重新上线就会继续消费 类似微信公众号 注意先启动定阅消费者再启动定阅生产者当所有的消息必须被接收则用持久订阅。当消息丢失能够被容忍则用非持久订阅 1.3.1 持久的发布主题生产者 package com.qingsi.activemq;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;public class JmsTopicProduce {public static final String ACTIVEMQ_URL tcp://192.168.86.128:61616;public static final String TOPIC_NAME topic01;public static void main(String[] args) throws JMSException {// 1.创建连接工厂, 采用默认的用户名密码ActiveMQConnectionFactory activeMQConnectionFactory new ActiveMQConnectionFactory(ACTIVEMQ_URL);// 2.通过连接工厂获得connection并启动访问Connection connection activeMQConnectionFactory.createConnection();// 3.创建会话session// 两个参数第一个叫事务第二个叫签收Session session connection.createSession(false, Session.AUTO_ACKNOWLEDGE);// 4.创建目的地是队列还是主题Topic topic session.createTopic(TOPIC_NAME);// 5.创建消息的生产者MessageProducer producer session.createProducer(topic);//6.设置生产者生产持久化的Topicproducer.setDeliveryMode(DeliveryMode.PERSISTENT);//7.启动连接connection.start();// 8.使用生产者生成3条消息发送到MQ主题for (int i 1; i 3; i) {// 9.创建消息TextMessage textMessage session.createTextMessage(msg-topic-- i);// 最简单的字符串// 10.通过producer发送给mqproducer.send(textMessage);}// 11.关闭资源producer.close();session.close();connection.close();System.out.println(MQ消息发布到topic完成);}} 1.3.2 持久的订阅主题消费者 package com.qingsi.activemq;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*; import java.io.IOException;public class JmsTopicConsumer {public static final String ACTIVEMQ_URL tcp://192.168.86.128:61616;public static final String TOPIC_NAME topic01;public static void main(String[] args) throws JMSException, IOException {System.out.println(我是1号消费者);// 1.创建连接工厂, 采用默认的用户名密码ActiveMQConnectionFactory activeMQConnectionFactory new ActiveMQConnectionFactory(ACTIVEMQ_URL);// 2.通过连接工厂获得connection并启动访问Connection connection activeMQConnectionFactory.createConnection();connection.setClientID(王五);// 3.创建会话session// 两个参数第一个叫事务第二个叫签收Session session connection.createSession(false, Session.AUTO_ACKNOWLEDGE);// 4.创建目的地是队列还是主题Topic topic session.createTopic(TOPIC_NAME);//5.通过session创建持久化订阅TopicSubscriber topicSubscriber session.createDurableSubscriber(topic, 我是王五);//6.启动连接connection.start();// 7.通过监听的方式来消费消息topicSubscriber.setMessageListener(new MessageListener() {Overridepublic void onMessage(Message message) {if (message instanceof TextMessage){TextMessage textMessage (TextMessage) message;try {System.out.println(我是1号消费者消费消息 textMessage.getText());} catch (JMSException e) {e.printStackTrace();}}}});System.in.read();session.close();connection.close();} } 订阅者在线 订阅者离线 这个必须订阅启动过一次程序过一次才行 2.Transaction - 事务 事务偏生产者注意如果生产者开了事务那么签收默认就是自动签收指定了其他签收类型也是自动签收Session session connection.createSession(false, Session.AUTO_ACKNOWLEDGE) createSession的第一个参数决定是否开启。如果开启了 需要提交事务才会起效关闭事务只要执行send就进入到队列中。关闭事务那第2个签收参数的设置需要有效开启事务先执行send再执行commit消息才被真正提交到队列中。消息需要批量提交需要缓冲处理。 如果开启了事务那么级别是比签收更高一些。 事务场景涉及到一次性发送两条及以上的消息那么需要使用事务。容易出现的生产事故消费者开启了事务但是没有commit就会造成消息重复消费。 2.1 生产者开启事务 package com.qingsi.activemq;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;public class JmsProduce {public static final String ACTIVEMQ_URL tcp://192.168.86.128:61616;public static final String QUEUE_NAME queue01;public static void main(String[] args) throws JMSException {//1.创建连接工厂按照给定的URL采用默认的用户名密码ActiveMQConnectionFactory activeMQConnectionFactory new ActiveMQConnectionFactory(ACTIVEMQ_URL);//2.通过连接工厂,获得connection并启动访问Connection connection activeMQConnectionFactory.createConnection();connection.start();//3.创建会话session//两个参数transacted事务,acknowledgeMode确认模式(签收)//开启事务需要commitSession session connection.createSession(true, Session.AUTO_ACKNOWLEDGE);//4.创建目的地(具体是队列queue还是主题topic)Queue queue session.createQueue(QUEUE_NAME);//5.创建消息的生产者,并设置不持久化消息MessageProducer producer session.createProducer(queue);//6.通过使用消息生产者,生产三条消息,发送到MQ的队列里面try {for (int i 0; i 3; i) {TextMessage textMessage session.createTextMessage(tx msg-- i);producer.send(textMessage);}//7.提交事务session.commit();System.out.println(消息发送完成);} catch (Exception e) {System.out.println(出现异常,消息回滚);session.rollback();} finally {//8.关闭资源producer.close();session.close();connection.close();}}} 2.2 消费者开启事务 package com.qingsi.activemq;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;public class JmsConsumer {public static final String ACTIVEMQ_URL tcp://192.168.86.128:61616;public static final String QUEUE_NAME queue01;public static void main(String[] args) throws JMSException {//1.创建连接工厂按照给定的URL采用默认的用户名密码ActiveMQConnectionFactory activeMQConnectionFactory new ActiveMQConnectionFactory(ACTIVEMQ_URL);//2.通过连接工厂,获得connection并启动访问Connection connection activeMQConnectionFactory.createConnection();connection.start();//3.创建会话session//两个参数transacted事务,acknowledgeMode确认模式(签收)//消费者开启了事务就必须手动提交不然会重复消费消息Session session connection.createSession(true, Session.AUTO_ACKNOWLEDGE);//4.创建目的地(具体是队列queue还是主题topic)Queue queue session.createQueue(QUEUE_NAME);//5.创建消息的消费者,指定消费哪一个队列里面的消息MessageConsumer messageConsumer session.createConsumer(queue);//6.通过监听的方式消费消息messageConsumer.setMessageListener(new MessageListener() {int a 0;Overridepublic void onMessage(Message message) {if (message instanceof TextMessage) {try {if (a 2) {System.out.println(1 / 0);}TextMessage textMessage (TextMessage) message;System.out.println(***消费者接收到的消息: textMessage.getText());session.commit();a a 1;} catch (Exception e) {System.out.println(出现异常消费失败放弃消费);try {session.rollback();a0;} catch (JMSException ex) {ex.printStackTrace();}}}}});//7.关闭资源} } 3.Acknowledge - 签收 签收偏消费者签收Acknowledge是指消费者告知消息代理Broker已经成功处理并消费了特定消息的操作。签收的作用主要有以下几点 1.确保可靠性当消费者接收到一条消息时可以对该消息进行签收。通过签收消费者向 Broker 表示已经成功处理了该消息并且要求 Broker 删除该消息或将其标记为已消费以确保消息不会再次被传递给其他消费者。2.消息顺序签收还可以控制消息的消费顺序。在 ActiveMQ 中可以使用消息的签收方式来控制消息的顺序性。例如如果消费者使用手动签收模式MANUAL_ACKNOWLEDGE消费者可以在处理完当前消息后再进行签收这样可以确保消息按照顺序进行消费。3.事务支持签收和事务密切相关。在使用事务模式时消费者可以批量消费多条消息并在事务提交时进行签收。如果事务回滚则消息将被重新传递给消费者以确保消息的可靠性处理。 签收是非事务的签收类型(以下标红的是常用) 自动签收默认Session.AUTO_ACKNOWLEDGE 在这种模式下当消费者从队列或主题中接收到消息后消息代理会立即将该消息视为已经被消费不需要消费者显式地调用acknowledge()方法进行确认。因此存在一定的消息传递风险因为如果消费者在处理消息期间发生故障消息可能会丢失。 手动签收Session.CLIENT_ACKNOWLEDGE 在这种模式下消费者必须显式地调用acknowledge()方法来确认消息的接收。消费者可以在处理完消息后手动调用acknowledge()方法以通知消息代理该消息已成功处理。这种方式能够确保消息在被消费后才会被视为已被消费从而增加了消息传递的可靠性。 延迟确认Session.DUPS_OK_ACKNOWLEDGE。 消费者不需要在接收消息时就立即确认。消息代理会允许消息重复传递但是这种模式可以提高消息的传递性能。消费者可以在后续的某个时间点调用acknowledge()方法来确认消息的接收。 事务签收Session.SESSION_TRANSACTED事务签收) 在使用会话Session进行消息接收时可以选择开启事务并在事务提交时进行消息的确认。这种方式可以确保一组消息要么全部被消费要么全部不被消费从而保证消息的一致性和可靠性。 3.1 案例-手动签收 package com.qingsi.activemq;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*; import java.io.IOException;public class JmsConsumer {public static final String ACTIVEMQ_URL tcp://192.168.86.128:61616;public static final String QUEUE_NAME queue01;public static void main(String[] args) throws JMSException, IOException {//1.创建连接工厂按照给定的URL采用默认的用户名密码ActiveMQConnectionFactory activeMQConnectionFactory new ActiveMQConnectionFactory(ACTIVEMQ_URL);//2.通过连接工厂,获得connection并启动访问Connection connection activeMQConnectionFactory.createConnection();connection.start();//3.创建会话session//两个参数transacted事务,acknowledgeMode确认模式(签收)//消费者开启了事务就必须手动提交不然会重复消费消息Session session connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);//4.创建目的地(具体是队列queue还是主题topic)Queue queue session.createQueue(QUEUE_NAME);//5.创建消息的消费者,指定消费哪一个队列里面的消息MessageConsumer messageConsumer session.createConsumer(queue);//6.通过监听的方式消费消息messageConsumer.setMessageListener(new MessageListener() {Overridepublic void onMessage(Message message) {if (message instanceof TextMessage) {try {TextMessage textMessage (TextMessage) message;System.out.println(***消费者接收到的消息: textMessage.getText());// 手动签收textMessage.acknowledge();} catch (Exception e) {System.out.println(出现异常消费失败放弃消费);}}}});//7.关闭资源System.in.read();messageConsumer.close();session.close();connection.close();} } 4.签收和事务的关系 在事务性会话中当一个事务被成功提交则消息被自动签收。如果事务回滚则消息会被再次传送。非事务性会话中消息何时被确认取决于创建会话时的应答模式(acknowledgement mode)

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

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

相关文章

免费发布推广信息网站asp.net网站开发菜鸟

一.新建工程模板(基于固件库) 1.1库函数与寄存器的区别 这里的启动文件都是根据容量来进行区分的 对MDK而言即使include了,也不知道在哪里找头文件 STM32F10X_HD,USE_STDPERIPH_DRIVER 二.新建工程模板(基于寄存器) 上面的大部分配置与固件库的一样 具体可以看手…

简单的视频网站能不能用dw做北京企业建站程序

目录 环境描述 分析过程 1.SD卡格式化 2.使用winhex打开sd卡 3.MBR分析 4.DBR分析

广州响应式网站建设南京网站开发南京乐识权威

前言 上一篇:从领域驱动到模型驱动中我们讨论到,领域驱动设计的核心思想是保持业务-模型-代码的一致性,模型作为沟通业务和代码的工具,至关重要,今天这篇文章就来讨论DDD中建模的一些思考和方法。 什么是建模 虽然看…

天津网站建设公司推荐学电脑哪家好

性能优化是一个很有趣的探索方向,将耗时耗资源的查询优化下来也是一件很有成就感的事情,但既然编程是一种沟通手段,那每一个数据开发者就都有义务保证写出的代码逻辑清晰,具有很好的可读性。 目录 引子 小试牛刀 答案 引言 …

网站建设案例怎么样做淘宝客网站服务器

目录 1.网络编程 2.Echo模型(服务器与客户端实现通信) 3.BIO处理模型(实现多用户访问同个服务器) 4.UDP程序 1.网络编程 有两种通信模型 C/S(Client/Server)基于客户端和服务器端,实现代码时候需要实现客户端与服务器端 B/S(Browser/S…

大二学计算机系统基础

大二学计算机系统基础平台:IA-64 + linux + C + gcc在 linux 系统中:gdb 在 Macintosh OS 上:lldb编译器:以机器码为目标 操作系统:管理进程状态x86-64(又称 x64、AMD64) x86 架构的 64 位扩展 指令集的 64位版…

目前哪些企业需要做网站建设的呢w7系统那个网站做的好

我相信命理,但我不相信在床脚钉四个铜钱就可以保证婚姻幸福、白首偕老。 我相信风水,但我不相信挂一个风铃、摆一个鱼缸就可以使人财运亨通、官禄无碍。 我相信人与环境中有一些神秘的对应关系,但我不相信一个人走路时先跨走左脚或右脚就可以…

阿里云模板建站教程网站的种类

常数 值 描述 vbCr Chr(13) 回车符。 vbCrLf Chr(13) & Chr(10) 回车符与换行符。 vbFormFeed Chr(12) 换页符;在 Microsoft Windows 中不适用。 vbLf Chr(10) 换行符。 vbNewLine Chr(13) & Chr(10) 或 Chr(10) 平台指定的新行字符;适用于…

免费做网站app怎么做页面跳转

参考链接&#xff1a; 反转Java中的字符串String 一、java字符串的反转 1.利用java字符串的拼接实现字符串的反转&#xff0c;代码如下&#xff1a; public static String reverse(String s){ int lens.length(); String str""; for (int i 0; i < len; i) { …

20250929 之所思 - 人生如梦

20250929 之所思最近事情发生的有点多,思绪有点混乱。9.23 台风来临,9.24 居家办公一天;9.27日因为26日晚没有控制好时间几乎通宵,迷迷糊糊的度过了一天,9.28日又补班,整个节奏很混乱,加上最近休假的同事特别多…

9/29

今日学习了Java中的出题系统,使用了子方法的方法写代码,让我收获颇丰,明日继续

聊城专业建网站价格中国建设银行官网站住房公积金

Redis 作为一个高性能的分布式缓存系统,广泛应用于后端开发中,因此在后端研发面试中,关于 Redis 的问题十分常见。 本文整理了30个常见的 Redis 面试题目,涵盖了 Redis 的源码、数据结构、原理、集群模式等方面的知识,并附上简要的回答,帮助大家更好地准备相关的面试。 …

9.9元包邮网站怎么做昆明做网站的网络公司

首先&#xff0c;先介绍两种引入模块的方法。 法一&#xff1a;将整个文件引入 import 文件名 文件名.函数名( ) / 文件名.类名 通过这个方法可以运行另外一个文件里的函数 法二&#xff1a;只引入某个文件中一个类/函数/变量 需要从某个文件中引入多个函数或变量时&#xff0c…

河南网站排名优化wordpress 响应速度

文章目录 切片的诞生&#xff1a;数组的延伸切片的结构初始化切片 切片的内存管理扩容机制 实例分析&#xff1a;切片的动态特性切片与性能性能对比 切片的并发安全并发场景下的切片操作 切片与接口切片与空接口 切片的遍历与操作遍历切片切片的切片操作 切片的垃圾回收切片的生…

昆山科技网站建设达州网站建设公司

为了使用你提到的封装方式来创建一个包含多个 Data 对象的列表并使用 DataLoader 来加载这些数据&#xff0c;我们可以按照以下步骤进行&#xff1a; 创建数据&#xff1a;生成节点特征矩阵、边索引矩阵和标签。封装数据&#xff1a;使用 Data 对象将这些数据封装起来。使用 D…

怎么制作学校网站徐州百姓网

防水涂料和施工堵漏的“五大技巧”和“九个细节”很多业主会在留言里问我家里水管堵了、房顶渗水怎么办&#xff0c;所以防水问题不可忽视。让您住的安心&#xff0c;您楼下的邻居也住的安心。对于防水问题&#xff0c;一定要在最初进行装修的时候就特别注意。下面这些是专业人…

如何设计个人网站响应式网站和自适应

前情回顾&#xff1a;i操作并不是原子操作&#xff0c;因此多线程下会达不到预期的效果&#xff0c;需要通过加锁或AtomicInteger或LongAdder等方法来实现。 i可以分为三步 我们通过实验来观察实现i操作的方式。 下面实验中通过继承Thread实现了多线程 错误方法&#xff1a;…

网上工伤做实网站做网站都要掌握什么

文章目录 分布式IDUUIDSnowflake算法数据库自增IDLeaf算法Redis自增ID 分布式ID 在我们业务数据量不大的时候&#xff0c;单库单表完全可以支撑现有业务&#xff0c;数据再大一点搞个MySQL主从同步读写分离也能对付。但随着数据日渐增长&#xff0c;主从同步也扛不住了&#x…

规范12388举报网站建设管理2022年列入传销组织最新骗法

http://www.samsung.com/global/business/semiconductor/mobilesocProductDown.do?userIdtechinfinicores.com转载于:https://www.cnblogs.com/zd_ad/archive/2010/11/16/1878238.html