上次去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需要继承。
有疑问加站长微信联系(非本文作者)