目录

  1. rabbitmq ubuntu下的配置
  2. go 实现rabbitmq的消息收发

1:背景简介

  我是一个.net一线开发,今年6月份离开帝都来到魔都,后入职于莫江互联网在线教育公司。现刚刚转正,在这短短的三个月的时间,莫江给我的是职业路上颠覆性变化。

   .net技术迷 => nodejs/java/golang

  在此之前,我认为我会在.net平台坚定不移的走下,因为我是如此的喜欢C#语言,认为它是那么优美简介,vs ide号称宇宙神器,coding如此happy,but 当我们每周技术讨论例会上,我才真正的认识到我自己原来就是井底之蛙

2:C#和其他我所接触的语言对比

  网上关于C#和java的大战从未停止,我也经常想起大约6年前我上大学的时候,某些无良的培训机构去我们系招人的时候,大量的贬低C#的时候,我在据理力争。然而时间在变,以我这3月多月接触其他语言的同时,也在反思,c#/.net真的有如此之好吗?

  以下仅代表个人观点,如有不对欢迎来喷。

  C#的优势: 神一般的IDE,大量的语法糖,强类型语言支持var声明,良好的错误输出和debug,天生的windows平台支持,兼容性良好的第三方或微软框架,代码提示、跳转、可阅读...

  劣势:开源框架太少,跨平台费劲,语法冗余,依赖.net framework,执行效率堪忧

3:浅谈java

  java语言本身和C#语言80%类型,学起来很轻松,可真的去写java代码的时候,就会感觉完全从天堂掉进了地狱。

  ide难用,不管是eclipse 还是 IntelliJ IDEA ,太痛苦了

  代码提示功能能用,但不强大,调试功能一般,写属性不习惯,没有C#语法糖,依赖jvm

  这些都不足以让人感觉在地狱行走,最难的是。。。。 使用框架。 由于是自学,没人教,视频、贴吧、blog 跟着别人做依然搞不通,框架太多,兼容性却不怎么好。一度怀疑自己怀疑人生

  可是虽然java的框架我不会配置,但我不会否定,java就是那么牛逼,只是我笨,不会用,如山如海的开源项目,让任何一个.net程序员目瞪口呆。

4:再试nodejs

  nodejs呢也是在我们架构会上才知道的(以前的知识面好浅薄。。。),不看不知道,一看吓一跳啊,没想到JavaScript语言也能做后端了,还可以达到这么高的并发。ok  then  学习之~

  nodejs学习简单(web开发人员都会把~),配置简单(npm),依赖少,框架非常非常多,编写web服务器简单,执行效率不错,高并发处理很好...

  最直观的,搞一个web站点,秒刷有木有,按着F5不放刷刷的有木有。好吧原谅我没见过世面,和asp.net 对比一下,觉得弱爆了有木有,不需要经过asp.net管道,不需要asp.net页面生命周期,不需要mvc控制流程。。。不需要,所有都自己写,想怎么写怎么写

  异步回调,单线程处理,很吊很新颖。缺点也很明显,同步执行困难,代码检错麻烦,调试不友好,单线程,做cpu运算可能会造成异步无法回调...

5:go  go

  学习golang语言是如此的痛苦,类C的语法,不完全的面向对象,每次要检查的错误机制,指针(高级语言里面没有用过),环境配置死麻烦,初学很难理解语法。。。

  我曾发过一句牢骚,写半个小时的golang简直比写一上午的C#都累

  然而并不能打消我的激情,因为它的优势太明显了, 比C语法简单却有堪比C的性能,去除了面向对象复杂的语法和限制,使用指针可以根据自己需要操作内存或引用,优美的协程,不需要锁...

6:再啰嗦

  写了这么多,或许有很多地方是不对的是片面的,我也会慢慢完善自己

  

7;为什么是rabbitmq

  最近准备开发一个消息型项目,预计的是一天的消息量达到百万级别,近实时的到达率,最后确定下来确定为采用rabbitmq做消息中转,确保api到sql层数据并发量控制以及防丢失。 本来说打算用windows server来做,可是呢windows server有个缺陷却无法处理,就是它会假死,而且很难去监控,so 我想能不能这层使用golang 来写服务。 结果技术评审下来,因有较大的风险,暂时不采用,可以做一个辅助进程来跑。 我也希望我手里的现有项目能使用go来处理,比如apppush

  这些项目都是用的rabbitmq做消息分发,之前的分发客户端是用C#写的,那个人已经离职,所以我决定用go写一个

8:时间

  因没有用过rabbitmq,也不知道会有什么的结果,花多少精力。因非工作内容,也不会占用工作的时间,so 完成时间也是不确定的。博客园我应该是一周回更新一次或两次进度,仅做为此次行程的记录

9:目标

  我希望我写完的项目,能提供一套完整的稳定的rabbitmq 调度系统的 golang驱动

begin!~~~~~

golang rabbitmq实践(啰嗦)的更多相关文章

  1. golang rabbitmq实践 (二 实现简单的消息收发)

    1:驱动 本来打算自己写一个驱动的,后来发现github上面已经有了,那我就直接拿现成的了, 驱动采用 github.com/streadway/amqp ,直接import就可以啦! 2:excha ...

  2. golang rabbitmq实践 (一 rabbitmq配置)

    1:环境选择 系统为ubuntu 15.04 ,我装在虚拟机里面的 2:rabbitmq tabbitmq 3.5.4  download url : http://www.rabbitmq.com/ ...

  3. Golang Gin实践 番外 请入门 Makefile

    Golang Gin实践 番外 请入门 Makefile 原文地址:Golang Gin实践 番外 请入门 Makefile 前言 含一定复杂度的软件工程,基本上都是先编译 A,再依赖 B,再编译 C ...

  4. Golang 高效实践之并发实践

    前言 在我前面一篇文章Golang受欢迎的原因中已经提到,Golang是在语言层面(runtime)就支持了并发模型.那么作为编程人员,我们在实践Golang的并发编程时,又有什么需要注意的点呢?下面 ...

  5. Golang 高效实践之并发实践context篇

    前言 在上篇Golang高效实践之并发实践channel篇中我给大家介绍了Golang并发模型,详细的介绍了channel的用法,和用select管理channel.比如说我们可以用channel来控 ...

  6. Golang高效实践之泛谈篇

    前言 我博客之前的Golang高效实践系列博客中已经系统的介绍了Golang的一些高效实践建议,例如: <Golang高效实践之interface.reflection.json实践>&l ...

  7. 知乎社区核心业务 Golang 化实践 - 知乎 https://zhuanlan.zhihu.com/p/48039838

    知乎社区核心业务 Golang 化实践 - 知乎 https://zhuanlan.zhihu.com/p/48039838

  8. 【GoLang】golang 最佳实践汇总

    最佳实践 1 包管理 1.1 使用包管理对Golang项目进行管理,如:godep/vendor等工具 1.2 main/init函数使用,init函数参考python 1.2.1 main-> ...

  9. Golang 高效实践之defer、panic、recover实践

    前言 我们知道Golang处理异常是用error返回的方式,然后调用方根据error的值走不同的处理逻辑.但是,如果程序触发其他的严重异常,比如说数组越界,程序就要直接崩溃.Golang有没有一种异常 ...

随机推荐

  1. 微信小程序开发(二)----- 云开发

    1.概念 微信小程序的云开发是腾讯云与微信团队深度合作推出的一个全新的小程序的解决方案,它提供了云函数.云数据库与云存储这三大基础能力支持,随着云开发的出现,小程序的开发者可以将服务端的部署和运营的环 ...

  2. 9.Jmeter 多个threadgroup 中的配置元件会一次性进行初始化

    例如3个threadGroup,每一个threadGroup中都会定义了 一些配置原件,例如 用户定义变量,  jdbc 链接配置等.  当执行testplan(测试计划)时, 这些配置元件会一起初始 ...

  3. JMS(Java消息服务)入门教程(一)

    什么是Java消息服务 Java消息服务指的是两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用接口,包括创建.发送.读取消息等,用于支持JAVA应用程序开发.在J2EE中 ...

  4. tomcat的相关

    [针对tomcat修改,那么就直接找关于tomcat的相关文件目录进行修改即可] 1.对tomcat进行相关的操作,启动tomcat时,让其不要出现tomcat主页,与之相反的让其出现404的界面! ...

  5. 面试宝典:25个最经典的JavaScript面试题及答案

    1.使用 typeof bar === "object" 来确定 bar 是否是对象的潜在陷阱是什么?如何避免这个陷阱? 尽管 typeof bar === "objec ...

  6. 手写数字识别 卷积神经网络 Pytorch框架实现

    MNIST 手写数字识别 卷积神经网络 Pytorch框架 谨此纪念刚入门的我在卷积神经网络上面的摸爬滚打 说明 下面代码是使用pytorch来实现的LeNet,可以正常运行测试,自己添加了一些注释, ...

  7. 遍历dataframe

    import pandas as pd import os if __name__ == '__main__': Folder_Path = 'c:\checklog' os.chdir(Folder ...

  8. Luogu P4602 [CTSC2018]混合果汁

    题目 把果汁按美味度降序排序,以单价为下标插入主席树,记录每个节点的\(sum\)果汁升数和\(val\)果汁总价. 每次询问二分最小美味度,查询美味度大于等于\(mid\)的总体积为\(L\)的最低 ...

  9. 读取CSV文件存入map中(C++)

    自己平时操作文件用的不多,今天小伙伴让帮忙写一下这个,顺便记一下.实现功能:从"翻译.csv"文件中读取出字符串,以","作为分隔符,将每一行对应存入map中. ...

  10. PythonDay16

    第十六章模块 今日内容 自定义模块 time模块 datetime模块 rendom模块 自定义模块 # import 模块 例:import time# 导入的是time模块中所有的内容(变量,函数 ...