在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
RabbitMQ学习系列三:.net 环境下 C#代码订阅 RabbitMQ 消息并处理http://www.80iter.com/blog/1438251320680361http://www.80iter.com/blog/1414401059921214上一篇已经讲了Rabbitmq如何在Windows平台安装 不懂请移步: RabbitMQ学习系列二:.net 环境下 C#代码使用 RabbitMQ 消息队列 一、理论 1、编写方式 2、安装方式 3、部署 4、调试 安装:%systemroot%\microsoft.net\framework\v2.0.50727\installUtil.exe D:\Debug\WindowsService1.exe 卸载:sc delete服务名 net start 服务名 net stop 服务名 sc start 服务名 sc stop 服务名 部署windows服务--制作安装包 1、建立一个新的windows服务项目Server1 2、打开Service1代码视图,找到OnStart部分,加入代码 3、切换到设计视图,右键-添加安装程序 4、切换到新生成的ProjectInstaller.cs设计视图,找到serviceProcessInstaller1对Account属性设置为LocalSystem,对serviceInstaller1的ServiceName属性设置为Server1(服务的名字),StartType属性设置为Automatic(系统启动的时候自动启动服务) 1、 Topshelf下载地址https://github.com/Topshelf/Topshelf/downloads 2、 官网http://topshelf-project.com/ 3、 文档http://docs.topshelf-project.com/en/latest/ 4、 install: ConsoleApplication1.exe install 5、 start: ConsoleApplication1.exe start ,执行后服务被启动 6、 stop: ConsoleApplication1.exe stop ,执行后服务被停止 7、 uninstall: ConsoleApplication1.exe uninstall,执行后服务被卸载 8、 很方便的安装卸载服务,同时我们本地调试也很简单,直接运行控制台即可 9、 下面我们再尝试一个方法,使用同一个ConsoleApplication1.exe创建若干个服务 10、 参数-instance执行安装 ConsoleApplication1.exe -instance " test1" install 11、同理再创建一个实例 ConsoleApplication1.exe -instance " test2" install 你会发现你的系统服务里增加了两个相同服务的不同实例 ,若要卸载直接将安装时的命令install 换位uninstall即可卸载 二、项目搭建 1、此处省略topshelf服务搭建步骤 2、服务项目结构 3、结构简要说明 NoticeProcess.cs 获取消息体后处理类 BusBuilder.cs 消息服务器连接器 Installer.cs 消息服务安装实现类 ServiceMain.cs 消息服务执行类 VaultService.cs C#订阅消息服务后的处理类,进行routingkey的约束等 Program.cs 程序启动类 三、测试发布和订阅 2、C#订阅服务启动测试 3、C#服务调试获取消息 可以看到这里启动后,获取到了1步骤当中的消息routingkey 4、c#处理代码 如果队列有其他的pcm.notice.xxxxx消息,同样会被c#服务获取到,都是基于pcm.notice.#这样的#完全匹配原则。 这样基本简单的c#订阅Rabbitmq消息,获取信息就完成了。 问题整理: 如果C#读取的Rabbitmq中message消息实体和你c#程序中的不一样,会报错如下: EasyNetQ.EasyNetQInvalidMessageTypeExcepion:Message type is incorrect.Expected 'RabbitMQ_Message:RabbitMQ',but was '' |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论