管理www.abg816.com13036075017

rvxefxsd · · 383 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

上次去ECUG听了一次讲座,了解到这世界上还有一门go语言。最近抽时间学了一下,很优秀的一门语言。 公司有一个框架,是用c++实现了协程的调度。用它实现“服务节点”非常方便。今天终于把框架里面节点之间是如何 通信的部分搞懂了。调度的部分还不是特别清楚,正好go实现了调度这部分的功能。所以,计划用go实现一个通用的框架, 来更快速的开发服务。 先把基本思路写在这里。 go中的协程是用chan(管道)通信的,所以可以借鉴actor模式。 1:每个协程有一个GID,用户可以找到这个协议。 2:每个协程包含一个chan,其它协程可以通过GID向他发消息,chan里面存放的是消息。 3:消息包括,消息发送者,消息接受者,消息数据。 4: 需要有2个映射。 GID--->协程 peer--->GID peer指的是,和服务建立的每一个连接。 5:控制消息。(控制协程的退出,错误消息,等等) 6:消息的方式还是采用消息工厂,这是我很喜欢的一种模式。用消息工厂,反射的去生成消息。 7:如果协议中没有诸如发送者,接受者之类的信息,还是得提供transltor的形式。 目标是实现这一一种方式,对于s/c模型,用户只用实现若干个,Prosscor(Message*)函数。其它部分用脚本自动生成代码。 ================================= 采取边学习,边写的方法 目前碰到的问题,以及要完成的任务 1:如何将类型装换成类型名字。如何通过类型名字new一个对象 2:xcode协议格式。 3:go中实现继承有哪几种方式。Message需要继承。

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

383 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传