ActiveMQ持久化订阅后,为什么Messages Dequeued一直都是0

package com.activmq.tms.PubSub;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;

import org.apache.activemq.ActiveMQConnectionFactory;

import com.activmq.tms.util.SystemContent;

/**

  • 消息的生产者(发送者)
  • @author chen
    *
    */
    public class JMSPub {
    //private static final String USERNAME = SystemContent.getUSERNAME();
    //private static final String PASSWORD = SystemContent.getPASSWORD();
    //private static final String BROKEURL = SystemContent.getURL();
    //private static final int SENDNUM = 10;

    public static void main(String[] args) {
    //连接工厂
    ConnectionFactory connectionFactory = null;
    //链接
    Connection connection = null;
    //会话 接受或者发送消息的线程
    Session session = null;
    //消息的目的地
    Destination destiation = null;
    //消息生成者
    MessageProducer messageProducer = null;
    try {
    //实例化连接工厂
    connectionFactory = new ActiveMQConnectionFactory(SystemContent.getUSERNAME(),SystemContent.getPASSWORD(),SystemContent.getURL());
    //通过工厂获得连接
    connection = connectionFactory.createConnection();
    //启动连接
    connection.start();
    //创建session
    session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
    destiation = session.createTopic("userSyncTopic");
    //创建消息生产者
    messageProducer = session.createProducer(destiation);
    //设置持久化方式/非持久化 如果非持久化,那么意味着MQ的重启会导致消息丢失
    messageProducer.setDeliveryMode(DeliveryMode.PERSISTENT);
    //发送消息
    sendMessage(session, messageProducer);
    session.commit();
    } catch (JMSException e) {
    e.printStackTrace();
    }finally{
    if(connection != null){
    try {
    connection.close();
    } catch (JMSException e) {
    e.printStackTrace();
    }
    }
    }
    }

    /**

    • 发送消息
    • @param session
    • @param messageProducer
    • @throws JMSException */ public static void sendMessage(Session session,MessageProducer messageProducer) throws JMSException{ try{ for(int i = 0;i < 10;i++){ TextMessage message = session.createTextMessage("ActiveMQ 发送消息 "+i); message.setStringProperty("property", "消息Property"); messageProducer.send(message); System.out.println("ActiveMQ 已发送消息:"+i); } }catch(Exception e){ e.printStackTrace(); }

    }
    }

package com.activmq.tms.PubSub;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;
import javax.jms.TopicSubscriber;

import org.apache.activemq.ActiveMQConnectionFactory;

import com.activmq.tms.util.SystemContent;

public class JMSSub{

public static void main(String[] args) {
    //连接工厂
    ConnectionFactory connectionFactory = null;
    //连接
    Connection connection = null;
    //会话
    Session session = null;
    //消息的目的地
    Topic topic = null;
    //消息的消费者(接收方)
    MessageConsumer  consumer = null;
    try {
        connectionFactory = new ActiveMQConnectionFactory(SystemContent.getUSERNAME(),SystemContent.getPASSWORD(),SystemContent.getURL());
        connection = connectionFactory.createConnection();
        connection.setClientID("client_ids");
        connection.start();
        session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
        topic = session.createTopic("userSyncTopic");
        consumer = session.createDurableSubscriber(topic, "client_ids");
        consumer.setMessageListener(new MessageListener() {
            @Override
            public void onMessage(Message message) {
                if(message instanceof TextMessage){
                    TextMessage mes = (TextMessage) message;
                    try {
                        System.out.println("收到的消息:" + mes.getText());
                        mes.acknowledge();
                    } catch (JMSException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
    } catch (JMSException e) {
        e.printStackTrace();
    }finally{

    }
}

}

消费者即使下线后仍能收到消息,可是为什么队列里面的消息数不会减少呀,用的是mysql的持久化方式

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
求问,activemq监控中,队列的Messages Enqueued数量比Messages Dequeued少是为什么?

![图片说明](https://img-ask.csdn.net/upload/201908/09/1565322886_337353.png) 但是进到队列里面的消费数据看又没有问题

ActiveMQ持久化文件清除问题?

在学习activemq,用kahaDB持久化,在测试性能时发现 1.如果持久订阅者都在线接收消息,db-.log会自动删除,但是db.data文件越来越大,对以后系统性能肯定会有影响,怎么控制这个文件大小? 2.如果持久订阅者很多,有几个一直不在线,则导致db-.log文件一直保留,即使消息过期了也不会删除,只有所有的持久订阅者都在线后才会删除db-.log 3.设置4个持久订阅者,先一个在线,两个不在线,生产者插入50W条消息后,大概使用了500M磁盘空间,然后让第二个在线消费消息,磁盘空间使用反而增加了一百多M,第三个再消费者启动消费消息,磁盘空间继续增加,除非四个都消费消息之后磁盘空间才会释放,这是什么问题。。。(若是有很多持久订阅者不在线不就把磁盘撑爆了。。。) 请大牛帮忙解释下,是哪个参数配置不对吗?

ActiveMQ 持久化到数据库

Topic消息发送成功,并且并没有消费者进行消费,为什么ACTIVEMQ_MSGS 表中没有任何记录??

把activemq.xml文件更改为mysql持久化之后就会启动报错是怎么回事呢?

在弄activemq持久化的,我把activemq.xml文件更改为mysql持久化之后就会启动报错是怎么回事呢?

关于activemq 队列持久化消息传送速度的问题?

我使用两种方法测试activemq在队列模式下使用kahadb持久化消息传送速度,结果上来看两种方法测出来的速度相差很大,一个一万多条每秒,一个五千左右每秒。 两种测试方法的测试机器是一样的,测试用例相同,activemq的配置也是一样的,谁能给分析下为什么速度差很多??? 做服务器机器叫server,方法一:先脚本启动10个消费者,当20秒没有收到消息就退出,再脚本启动10个生产者,几下开始时间T1秒,每个生产者发送10万条消息,并监视是否消费者进程都退出了,若果退出几下时间T2秒,用总的生产数量/(T2-T1-20)(消费者设置20秒超时退出),得到一万多条每秒,CPU大概300左右,io 读写11000k每秒。 方法二:单独测试生产者或者消费者速度,脚本启动十个生产者,每个发送10万条到server,测试结果大概每秒五千条消息,CPU 120左右io读写8500k每秒。 为什么这两种测试情况速度会相差很大呢?没有币给悬赏了,谢谢大家。

用java代码如何设置activemq消息持久化到数据库中?

想将activeMQ消息持久化到数据库中,网上都是说将activeMQ.xml文件做如下设置: <persistence> <jdbcPersistence dataSourceRef=" mysql-ds"/> </persistence> <bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost/activemq?relaxAutoCommit=true"/> <property name="username" value="activemq"/> <property name="password" value="activemq"/> <property name="poolPreparedStatements" value="true"/> </bean> 我能否在java代码中进行设置呢?因为我是在eclipse中导入的activemq-all-5.2.0.jar包,开发的系统,包中没有activemq.xml文件。而且时间比较紧,我没有用spring。 而且我是把broker嵌入在eclipse中启动的,代码如下: BrokerService broker = new BrokerService(); broker.setUseJmx(true); broker.setBrokerName(brokerName); broker.addConnector("tcp://localhost:61616"); broker.start(); 用java代码如何设置消息持久化到数据库中?什么教程有这方面的说明吗?您可以帮忙解答一下吗?不胜感激!

activeMQ的疑问,高手求教

![图片说明](https://img-ask.csdn.net/upload/201703/21/1490066185_164005.png) 这个topic 是一个什么信息,我发现每次处理完一条消息后 都会生成这样一条信息,有点儿糊涂。

activemq持久订阅后kahadb的log在不断增加,可以手动删除吗?

activemq持久订阅后kahadb的log在不断增加,可以手动删除吗? log存在的一个原因就是一些消费者始终没有在线导致数据不能自动删除, 但是项目测试中有一些clientId不会再使用了,请问这种情况下可以删除旧的 log吗?

activeMQ异步,订阅模式,如何解决消息丢失和重发

我们现在在做一个商城项目;使用activeMQ完成系统之间的信息同步,实用异步发 送,发布订阅模式,因为异步,所以使用的事listener监听,这样如果我配置消息 持久化,问题如下: 1. consumer返回给broker的ackknowldge是在onmessage方法后,所以不 会存在消息丢失,对吗? 2. 如果consumer在接收到消息但是未给broker应答,consumer宕机了,默认重发 数是6次,如果我consumer一直宕机,broker会在发送第一条发现连接不上的时候停止发送,还是一直发完6次?最后消息又会怎样? 3. 我的消息都比较重要,不允许丢失,要怎么处理? 各位大哥,我已经看各种博文两天两夜了,实在理解总结不了,请帮忙解惑,不要丢给我一堆连接叫我看,谢谢!

求解决:ActiveMQ在发布订阅模式下会递增式的重复接收消息

求解决:ActiveMQ在发布订阅模式下有多个consumer,consumer会递增式的重复接收消息 问题:springboot集成ActiveMQ实现了消费队列和发布订阅两种消息类型,发布订阅模式下有TopicConsumer1和TopicConsumer2,监听的destination都是alarm.topic,但这两个consumer会递增式的重复接收消息。我的实现代码如下: ------------------------------------------------------------- test入口类 @RunWith(SpringRunner.class) @SpringBootTest(classes = MessageCenterApplication.class) public class ActivemqTest { @Autowired private Producer producer; @Test public void testSendTopicMessage(){ for (int i = 0; i < 5; i++) { producer.sendTopicMessage(Destinations.ALARM_TOPIC, "here is a topic message, the number is " + i); } } /*输出结果如下,这个输出结果不是我所期望的 TopicConsumer1接收到的消息内容为:here is a topic message, the number is 0 TopicConsumer2接收到的消息内容为:here is a topic message, the number is 0 TopicConsumer2接收到的消息内容为:here is a topic message, the number is 1 TopicConsumer1接收到的消息内容为:here is a topic message, the number is 1 TopicConsumer2接收到的消息内容为:here is a topic message, the number is 1 TopicConsumer1接收到的消息内容为:here is a topic message, the number is 1 TopicConsumer2接收到的消息内容为:here is a topic message, the number is 2 TopicConsumer1接收到的消息内容为:here is a topic message, the number is 2 TopicConsumer2接收到的消息内容为:here is a topic message, the number is 2 TopicConsumer1接收到的消息内容为:here is a topic message, the number is 2 TopicConsumer2接收到的消息内容为:here is a topic message, the number is 2 TopicConsumer1接收到的消息内容为:here is a topic message, the number is 2 TopicConsumer2接收到的消息内容为:here is a topic message, the number is 3 TopicConsumer1接收到的消息内容为:here is a topic message, the number is 3 TopicConsumer2接收到的消息内容为:here is a topic message, the number is 3 TopicConsumer1接收到的消息内容为:here is a topic message, the number is 3 TopicConsumer2接收到的消息内容为:here is a topic message, the number is 3 TopicConsumer1接收到的消息内容为:here is a topic message, the number is 3 TopicConsumer2接收到的消息内容为:here is a topic message, the number is 3 TopicConsumer1接收到的消息内容为:here is a topic message, the number is 3 TopicConsumer2接收到的消息内容为:here is a topic message, the number is 4 TopicConsumer1接收到的消息内容为:here is a topic message, the number is 4 TopicConsumer2接收到的消息内容为:here is a topic message, the number is 4 TopicConsumer1接收到的消息内容为:here is a topic message, the number is 4 TopicConsumer2接收到的消息内容为:here is a topic message, the number is 4 TopicConsumer1接收到的消息内容为:here is a topic message, the number is 4 TopicConsumer2接收到的消息内容为:here is a topic message, the number is 4 TopicConsumer1接收到的消息内容为:here is a topic message, the number is 4 TopicConsumer2接收到的消息内容为:here is a topic message, the number is 4 TopicConsumer1接收到的消息内容为:here is a topic message, the number is 4*/ } ------------------------------------------------------------- Producer实现类 @Component public class Producer { @Autowired @Qualifier("jmsQueueMessagingTemplate") private JmsMessagingTemplate jmsQueueMessagingTemplate; @Autowired @Qualifier("jmsTopicMessagingTemplate") private JmsMessagingTemplate jmsTopicMessagingTemplate; /** * 使用queue消息类型(点对点) */ public void sendQueueMessage(String destination, final String message){ Queue queue = new ActiveMQQueue(destination); jmsQueueMessagingTemplate.convertAndSend(queue, message); } /** * 使用topic消息类型 */ public void sendTopicMessage(String destination, final String message){ Topic topic = new ActiveMQTopic(destination); jmsTopicMessagingTemplate.convertAndSend(topic, message); } } ------------------------------------------------------------- TopicConsumer1和TopicConsumer2的实现代码 @Component public class TopicConsumer1 { @JmsListener(destination = Destinations.ALARM_TOPIC, containerFactory = "jmsListenerContainerFactory4Topic") public void receive(String message){ System.out.println("TopicConsumer1接收到的消息内容为:" + message); } } @Component public class TopicConsumer2 { @JmsListener(destination = Destinations.ALARM_TOPIC, containerFactory = "jmsListenerContainerFactory4Topic") public void receive(String message){ System.out.println("TopicConsumer2接收到的消息内容为:" + message); } } ------------------------------------------------------------- jmsTopicMessagingTemplate对应的bean的配置 @Configuration public class JmsMessagingConfig { @Autowired @Qualifier(value = "jmsQueueTemplate") private JmsTemplate jmsQueueTemplate; @Autowired @Qualifier(value = "jmsTopicTemplate") private JmsTemplate jmsTopicTemplate; @Bean(name = "jmsQueueMessagingTemplate") public JmsMessagingTemplate jmsQueueMessagingTemplate(){ return new JmsMessagingTemplate(jmsQueueTemplate); } @Bean(name = "jmsTopicMessagingTemplate") public JmsMessagingTemplate jmsTopicMessagingTemplate(){ return new JmsMessagingTemplate(jmsTopicTemplate); } } ------------------------------------------------------------ jmsTopicTemplate对应的bean的配置 @Configuration public class JmsConfig { private final JmsProperties jmsProperties; private final ObjectProvider<DestinationResolver> destinationResolver; private final ObjectProvider<MessageConverter> messageConverter; public JmsConfig(JmsProperties jmsProperties, ObjectProvider<DestinationResolver> destinationResolver, ObjectProvider<MessageConverter> messageConverter) { this.jmsProperties = jmsProperties; this.destinationResolver = destinationResolver; this.messageConverter = messageConverter; } @ConfigurationProperties(prefix = "spring.activemq") @Bean(name = "jmsQueueTemplate") @Primary public JmsTemplate jmsQueueTemplate(PooledConnectionFactory pooledConnectionFactory) { JmsTemplate template = new JmsTemplate(pooledConnectionFactory); // 设置为使用queue消息类型 template.setPubSubDomain(false); DestinationResolver destinationResolver = (DestinationResolver) this.destinationResolver.getIfUnique(); if (destinationResolver != null) { template.setDestinationResolver(destinationResolver); } MessageConverter messageConverter = (MessageConverter) this.messageConverter.getIfUnique(); if (messageConverter != null) { template.setMessageConverter(messageConverter); } // deliveryMode, priority, timeToLive 的开关,要生效,必须配置为true,默认false template.setExplicitQosEnabled(true); // DeliveryMode.NON_PERSISTENT=1:非持久 ; DeliveryMode.PERSISTENT=2:持久 template.setDeliveryMode(DeliveryMode.PERSISTENT); // 默认不开启事务 // 如果不启用事务,则会导致XA事务失效; // 作为生产者如果需要支持事务,则需要配置SessionTransacted为true template.setSessionTransacted(true); return template; } @ConfigurationProperties(prefix = "spring.activemq") @Bean(name = "jmsTopicTemplate") public JmsTemplate jmsTopicTemplate(PooledConnectionFactory pooledConnectionFactory) { JmsTemplate template = new JmsTemplate(pooledConnectionFactory); // 设置为使用topic消息类型 template.setPubSubDomain(true); DestinationResolver destinationResolver = (DestinationResolver) this.destinationResolver.getIfUnique(); if (destinationResolver != null) { template.setDestinationResolver(destinationResolver); } MessageConverter messageConverter = (MessageConverter) this.messageConverter.getIfUnique(); if (messageConverter != null) { template.setMessageConverter(messageConverter); } // deliveryMode, priority, timeToLive 的开关,要生效,必须配置为true,默认false template.setExplicitQosEnabled(true); // DeliveryMode.NON_PERSISTENT=1:非持久 ; DeliveryMode.PERSISTENT=2:持久 template.setDeliveryMode(DeliveryMode.PERSISTENT); // 默认不开启事务 // 如果不启用事务,则会导致XA事务失效; // 作为生产者如果需要支持事务,则需要配置SessionTransacted为true template.setSessionTransacted(true); return template; } @ConfigurationProperties(prefix = "spring.activemq") @Bean(name = "jmsListenerContainerFactory4Topic") public DefaultJmsListenerContainerFactory jmsListenerContainerFactory4Topic(PooledConnectionFactory pooledConnectionFactory) { DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory(); factory.setConnectionFactory(pooledConnectionFactory); // 设置为使用topic消息类型 factory.setPubSubDomain(true); //如果单独配置了分布式事务,则启用 // if (this.transactionManager != null) { // factory.setTransactionManager(transactionManager); // } else { factory.setSessionTransacted(Boolean.valueOf(true)); // } JmsProperties.Listener listener = jmsProperties.getListener(); factory.setAutoStartup(listener.isAutoStartup()); if (listener.getAcknowledgeMode() != null) { factory.setSessionAcknowledgeMode(Integer.valueOf(listener.getAcknowledgeMode().getMode())); } String concurrency = listener.formatConcurrency(); if (concurrency != null){ factory.setConcurrency(concurrency); } return factory; } @ConfigurationProperties(prefix = "spring.activemq") @Bean(name = "jmsListenerContainerFactory4Queue") public DefaultJmsListenerContainerFactory jmsListenerContainerFactory4Queue(PooledConnectionFactory pooledConnectionFactory) { DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory(); factory.setConnectionFactory(pooledConnectionFactory); // 设置为使用queue消息类型 factory.setPubSubDomain(false); //如果单独配置了分布式事务,则启用 // if (this.transactionManager != null) { // factory.setTransactionManager(transactionManager); // } else { factory.setSessionTransacted(Boolean.valueOf(true)); // } JmsProperties.Listener listener = jmsProperties.getListener(); factory.setAutoStartup(listener.isAutoStartup()); if (listener.getAcknowledgeMode() != null) { factory.setSessionAcknowledgeMode(Integer.valueOf(listener.getAcknowledgeMode().getMode())); } String concurrency = listener.formatConcurrency(); if (concurrency != null){ factory.setConcurrency(concurrency); } return factory; } } -------------------------------------------------------------------------------------- yml配置文件的配置 spring: #jms配置,配合activemq一起配置 jms: listener: concurrency: 1 max-concurrency: 50 #activemq配置 activemq: #默认使用spring-boot-starter-activemq内嵌的activemq,除非明确指定了broker-url in-memory: false user: system password: manager broker-url: auto+nio://192.168.137.5:61616 pool: enabled: true max-connections: 500

ActiveMQ中队列没有堆积的情况下,持久化的kahadb的数据量一直在增长

我的理解是当队列处于空闲状态原本因为数据量过大持久化到db-log的数据不是应该写回队列 中了吗,现在的情况是队列的生产者端并没有产生数据堆积,但是kahadb中的数据却一直在增 长,应该怎么解决。

ActiveMQ发布订阅问题?

使用ActiveMQ开发,如果发布者每1秒发布一条数据,有些订阅者每4秒读取一条,怎么才能让订阅者跳过缓存,读取到最新数据。 ``` //发布者测试代码 public class MessageProducer { //定义ActivMQ的连接地址 private static final String ACTIVEMQ_URL = "tcp://localhost:61616"; public static void main(String[] args) throws JMSException { //创建连接工厂 ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory( ACTIVEMQ_URL); //创建连接 Connection connection = activeMQConnectionFactory.createConnection(); //打开连接 connection.start(); //创建会话 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //创建队列目标 //Destination destination = session.createQueue(QUEUE_NAME); Topic test = session.createTopic("572890"); //创建一个生产者 javax.jms.MessageProducer producer = session.createProducer(test); //创建模拟100个消息 int num = 0; long sTime = System.currentTimeMillis(); TextMessage message = null; while (true) { num++; message = session.createTextMessage(num+""); //发送消息 producer.send(message); try { System.out.println(num); Thread.sleep(1000); } catch (Exception e) { } if (num > 100) { break; } } long eTime = System.currentTimeMillis(); System.out.println("总计用时:" + (eTime - sTime)); //关闭连接 connection.close(); } } //订阅者测试代码 public class MessageConsumer { //定义ActivMQ的连接地址 private static final String ACTIVEMQ_URL = "tcp://localhost:61616"; //定义发送消息的队列名称 private static final String QUEUE_NAME = "PP_ERROR"; static int num = 0; public static void main(String[] args) throws JMSException { //创建连接工厂 ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(ACTIVEMQ_URL); //创建连接 Connection connection = activeMQConnectionFactory.createConnection(); //打开连接 connection.start(); //创建会话 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //创建队列目标 //Destination destination = session.createQueue(QUEUE_NAME); Topic test = session.createTopic("572890"); //创建消费者 javax.jms.MessageConsumer consumer = session.createConsumer(test); //创建消费的监听 consumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { num ++; TextMessage textMessage = (TextMessage) message; try { System.out.println(textMessage.getText()); Thread.sleep(4000); } catch (Exception e) { e.printStackTrace(); } } }); } } ```

spring+activemq 发布订阅模式,短期运行正常后监听消失

activeMQ发布/订阅模式下,消费者端通过异步消息监听器(messagelistener)实现消息订阅,同样的消费者端应用被部署到两台linux服务器上,正常监听一段时间后,经过没有消息发送阶段后,等到消息生产者再次开始发布消息时,其中一台服务器上的消费者端应用没有监听线程了,请问这是啥原因?请大神们赐教!!配置了失效重连机制

activemq使用kahadb持久化搭建分布式集群后发下消息处理速度明显不如单台机器的性能,为什么会下降呢

最近在linux下测试ActiveMQ5.11 ,使用两台电脑进行分布式布控,测试处理消息性能时,发现对消息的处理速度远不如一台机器工作处理速度,搭建分布式集群后哪里会影响其速度吗?

activemq使用kahadb持久化搭建分布式集群后发下消息处理速度明显不如一台机器的性能

最近在linux下测试ActiveMQ5.11 ,使用两台电脑进行分布式布控,测试处理消息性能时,发现对消息的处理速度远不如一台机器工作处理速度,搭建分布式集群后哪里会影响其速度吗?

activemq中的topic队列在删除队列后消费者依然能够接收到请求

我在jmeter中对一个http接口进行了一百次请求![图片说明](https://img-ask.csdn.net/upload/202001/09/1578569643_727542.png) ![图片说明](https://img-ask.csdn.net/upload/202001/09/1578570841_912688.png) 接口如下: ``` java @GetMapping("send") public void send(String msg) { // 指定消息发送的目的地及内容 System.out.println(new Date().toString()); queueMessageService.setTopic("topic",msg); } ``` 调用的Bean ``` java @Component public class QueueMessageService { @Autowired private JmsMessagingTemplate jmsMessagingTemplate; public void setQueue(String queue,String msg){ jmsMessagingTemplate.convertAndSend(new ActiveMQQueue(queue),msg); } public void setTopic(String topic,String msg) { jmsMessagingTemplate.convertAndSend(new ActiveMQTopic(topic),msg); } } ``` 我使用了两个消费者用于接收请求 ```java @JmsListener(destination = "topic") public void receiveMessage(String message) throws InterruptedException { Thread.sleep(4000); System.out.println(hfnsTermService.getCount()); System.out.println(new Date().toString()+"topic接收:"+message); } @JmsListener(destination = "topic") public void readResponse(String message) throws InterruptedException { Thread.sleep(1000); for(HfnsTerm hfnsTerm:hfnsTermService.getHfnsTerm()){ System.out.println(hfnsTerm.getId()); } System.out.println(new Date().toString()+"topic1接收:"+message); } ``` ![图片说明](https://img-ask.csdn.net/upload/202001/09/1578570403_712572.png) ![图片说明](https://img-ask.csdn.net/upload/202001/09/1578570672_991950.png) 当我在请求还没完全接收完时在activemq控制台把topic队列进行了删除操作 ![图片说明](https://img-ask.csdn.net/upload/202001/09/1578570549_153369.png) 此时activemq中是没有topic队列的,但是我依然能够接收到topic队列中的消息 ![图片说明](https://img-ask.csdn.net/upload/202001/09/1578570782_702718.png) 请问这是为什么?

ACTIVEMQ Topic消息 生产者 发布消息后 消费者收不到消息

<p> </p> <pre name="code" class="java">生产者 public class Producer { public static void main(String[] args) throws JMSException { ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection connection = factory.createConnection(); connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); ActiveMQTopic topic= new ActiveMQTopic("testTopic"); MessageProducer producer = session.createProducer(topic); producer.setDeliveryMode(DeliveryMode.PERSISTENT); for(int i=0; i&lt;10; i++){ TextMessage message = session.createTextMessage(); message.setText("message_" + System.currentTimeMillis()); producer.send(message); System.out.println("Sent message: " + message.getText()); } // session.close(); // connection.stop(); // connection.close(); } } 发布消息的结果 Sent message: message_1341915173083 Sent message: message_1341915173085 Sent message: message_1341915173085 Sent message: message_1341915173086 Sent message: message_1341915173086 Sent message: message_1341915173086 Sent message: message_1341915173087 Sent message: message_1341915173087 Sent message: message_1341915173088 Sent message: message_1341915173088 消费者 public class Consumer { public static void main(String[] args) throws JMSException { ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection connection = factory.createConnection(); connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); ActiveMQTopic topic= new ActiveMQTopic("testTopic"); // javax.jms.Topic topic = session.createTopic("myTopic.messages"); MessageConsumer consumer = session.createConsumer( topic); consumer.setMessageListener(new MessageListener() { public void onMessage(Message message) { TextMessage tm = (TextMessage) message; try { System.out.println("Received message: " + tm.getText()); } catch (JMSException e) { e.printStackTrace(); } } }); MessageConsumer comsumer2 = session.createConsumer(topic); comsumer2.setMessageListener(new MessageListener(){ public void onMessage(Message message) { TextMessage tm = (TextMessage) message; try { System.out.println("Received message: " + tm.getText()); } catch (JMSException e) { e.printStackTrace(); } } }); // session.close(); // connection.stop(); // connection.close(); } } <span>消费者运行程序后后获取不到生产者发布的消息,初识 ActiveMQ不太熟悉, 求解答</span></pre>   <p> </p>

如何激活ActiveMQ持久性以抵抗重启?

<div class="post-text" itemprop="text"> <p>I do get ActiveMQ supports data persistence (<a href="http://activemq.apache.org/persistence.html" rel="nofollow noreferrer">http://activemq.apache.org/persistence.html</a>), but i cannot understand how to make it work, the result is when i restart ActiveMQ all the messages disappear, while queues and topics remain. </p> <p>I've read about to enable persistence on a database but i want to keep data on the filesystem since my system is facing database perfomance issues.</p> <p>This is my activemq.xml</p> <pre><code>&lt;!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --&gt; &lt;!-- START SNIPPET: example --&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd"&gt; &lt;!-- Allows us to use system properties as variables in this configuration file --&gt; &lt;bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt; &lt;property name="locations"&gt; &lt;value&gt;file:${activemq.conf}/credentials.properties&lt;/value&gt; &lt;/property&gt; &lt;/bean&gt; &lt;!-- Allows accessing the server log --&gt; &lt;bean id="logQuery" class="io.fabric8.insight.log.log4j.Log4jLogQuery" lazy-init="false" scope="singleton" init-method="start" destroy-method="stop"&gt; &lt;/bean&gt; &lt;!-- The &lt;broker&gt; element is used to configure the ActiveMQ broker. --&gt; &lt;broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}"&gt; &lt;destinationPolicy&gt; &lt;policyMap&gt; &lt;policyEntries&gt; &lt;policyEntry topic="&gt;" &gt; &lt;!-- The constantPendingMessageLimitStrategy is used to prevent slow topic consumers to block producers and affect other consumers by limiting the number of messages that are retained For more information, see: http://activemq.apache.org/slow-consumer-handling.html --&gt; &lt;pendingMessageLimitStrategy&gt; &lt;constantPendingMessageLimitStrategy limit="1000"/&gt; &lt;/pendingMessageLimitStrategy&gt; &lt;/policyEntry&gt; &lt;/policyEntries&gt; &lt;/policyMap&gt; &lt;/destinationPolicy&gt; &lt;!-- The managementContext is used to configure how ActiveMQ is exposed in JMX. By default, ActiveMQ uses the MBean server that is started by the JVM. For more information, see: http://activemq.apache.org/jmx.html --&gt; &lt;managementContext&gt; &lt;managementContext createConnector="false"/&gt; &lt;/managementContext&gt; &lt;!-- Configure message persistence for the broker. The default persistence mechanism is the KahaDB store (identified by the kahaDB tag). For more information, see: http://activemq.apache.org/persistence.html --&gt; &lt;persistenceAdapter&gt; &lt;kahaDB directory="${activemq.data}/kahadb"/&gt; &lt;/persistenceAdapter&gt; &lt;!-- The systemUsage controls the maximum amount of space the broker will use before disabling caching and/or slowing down producers. For more information, see: http://activemq.apache.org/producer-flow-control.html --&gt; &lt;systemUsage&gt; &lt;systemUsage&gt; &lt;memoryUsage&gt; &lt;memoryUsage percentOfJvmHeap="70" /&gt; &lt;/memoryUsage&gt; &lt;storeUsage&gt; &lt;storeUsage limit="100 gb"/&gt; &lt;/storeUsage&gt; &lt;tempUsage&gt; &lt;tempUsage limit="50 gb"/&gt; &lt;/tempUsage&gt; &lt;/systemUsage&gt; &lt;/systemUsage&gt; &lt;!-- The transport connectors expose ActiveMQ over a given protocol to clients and other brokers. For more information, see: http://activemq.apache.org/configuring-transports.html --&gt; &lt;transportConnectors&gt; &lt;!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --&gt; &lt;transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=104857600"/&gt; &lt;transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=104857600"/&gt; &lt;transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=104857600"/&gt; &lt;transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=104857600"/&gt; &lt;transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=104857600"/&gt; &lt;/transportConnectors&gt; &lt;!-- destroy the spring context on shutdown to stop jetty --&gt; &lt;shutdownHooks&gt; &lt;bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" /&gt; &lt;/shutdownHooks&gt; &lt;/broker&gt; &lt;!-- Enable web consoles, REST and Ajax APIs and demos The web consoles requires by default login, you can disable this in the jetty.xml file Take a look at ${ACTIVEMQ_HOME}/conf/jetty.xml for more details --&gt; &lt;import resource="jetty.xml"/&gt; </code></pre> <p> </p> </div>

java jdk 8 帮助文档 中文 文档 chm 谷歌翻译

JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;&nbsp; 2.常用的黑盒测试用例设计方法及示例演示;&nbsp; 3 常用白盒测试用例设计方法及示例演示;&nbsp; 4.自动化测试优缺点、使用范围及示例‘;&nbsp; 5.测试经验谈。

汽车行驶工况构建2019 D题.zip

1. 标记0与0之间的片段位置 2.标记所之间的毛刺数的位置 3.去掉毛刺数据 速度 并生成 新的数组 4.标记时间段 5. 0与0之间 如果有不连续的时间片段 置零 先找到时间间隔 再看间隔时间对应

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉系统全面的介绍。

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

专为程序员设计的数学课

<p> 限时福利限时福利,<span>15000+程序员的选择!</span> </p> <p> 1、原价 115 元,限时特价仅需 49 元!<br> 2、购课后添加学习助手(微信号:csdnxy68),按提示消息领取编程大礼包!并获取讲师答疑服务! </p> <p> <br> </p> <p> 套餐中一共包含5门程序员必学的数学课程(共47讲) </p> <p> 课程1:《零基础入门微积分》 </p> <p> 课程2:《数理统计与概率论》 </p> <p> 课程3:《代码学习线性代数》 </p> <p> 课程4:《数据处理的最优化》 </p> <p> 课程5:《马尔可夫随机过程》 </p> <p> <br> </p> <p> 哪些人适合学习这门课程? </p> <p> 1)大学生,平时只学习了数学理论,并未接触如何应用数学解决编程问题; </p> <p> 2)对算法、数据结构掌握程度薄弱的人,数学可以让你更好的理解算法、数据结构原理及应用; </p> <p> 3)看不懂大牛代码设计思想的人,因为所有的程序设计底层逻辑都是数学; </p> <p> 4)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; </p> <p> 5)想修炼更好的编程内功,在遇到问题时可以灵活的应用数学思维解决问题。 </p> <p> <br> </p> <p> 在这门「专为程序员设计的数学课」系列课中,我们保证你能收获到这些:<br> <br> <span> </span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">①价值300元编程课程大礼包</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">②应用数学优化代码的实操方法</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">③数学理论在编程实战中的应用</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">④程序员必学的5大数学知识</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">⑤人工智能领域必修数学课</span> </p> <p> <br> 备注:此课程只讲程序员所需要的数学,即使你数学基础薄弱,也能听懂,只需要初中的数学知识就足矣。<br> <br> 如何听课? </p> <p> 1、登录CSDN学院 APP 在我的课程中进行学习; </p> <p> 2、登录CSDN学院官网。 </p> <p> <br> </p> <p> 购课后如何领取免费赠送的编程大礼包和加入答疑群? </p> <p> 购课后,添加助教微信:<span> csdnxy68</span>,按提示领取编程大礼包,或观看付费视频的第一节内容扫码进群答疑交流! </p> <p> <img src="https://img-bss.csdn.net/201912251155398753.jpg" alt=""> </p>

微信公众平台开发入门

本套课程的设计完全是为初学者量身打造,课程内容由浅入深,课程讲解通俗易懂,代码实现简洁清晰。通过本课程的学习,学员能够入门微信公众平台开发,能够胜任企业级的订阅号、服务号、企业号的应用开发工作。 通过本课程的学习,学员能够对微信公众平台有一个清晰的、系统性的认识。例如,公众号是什么,它有什么特点,它能做什么,怎么开发公众号。 其次,通过本课程的学习,学员能够掌握微信公众平台开发的方法、技术和应用实现。例如,开发者文档怎么看,开发环境怎么搭建,基本的消息交互如何实现,常用的方法技巧有哪些,真实应用怎么开发。

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

IE主页被篡改修复

IE主页修复。IE主页被篡改修复。一键修复IE主页

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

土豆SDK(Java版)-非官方

由于土豆SDK一直建设中,最近几天抽空写了一套java的SDK。包含了现有的所有请求协议。本套SDK中仅提供了oAuth的方式(引用oAuth.net的java版示例),并没有在框架中实现,涉及到登录

Java8零基础入门视频教程

这门课程基于主流的java8平台,由浅入深的详细讲解了java SE的开发技术,可以使java方向的入门学员,快速扎实的掌握java开发技术!

【数据结构与算法综合实验】欢乐连连看(C++ & MFC)案例

这是武汉理工大学计算机学院数据结构与算法综合实验课程的第三次项目:欢乐连连看(C++ & MFC)迭代开发代码。运行环境:VS2017。已经实现功能:开始游戏、消子、判断胜负、提示、重排、计时、帮助。

数学建模竞赛D题“汽车行驶工况构建

第十六届“华为杯”数学建模竞赛D题“汽车行驶工况构建”论文。论文获得比赛国家二等奖,论文为原创,仅供参考。 关键词:数据处理;降维;聚类。

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

Android音视频开发全套

Android平台音视频开发全套,涉及:FFmpeg软解码解码、Mediacodec硬解码编码、Openssl音频播放、OpenGL ES视频渲染、RTMP推流等核心重要知识点。

设计模式(JAVA语言实现)--20种设计模式附带源码

课程亮点: 课程培训详细的笔记以及实例代码,让学员开始掌握设计模式知识点 课程内容: 工厂模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、原型模型、代理模式、单例模式、适配器模式 策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式 课程特色: 笔记设计模式,用笔记串连所有知识点,让学员从一点一滴积累,学习过程无压力 笔记标题采用关键字标识法,帮助学员更加容易记住知识点 笔记以超链接形式让知识点关联起来,形式知识体系 采用先概念后实例再应用方式,知识点深入浅出 提供授课内容笔记作为课后复习以及工作备查工具 部分图表(电脑PC端查看):

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

想学好JAVA必须要报两万的培训班吗? Java大神勿入 如果你: 零基础想学JAVA却不知道从何入手 看了一堆书和视频却还是连JAVA的环境都搭建不起来 囊中羞涩面对两万起的JAVA培训班不忍直视 在职没有每天大块的时间专门学习JAVA 那么恭喜你找到组织了,在这里有: 1. 一群志同道合立志学好JAVA的同学一起学习讨论JAVA 2. 灵活机动的学习时间完成特定学习任务+每日编程实战练习 3. 热心助人的助教和讲师及时帮你解决问题,不按时完成作业小心助教老师的家访哦 上一张图看看前辈的感悟: &nbsp; &nbsp; 大家一定迫不及待想知道什么是极简JAVA学习营了吧,下面就来给大家说道说道: 什么是极简JAVA学习营? 1. 针对Java小白或者初级Java学习者; 2. 利用9天时间,每天1个小时时间; 3.通过 每日作业 / 组队PK / 助教答疑 / 实战编程 / 项目答辩 / 社群讨论 / 趣味知识抢答等方式让学员爱上学习编程 , 最终实现能独立开发一个基于控制台的‘库存管理系统’ 的学习模式 极简JAVA学习营是怎么学习的? &nbsp; 如何报名? 只要购买了极简JAVA一:JAVA入门就算报名成功! &nbsp;本期为第四期极简JAVA学习营,我们来看看往期学员的学习状态: 作业看这里~ &nbsp; 助教的作业报告是不是很专业 不交作业打屁屁 助教答疑是不是很用心 &nbsp; 有奖抢答大家玩的很嗨啊 &nbsp; &nbsp; 项目答辩终于开始啦 &nbsp; 优秀者的获奖感言 &nbsp; 这是答辩项目的效果 &nbsp; &nbsp; 这么细致的服务,这么好的氛围,这样的学习效果,需要多少钱呢? 不要1999,不要199,不要99,只要9.9 是的你没听错,只要9.9以上所有就都属于你了 如果你: 1、&nbsp;想学JAVA没有基础 2、&nbsp;想学JAVA没有整块的时间 3、&nbsp;想学JAVA没有足够的预算 还等什么?赶紧报名吧,抓紧抢位,本期只招300人,错过只有等时间待定的下一期了 &nbsp; 报名请加小助手微信:eduxy-1 &nbsp; &nbsp;

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

web网页制作期末大作业

分享思维,改变世界. web网页制作,期末大作业. 所用技术:html css javascript 分享所学所得

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 下载方式:电脑登录https://edu.csdn.net/course/detail/27513,点击右下方课程资料、代码、课件等打包下载

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

2019 Python开发者日-培训

本次活动将秉承“只讲技术,拒绝空谈”的理念,邀请十余位身处一线的Python技术专家,重点围绕Web开发、自动化运维、数据分析、人工智能等技术模块,分享真实生产环境中使用Python应对IT挑战的真知灼见。此外,针对不同层次的开发者,大会还安排了深度培训实操环节,为开发者们带来更多深度实战的机会。

C++语言基础视频教程

C++语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践体系的结合,帮助初学者有效学习。本教程详细介绍C++语言中的封装、数据隐藏、继承、多态的实现等入门知识;主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性实现等。 课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。学习者能够通过实践的方式,学会利用C++语言解决问题,具备进一步学习利用C++开发应用程序的基础。

零基础学C#编程—C#从小白到大咖

本课程从初学者角度出发,提供了C#从入门到成为程序开发高手所需要掌握的各方面知识和技术。 【课程特点】 1 由浅入深,编排合理; 2 视频讲解,精彩详尽; 3 丰富实例,轻松易学; 4 每章总结配有难点解析文档。 15大章节,228课时,1756分钟与你一同进步!

编程实现学生基本信息管理程序

编程实现学生基本信息管理程序。学生基本信息包括:学号、姓名、性别、年龄、班级、学院、专业等。具体实现的管理功能如下: (1) 输入并显示多个学生的基本信息; (2) 可根据需要实现学生信息的添加; (

android 漂亮的UI界面 完整的界面设计

声明:这也是我学习时在网上下载的,鉴于分享精神,并且觉得很不错才上传上来的。。。。。 android 漂亮的UI界面 完整的界面设计 这是一个完整的UI设计,但是没写动作,这是一个公司程序员的公司任务

Anaconda详细安装及使用教程(带图文)

Anacond的介绍 Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。 Conda是一个开源的包、环境管理器,可以用于...

DirectX修复工具V4.0增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复

几率大的Redis面试题(含答案)

本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制【~】 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Red...

相关热词 c#跨线程停止timer c#批量写入sql数据库 c# 自动安装浏览器 c#语言基础考试题 c# 偏移量打印是什么 c# 绘制曲线图 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行
立即提问