
java服务端
qq_40191710
这个作者很懒,什么都没留下…
展开
-
RabbitMQ预取值
rabbitmq预取值原创 2022-12-23 19:53:38 · 373 阅读 · 1 评论 -
RabbitMq延迟队列
延时队列,延时队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望在指定时间到了以后或之前取出和处理,简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列死信队列其实也是延迟队列,因为正常队列中设置时间就会发送到死信队列中(消息过期)...原创 2022-01-26 09:31:01 · 131 阅读 · 0 评论 -
RabbitMq 死信队列
死信队列死信,顾名思义就是无法被消费的信息。一般来说,producer将消息投递到broker或者直接到queue里,consumer从queue取出消息进行消费,但某些时候由于特定的原因导致queue中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信(Dead Letter),所有的死信都会放到死信队列中。 应用场景:为了保证订单业务的消息数据不丢失,需要使用到RabbitMq的死信队列机制,当消息消费发生异常时,将消息投入死信队列中。还有比如说:用户在商城下单成功并点击支...原创 2022-01-24 20:57:05 · 2504 阅读 · 0 评论 -
RabbitMQ教程
安装好RabbitMQ之后:我们就可以进行代码编辑了简单队列:添加依赖:P:消息的生产者C:消息的消费者红色:队列生产者将消息发送到队列,消费者从队列中获取消息。(1)添加依赖:<dependency> <groupId>com.rabbitmq</groupId> <artifactId>a......原创 2019-09-30 16:36:20 · 506 阅读 · 0 评论 -
idea线上debug
连接上对应的服务器和debug的端口(123)可以在启动的时候设置为debug模式./....sh debug进入服务器:查看debug端口是否有开启:netstat -nptl | grep 123(如果出现证明端口开启了)如果没有开启就进行iptables-IINPUT-ptcp--dport123 -jACCEPTwindows...原创 2019-09-23 19:02:04 · 579 阅读 · 0 评论 -
服务器排查
先理解java中的堆、栈、方法区堆:线程共享,存储对象以及数组(数组也是对象的一种 new方式创建出来的),同时由于对象内存是动态分配的,对象在超过生命周期及空指针的时候会被gc垃圾回收机制回收,所以效率较慢。栈:用于存储基本数据类型以及对象的引用类型(这里指的基础类型是指不为static修饰的变量,如成员变量 局部变量等.)同时栈存在着先进后出的特点与队列需要区分开(队列是2个口子,...转载 2019-09-22 22:38:45 · 190 阅读 · 0 评论 -
服务端(7)netty+protobuf
1、protobuf protobuf是一种很协议,是谷歌推出的一种序列化协议:(把对象转换成2进制数据)1、创建一个 player.proto 文件 先java中写一个类package com.protoclass player{ long playerId; int age; String name; List&...原创 2019-06-22 17:18:40 · 268 阅读 · 0 评论 -
netty服务端(五)Netty实现单客户端多连接程序
线程池工作原理: 创建线程池的时候一开始会初始化好几个线程,会给每一个线程分配一个工作队列。然后从任务队列中取出一个任务,如果有任务,执行线程的run方法,如果没有任务,则进行阻塞队列,直到工作队列有新的任务进来。才继续取出一个任务。 如果线程池中有多个工作队列就是如下所示(下图假设有 这个线程池有三个工作队列),会有顺序分配到三个队列,这三个队列是并发的执行。...原创 2019-06-22 00:17:56 · 10854 阅读 · 8 评论 -
java服务端(一)线程池(2)
多线程中的队列 并发队列 并发队列ConcurrentLinkedQueue(非阻塞队列) 并发与并行:并行是多个Cup,而并发是指资源有限的情况下,两者交替使用资源。交替使用,提高效率。 ConcurrentLinkedQueue是Queue的一个安全实现.Queue中元素按FIFO原则进行排序.采用CAS操作,来保证元素...原创 2019-06-20 00:12:19 · 177 阅读 · 0 评论 -
java服务端(三)NIO实现Netty框架
NIO实现Netty框架 简介:Netty就是有 看门服务员(线程+selector)是迎接客人(接受请求),点菜服务员 (线程+selector)去 处理客人的点菜等等。客人就相当于一个客户端的请求。 各个类的流程 一、主启动类流程:(Start.java) 1、创建线程池管理者: 用于管理 Boss (看门服务员) 和 Worker ...原创 2019-06-02 23:26:38 · 293 阅读 · 0 评论 -
java服务端(3)netty框架基础
netty各种对象:Netty服务器创建流程:创建步骤: 1、创建服务类bootstrap://服务类ServerBootstrap bootstrap = new ServerBootstrap(); 2、两个重要的线程池://boss线程监听端口,worker线程负责数据读写ExecutorService boss = Executors.newCache...原创 2019-06-01 23:59:42 · 528 阅读 · 0 评论 -
Java服务端(二)- Java标准输入输出NIO
基础知识: NIO即New IO,在之前的Java编程中,一般使用流的方式来处理IO,所有的IO都被视作单个字节的移动,通过stream对象一次移动一个字节。流IO负责把对象转换为字节,然后再转换为对象。 NIO与IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块。所以NIO的效率要比IO高。流与块的比较: IO是以流的方式处理数据,...原创 2019-05-31 23:41:16 · 256 阅读 · 0 评论 -
Java服务端(二)- Java网络编程NIO
Java Nio 基础知识点 并发:多线程抢占CPU,可能不同时执行,侧重于多个任务交替执行。(一个CPU) 并行:线程可以不共享CPU,可每个线程一个CPU同时执行多个任务。(多个CPU) 阻塞:相对于数据而言,需要一直等待数据准备好才能进行下一步操作(BIO,accept) 非阻塞:不管数据有没有准备好都可以往下执行下一步逻辑 同步:相对于IO操作而言,在...转载 2019-06-01 19:40:39 · 266 阅读 · 0 评论 -
java服务端(一)线程池
线程池中的四个构造方法:构造方法一:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue) { t...转载 2019-05-12 20:22:41 · 338 阅读 · 0 评论