- 2023-12-19·Java后端查看全文学习鱼oj时碰见了一个很奇怪bug Exception in thread "main" java.lang.UnsupportedClassVersionError: Main has been compiled by a more recent version of the Java Runti...是我_是我_就是我:springboot版本高了,换成2.7试试720分享
- 2023-12-13·Java后端刚刚有星球同学问我要了rabbitmq的笔记,于是我想着在星球分享一下,这个是根据尚硅谷的rabbitmq课程笔记改的(md格式),里面加入了一些自己的理解,顺带着还画了一个思维导图(用xmind打开就可以)鱼友0412:[强]1890分享
- 2023-11-30·Java后端查看全文不知道大家有没有被学校的课恶心过的经历,老师非常较真,对实验报告要求非常高,如果写不好平时分就会很低,期末很难过,而且这个实验报告是要小组协作,量很大,小组成员也都不想写,自己写的话很浪费时间,而且老师还会不定期收作业,并且作业是课堂练习和布置的题,作业一多就不知道要完成哪些了,现在真是被这玩意折磨...为:有的是这样的,没办法,知道的早还能调班920分享
- 2023-11-18·Java后端
- 2023-11-17·Java后端查看全文关于一个bug,今天在学习Rabbitmq时出现的,网上搜了很长时间都没有解决,希望大佬们指点一下 目前已经试过但是没有用的方法 一. springboot中的配置文件配置的不对,这其中又分为: (1)配置项格式出错,比如yml格式常见的配置项错位 没有错误 (2)rabbitmq地址错误 ...blink:改了两个多小时,谷歌里面的回答都快翻完了都解决不了[流泪][流泪][流泪]1020分享
- 2023-11-11·Java后端查看全文在学习尚硅谷RabbitMQ课程的时候遇到了一些问题,是关于如何处理异步未确认消息的,网课上解决这个问题的方法是使用ConcurrentSkipListMap存储所有的消息,再在处理确认成功消息的时候将确认成功的消息从ConcurrentSkipListMap中删除,这样剩下的就是未确认的消息,但是...鱼友0412:你提到的问题是关于处理异步未确认消息的方式,以及在处理批量消息时的疑问。首先,确保理解了"headMap()"方法的作用。"headMap(deliveryTag)"返回的是一个视图,其中包含键值小于"deliveryTag"的所有条目。这意味着"outstadingConfirms.headMap(deliveryTag)"实际上返回了小于等于"deliveryTag"的所有条目。因此,在处理确1310分享
- 2023-11-07·Java后端查看全文求助,在学习RabbitMQ时遇见了一个bug。 异常是这个: at com.atguigu.rabbitmq.one.Producer.main(Producer.java:39) com.rabbitmq.client.ShutdownSignalException: channel error...程序员鱼皮:去看智能bi项目吧,我带大家从0入门RabbitMq的
680分享 - 2023-09-06·Java后端查看全文关于对整理笔记的一些拙见(今天在整理笔记时有感而发)。 最初在上视频网课时,会将视频里面出现的内容以截图形式存储在笔记中,但是这样会有很大的弊端,一方面是会消耗很多的时间,课程进度变慢;另一方面是内容与网课资料中的笔记内容基本一样,意义不大。所以就此想出了一个解决方案,首先是不再将视频中的内容无脑粘...编程导航_小y:感谢分享 👍2030分享
大家觉得今年秋招投中小厂的效果怎么样,我是在boss上沟通了500家,投了40多家,结果就两个面试。
学习鱼oj时碰见了一个很奇怪bug Exception in thread "main" java.lang.UnsupportedClassVersionError: Main has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 翻译:Java .lang. unsupportedclassversionerror: main已被最新版本的Java运行时(类文件版本55.0)编译,此版本的Java运行时仅识别52.0以下的类文件版本 意思应该是说我的编译和运行的环境不匹配 但是我的jdk配置不管在哪都是8
刚刚有星球同学问我要了rabbitmq的笔记,于是我想着在星球分享一下,这个是根据尚硅谷的rabbitmq课程笔记改的(md格式),里面加入了一些自己的理解,顺带着还画了一个思维导图(用xmind打开就可以)
不知道大家有没有被学校的课恶心过的经历,老师非常较真,对实验报告要求非常高,如果写不好平时分就会很低,期末很难过,而且这个实验报告是要小组协作,量很大,小组成员也都不想写,自己写的话很浪费时间,而且老师还会不定期收作业,并且作业是课堂练习和布置的题,作业一多就不知道要完成哪些了,现在真是被这玩意折磨无语了。
卡了我六个小时的bug终于解决了,分享一下解决的思路,希望可以给大家在解决bug时提供一些思路
关于一个bug,今天在学习Rabbitmq时出现的,网上搜了很长时间都没有解决,希望大佬们指点一下 目前已经试过但是没有用的方法 一. springboot中的配置文件配置的不对,这其中又分为: (1)配置项格式出错,比如yml格式常见的配置项错位 没有错误 (2)rabbitmq地址错误 没有错误 (3)端口错误 没有错误 二. rabbitmq地址有误,或者rabbitmq所在服务器的网络存在问题,无法连接,这点可以通过ping来测试 测试没有问题 三.配置的账号没有开通对应权限 确定权限均已开通 四. virtual-host配置的有误 没有问题 2023-11-17 21:37:01.974 ERROR 25460 --- [ntContainer#0-3] o.s.a.r.l.SimpleMessageListenerContainer : Failed to check/redeclare auto-delete queue(s). org.springframework.amqp.AmqpIOException: java.io.IOException 代码如下
在学习尚硅谷RabbitMQ课程的时候遇到了一些问题,是关于如何处理异步未确认消息的,网课上解决这个问题的方法是使用ConcurrentSkipListMap存储所有的消息,再在处理确认成功消息的时候将确认成功的消息从ConcurrentSkipListMap中删除,这样剩下的就是未确认的消息,但是他在处理批量消息时我有一些疑问, 他是靠headMap来获取键值严格小于deliveryTag的数据然后将其删除来保证剩下的都是未确认的消息 首先headMap获取的是键值严格小于deliveryTag的数据,他要删除确认数据的话应该是outstadingConfirms.headMap(deliveryTag 1)而不是 outstadingConfirms.headMap(deliveryTag) 然后他这样删除不会把未确认的消息也删掉吗? 如下例子 1, a -> 单个消息 确认删除 2 ,b -> 未确认数据 3 ,c -> 批量数据g 4 ,d -> 批量数据g ConcurrentNavigableMap<Long, String> confirmed = outstadingConfirms.headMap(deliveryTag); 通过这个方法应该获得的confirmed中应该存在 2,b : 3,c : 4,d这三组数据,因为outstadingConfirms中存储的是所有的消息,当然包括未确认的消息 那么使用confirmed.clear()删除的时候不会把未确认的消息也删除了吗? 希望大佬们帮忙解答一下 代码如下 //异步发布确认 public static void publishMessageAsync() throws Exception { Channel channel = RabbitMqUtils.getChannel(); //队列的声明 String queuename = UUID.randomUUID().toString(); channel.queueDeclare(queuename, true, false, false, null); //开启发布确认 channel.confirmSelect(); /** * 线程安全有序的一个哈希表 适用于高并发的情况下 * 1.轻松的将序号与消息进行关联 * * 2.轻松的批量删除条目 只要给到序号 * * 3.支持高并发(多线程) */ ConcurrentSkipListMap<Long, String> outstadingConfirms = new ConcurrentSkipListMap<>(); //消息确认成功 回调方法 ConfirmCallback ackCallback = (deliveryTag, multiple) -> { if(multiple) { //2:删除掉已经确认的消息 剩下的就是未确认的消息 //headMap是保留key小于deliverytag的部分tailMap是保留key大于deliverytag的部分 ConcurrentNavigableMap<Long, String> confirmed = outstadingConfirms.headMap(deliveryTag); //删除的confirmed集合内的数据,会让outstandingConfirms集合中的相应数据被删除 //headMep方法返回的是一个视图,对视图的操作会影响原来的 map,所以清空headMap没有问题 confirmed.clear(); } else { outstadingConfirms.remove(deliveryTag); } System.out.println("确认的消息:" deliveryTag); }; //消息确认失败 回调方法 /** * 1.消息的标记 * 2.是否为批量确认 */ ConfirmCallback nackCallback = (deliverTag, multiple) -> { //3:打印一下未确认的消息都有哪些 String message = outstadingConfirms.get(deliverTag); System.out.println("未确认的消息是" message "::::未确认的消息:" deliverTag); }; //准备消息的监听器,监听哪些消息成功了,哪些消息失败了 /** * 1.监听哪些消息成功了 * 2.监听哪些消息失败了 */ channel.addConfirmListener(ackCallback, nackCallback);//异步通知 //开始时间 long begin = System.currentTimeMillis(); //批量发送消息 for (int i = 0; i < MESSAGE_COUNT; i ) { String message = "消息" i; channel.basicPublish("", queuename, null, message.getBytes()); //1:此处记录下所有要发送的消息 消息的总和 outstadingConfirms.put(channel.getNextPublishSeqNo(), message); } //结束时间 long end = System.currentTimeMillis(); System.out.println("发布" MESSAGE_COUNT "个异步发布确认消息,耗时" (end - begin) "ms"); }
专栏打不开是怎么回事
求助,在学习RabbitMQ时遇见了一个bug。 异常是这个: at com.atguigu.rabbitmq.one.Producer.main(Producer.java:39) com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=403, reply-text=ACCESS_REFUSED - access to queue 'hello' in vhost '/' refused for user 'admin', class-id=50, method-id=10 在网上查找解决方法但只找到了reply-code=406的解决方法,后来自己翻译了下异常,发现错误原因好像是admin的权限不够,不能够添加队列,但是之前已经赋予admin对/vhost1 这个 virtual host 中所有资源的配置、写、读权限,没办法又给admin赋予权限rabbitmqctl set_permissions -p "/" admin ".\*" ".\*" ".\*",但是在运行时还是报了上述异常 后端
关于对整理笔记的一些拙见(今天在整理笔记时有感而发)。 最初在上视频网课时,会将视频里面出现的内容以截图形式存储在笔记中,但是这样会有很大的弊端,一方面是会消耗很多的时间,课程进度变慢;另一方面是内容与网课资料中的笔记内容基本一样,意义不大。所以就此想出了一个解决方案,首先是不再将视频中的内容无脑粘贴到笔记中而是在笔记中保存知识的大体框架(每个知识点的标题),然后每周挑选一天来照着课件敲代码来沉淀一周所学习的知识,将当时认为重要的知识点加上自己对该知识点的见解记录在笔记上。最后就是在实战写项目时,将所用到的该课程的知识点记录在该课程的笔记上。这样应该就能写出简洁实用的笔记。 经验 学习总结


