C#内存映射文件消息队列实战演练(MMF—MQ)
一、课程介绍
本次分享课程属于《C#高级编程实战技能开发宝典课程系列》中的一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集、整理和完善此系列课程!
消息队列这个概念名称相比大家都不陌生!今天阿笨这里说的MQ并不是内存队列(Queue)和第三方MQ中间件(RabbitmQ、ActiveMQ等等),也不是第三方缓存组件( Memcached ,Redis ),这里的说的是内存映射文件消息队列(Memory-Mapped File MQ)。
阿笨总结一下我们实际项目中一般运用到队列(MQ)解决实际的场景问题如下:
1)、异步处理 ,解决简单的并发处理问题。
2)、 应用解耦,解决不同系统之间的数据交互问题。
1.1、本次分享课学完后我们要达到学习的目标和成果?
基于内存映射文件的特点,我们需要设计和实现了一个简单的消息队列,它消息可以持久化,并且可以实现跨程序的生产者/消费者通信,阿笨将带领大家学习这个消息队列的功能、用法、设计和实现代码。
1.2、一句话总结今天我们要解决的问题?
如何基于内存映射文件实现支持生产消费者模式、跨进程访问的持久化消息队列。
如果您同样对本次分享《C#内存映射文件消息队列实战演练(MMF MQ)》课程感兴趣的话,那么请跟着阿笨一起学习吧。
废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。
二、概念名称含义解释
2.1、什么是虚拟内存盘?
2.2、什么是内存映射文件?
2.3、内存映射文件的特点?
2.4、内存映射文件应用场景?
2.5、什么是内存消息队列(Memory- MQ)?
2.6、什么是内存映射文件消息队列(Memory-Mapped File—MQ)?
2.7、C# MemoryMappedFile是什么?
三、C#内存映射文件消息队列实战演练
3.1、MMF 文件(File)写入/读取实战演练
3.2、MMF 消息队列(MQ)写入/读取实战演练

四、总结
希望学完本次分享课程后有所收获,真真做到学以致用并灵活的运用到实际项目当中去解决我们的业务问题。同时我们也要注意具体场景用什么技术,也千万不要一个技术吃遍所有的场景!
一切只讲理论知识不结合实战项目演练的技术分享课程都是耍流氓!
最后还是送大家一句话:师父领进门修行在个人,希望大家在学习的道路上一直坚持下去!
C#内存映射文件消息队列实战演练(MMF—MQ)的更多相关文章
- Java编程的逻辑 (61) - 内存映射文件及其应用 - 实现一个简单的消息队列
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...
- C# .Net 多进程同步 通信 共享内存 内存映射文件 Memory Mapped 转 VC中进程与进程之间共享内存 .net环境下跨进程、高频率读写数据 使用C#开发Android应用之WebApp 分布式事务之消息补偿解决方案
C# .Net 多进程同步 通信 共享内存 内存映射文件 Memory Mapped 转 节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing). ...
- 使用内存映射文件MMF实现大数据量导出时的内存优化
前言 导出功能几乎是所有应用系统必不可少功能,今天我们来谈一谈,如何使用内存映射文件MMF进行内存优化,本文重点介绍使用方法,相关原理可以参考文末的连接 实现 我们以单次导出一个excel举例(csv ...
- C# .Net 多进程同步 通信 共享内存 内存映射文件 Memory Mapped 转
原文:C# .Net 多进程同步 通信 共享内存 内存映射文件 Memory Mapped 转 节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing ...
- C# .Net 多进程同步 通信 共享内存 内存映射文件 Memory Mapped
节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing). 内存映射文件对于托管世界的开发人员来说似乎很陌生,但它确实已经是很远古的技术了,而且在操作 ...
- 内存映射文件(Memory-Mapped File)
Java Memory-Mapped File所使用的内存分配在物理内存而不是JVM堆内存,且分配在OS内核. 1: 内存映射文件及其应用 - 实现一个简单的消息队列 / 计算机程序的思维逻辑 在一般 ...
- 内存映射文件MemoryMappedFile使用
参考资料: http://blog.csdn.net/bitfan/article/details/4438458 所谓内存映射文件,其实就是在内存中开辟出一块存放数据的专用区域,这区域往往与硬盘上特 ...
- 第17章 内存映射文件(3)_稀疏文件(Sparse File)
17.8 稀疏调拨的内存映射文件 17.8.1 稀疏文件简介 (1)稀疏文件(Sparse File):指的是文件中出现大量的0数据,这些数据对我们用处不大,但是却一样的占用空间.NTFS文件系统对此 ...
- MemoryMappedFile 内存映射文件 msdn
http://msdn.microsoft.com/zh-cn/library/dd997372%28v=vs.110%29.aspx 内存映射文件 .NET Framework 4.5 其他版本 1 ...
随机推荐
- MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
Java面试通关手册(Java学习指南,欢迎Star,会一直完善下去,欢迎建议和指导):https://github.com/Snailclimb/Java_Guide 一 MyISAM 1.1 My ...
- networkManger介绍
http://www.linuxidc.com/Linux/2013-08/88809.htm
- USB-HID鼠标、键盘通讯格式【转】
转自:https://blog.csdn.net/techhome803/article/details/9928873 转自:http://www.amobbs.com/forum.php?mod= ...
- nc用法【转】
linux nc命令使用详解 功能说明:功能强大的网络工具 语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o& ...
- Unity 网格 绘制
网格绘制主要用是对Mesh进行操作,通过对vertex和triangles进行操作生成对应的面片: 这里首先得用到一个类:Triangulator(根据vertex生成triangles数组) usi ...
- 解决urbuntu桌面本客户端输入ll command not found
用桌面版的urbuntu系统,打开客户端输入ll,报错如下 于是度娘,解决方案:可以作如下修改:打开 ~/.bashrc 找到 #alias ll=’ls -l’,去掉前面的#就可以了.(关闭原来的终 ...
- 通过anaconda进行python多版本控制
---恢复内容开始--- linux与windows通用. 1. 假设电脑上已经转好anaconda3. (anaconda 默认装好了python3.jupyter.spyter) 2. 现在需求是 ...
- elasticsearch6.3.2之x-pack6.3.2破解安装并配合kibana使用
原文链接:https://www.plaza4me.com/article/20180825223826278 由于在elasticsearch在6.3版本之后x-pack是默认安装好的,所以不再需要 ...
- Sqlserver在现有数据库中插入数据
需求:1.客户提供的excel表和数据库中的表结构总是有一些差距,id的生成,各种字段的关联等等 2. 如何在Excel中生成Guid. 1.在Excel的宏中执行以下代码: Private Decl ...
- kafka 查看队列信息
https://blog.csdn.net/getyouwant/article/details/81209286?utm_source=blogxgwz8