10 快乐崇拜234

尚未进行身份认证

开创光辉的程序员之路

等级
TA的排名 3k+

rabbitmq 事务消息

文章目录AMQP 事务消息confirm 事务消息生产者纯异步操作rabbitmq支持两种模式的事务消息:AMQPconfirmAMQP 事务消息代码比较简单,开启事务txSelect,提交txCommit,回滚txRollback。实例:生产者public class Send { private final static String QUEUE_NAME = ...

2020-02-21 16:08:59

rabbitmq消息可靠性之消息应答与持久化

文章目录消息应答ack持久化消息应答ack前面介绍了rabbitmq有两种ack模式自动ack:消息从rabbitmq队列中发送给消费者则从队列内存中删除该消息。此时如果消费者宕机等原因未来得及消费完消息,则该消息丢失。手动ack:消费者在去确定消费完消息以后再ack,rabbitmq服务器收到ack后才会从内存队列中删除消息,如此一来,可以保证消息在消费者和队列这个环节不丢失。注意一点...

2020-02-19 22:06:43

rabbitmq 7种队列实现java版

文章目录搭建maven项目引入依赖创建连接简单队列消息生产者消息消费者搭建maven项目引入依赖<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.8.0</...

2020-02-19 21:02:59

rabbitmq用户及vhost配置

文章目录用户添加用户配置virtual hosts授权用户访问vhost用户上一节我们是通过guest用户登录的,但是实际工作中肯定不能以该账户使用,通常是会设置多个账户供不同的业务方使用。下图中可以看到guest是administrator权限。添加用户我这里作为演示,添加一个admin用户,tags选的是admin(直接点击下面的几个选项即可)。添加完成后:可以看到virt...

2020-02-19 20:12:20

windows10安装rabbitmq

文章目录安装Erlang安装rabbitmq安装Erlang由于rabbitMQ是Erlang语言编写的,所以要先安装Erlang语言环境,与安装java类似。rabbitmq官网安装教程:https://www.rabbitmq.com/install-windows.html。官网已经告诉我们如何安装了。进入erlang下载页面:https://www.erlang.org/down...

2020-02-19 19:32:28

java11:NoClassDefFoundError: javax/activation/MimetypesFileTypeMap

文章目录错误描述解决办法错误描述在 netty4.1实现http文件服务器 一文中我们有使用到javax.activation.MimetypesFileTypeMap。但是java9+对Java实行了模块化处理,有一些模块没有默认加载,所以在使用这些模块时,需要我们主动的引入。错误信息:NoClassDefFoundError: javax/activation/MimetypesFile...

2020-02-16 18:51:44

Netty实现聊天室

文章目录本文内容基于上一篇博客 netty实现WebSocket协议,一些基本使用请参考该博客。本例实现的功能:有新成员加入时,群广播消息,欢迎加入有成员退出时,群广播消息,退出每个成员都可以发送消息,消息广播给群内的每个人完整的服务器代码如下:package com.example;import com.alibaba.fastjson.JSONObject;import...

2020-02-13 16:09:19

netty实现WebSocket协议

文章目录WebSocket协议服务端开发客户端运行测试全双工WebSocket协议一般web应用都是使用的HTTP协议。HTTP协议有以下特点:支持客户端-服务端模式使用简单:只需要知道服务端URL,携带参数发送请求即可支持多种传输数据类型,由消息头中content-type标识无状态,使得HTTP服务轻量级HTTP协议也存在一些缺点:半双工通信:同一时刻,数据只能往同一方向...

2020-02-11 11:48:49

网关基于Netty 在Http 协议的实践

文章目录网关基于Netty 在Http 协议的实践http编解码Head 请求ByteBuf 释放,防止内存泄漏引用计数PoolThreadCache连接池连接复用接入端用Netty完全异步Tomcat 做容器Netty 实现网关基于Netty 在Http 协议的实践我们网关现在完全基于netty 实现http 协议,包含客户端和服务端,http 客户端有很多选择,比如 HttpClient ...

2020-02-10 20:54:23

netty4.1实现http文件服务器

概述netty版本:4.1.45使用netty搭建一个简单的文件服务器,使用HTTP协议对外提供服务。如果文件不存在,返回403响应码。如果是文件夹,以超链接展示,如果是文件,支持下载。服务器编码/** * netty http 文件下载 服务器 */public class MyHttpFileBrowserServer { int port; publi...

2020-02-10 20:30:49

netty实现HTTP服务器

文章目录概述HTTP服务器代码实现验证概述目前主流的Java web服务器还是采用springboot+Tomcat来实现的,底层还是基于servlet开发的。servlet不是异步的,所以性能并不是很理性,无法满足当下的快速服务器的要求。目前spring5已经实现了基于reactor的webflux异步编程(响应式编程),springboot2.X也已经支持webflux,性能会提升很多。...

2020-02-10 15:07:07

Mac升级系统后,idea中Git无法使用:xcrun: error: invalid active developer path

Mac升级了最新的系统,idea右下角提示Git无法使用的错误。完整错误信息:xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun解决办法:首...

2020-02-10 10:34:47

Mac安装protobuf

Mac上安装软件通常使用brew来安装,类似于Linux平台上的yum.本文使用brew安装protobuf两条命令:brew install protobufprotoc --version

2020-02-09 11:53:17

mac 安装 brew(homebrew)

brew是MacOS上的包管理工具。类似RHEL/CentOS上的yum或者Ubuntu上的apt-get一样。确认你的Mac电脑安装了ruby:ruby -vruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19]访问 https://brew.sh/复制网页上的安装命令:等待安装完成,然...

2020-02-09 11:47:35

netty 4.1.45 protobuf 编解码实现

文章目录PB协议简单使用netty使用PB协议进行编解码PB协议简单使用关于PB协议的使用介绍请移步至: protocol buffer 3 (Protobuf3) ( java 版本 ) 使用入门。netty使用PB协议进行编解码...

2020-02-09 10:30:13

netty 4.1.45自定义编解码器

概述前面介绍了使用netty本身提供的LineBasedFrameDecoder、DelimiterBasedFrameDecoder、FixedLengthFrameDecoder三种编解码方案。不过实际工作中直接使用这几种编解码的还是比较少的。比如处于安全、性能、私有网络等。这里介绍简单的自定义编解码器的实现,后续再介绍如何与json,PB协议等进行集成实现复杂的netty协议。自定义编...

2020-02-08 21:41:42

netty 4.1.45 TCP拆包粘包原因及解决办法

文章目录异常情况模拟服务器改造客户端改造运行结果拆包粘包原因分析拆包粘包解决办法LineBasedFrameDecoder 换行符分隔消息服务端修改客户端修改运行结果原理分析DelimiterBasedFrameDecoder 固定分隔符解码器服务端修改客户端修改FixedLengthFrameDecoder 固定长度的分隔符自定义解码器在netty 4.1.45 第一个netty程序中,编写了...

2020-02-08 17:31:33

netty 4.1.45 第一个netty程序

概述本系列文章介绍netty的学习。使用的版本是4.1.45jdk采用Java11本系列文章由浅入深,先学习使用,再研究其实现原理。本节编写一个最简单的netty服务器。maven依赖<dependency> <groupId>io.netty</groupId> <artifactId>netty-all</art...

2020-02-08 15:54:51

6. rocketmq事务消息

什么是事务消息事务消息用于解决分布式系统中的事务问题,不了解分布式事务的请自行Google。通常分布式事务可以使用两阶段,三阶段,TCC,XA,本地事务表等方式来实现强一致性或者最终一致性事务。这里rocketmq的事务消息就是采用的最终一致性解决的分布式事务。分布式事务的两个参与者,一方参与者通过事务消息保证本地事务执行结果与MQ中的消息一致,要么都成功,要么都失败回滚。另一个参与者则...

2020-01-21 17:26:32

5. rocketmq延迟消息队列

什么是延迟消息队列对于消息中间件来说,producer将消息发送到mq的服务器,但并不期望这条消息马上被消费,而是推迟到当前时间点之后的某个时间点后再投递到queue中让consumer进行消费。也可以认为是定时消息。延迟消息的使用场景很多,一种比较常见的场景就是在电商系统中,订单创建后,会有一个等待用户支付的时间窗口,一般为30分钟,30分钟后consumer收到这条订单消息,然后程序去订...

2020-01-21 16:43:11

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。