Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

@en 能说下gonet2在mac 环境下配置开发么 #2

Open
daotianya opened this issue May 18, 2017 · 9 comments
Open

@en 能说下gonet2在mac 环境下配置开发么 #2

daotianya opened this issue May 18, 2017 · 9 comments

Comments

@daotianya
Copy link

daotianya commented May 18, 2017

因为之前没有处理过 docker 的缘故,看作者使用的方式是 docker+mac开发方式,要想在本地 mac+docker 跑起来还是很费劲的事情,求@en 指导

1:根据作者的https://github.com/gonet2/doc/blob/master/INSTALL.md安转指南,
$curl -s https://raw.githubusercontent.com/gonet2/tools/master/clone_all.sh | sh
这里应该是同步到本地代码吧?理解为 goget 一样的功能可否?

2:Docker启动服务,如果我采用gogland 编译器!本地怎么调试呢?
或者是开发方式不是这样的?

3:各个模块在 gonet2的用途,都是必须安装的么?我如果安装高级版本是否影响框架?

StatsD + Graphite + Grafana 2 + Kamon Dashboards 监控系统
http://skaka.me/blog/2015/07/21/kamon-statsd-graphite-grafana-introduction这个博主介绍了他的用处
不明白为什么是 JVM 项目可视化,怎么做到 golang 项目的执行可视化?
共享和服务发现
etcd-browser 管理
etcd

mongo
数据库
根据博主写的地址,我 mac 里面有一个 mongo 但是我还是要基于 docker 安装

这两个是处理日志的系统
ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
https://my.oschina.net/itblog/blog/547250
stdout汇聚
http://dockone.io/article/373
https://yq.aliyun.com/articles/30344 基于Logspout+ELK实现docker日志自动化

@en
Copy link
Owner

en commented May 20, 2017

我写的安装教程可能已经失效,回滚教程里gonet2组件代码到9个月前应该就不会有问题
没有在mac上使用过gonet2, mac上只做了客户端的部分工作,不过应该差不多
我自己在gonet2基础上做游戏时第三方服务是跑在docker里的, 其他所有游戏组件都是像教程里go install编译安装然后再运行调试的

  1. clone_all.sh可能还是需要的, 我写的教程里的git clone ...那几步和clone_all.sh类似,因为GOPATH的问题
    参考https://github.com/gonet2/agent/issues/2, 这个按gonet2作者的习惯来吧
  2. 没用过gogland。。我是靠日志和print调试的
  3. 按照9个月前的架构,这些组件都是需要的,不然可能会启动失败,写布署步骤时应该是最小环境了

@en
Copy link
Owner

en commented May 20, 2017

statsd可以参考https://github.com/gonet2/agent/blob/76de3abaaeaf1f8b0da50c36604dbe66be30eb4b/src/agent/proxy.go#L101
形成数据收集后再做可视化,这个要看自己的需求,例子里主要是监控request的处理时间

@daotianya
Copy link
Author

嗯嗯,感谢,我正在mac 下架构,回头会补充一个 iss 到这里,哈哈

@daotianya
Copy link
Author

daotianya commented May 20, 2017

还有个问题哈,刚开始学习和研究这个框架,我很难理解傅大说的几个问题,求指教
1:框架完整度怎么样
2:en 你之前的游戏类型是?作者也没用讨论游戏类型,我看他这个最大的亮点应该是全球同服!目前对战类游戏用这个架构我估计还是 OK 的,
3:前端用两个部署在不同物理服务器上的agent服务接入,无状态,客户端随机访问任意一台agent接入,比如使用DNS round-robin方式连接,这部分也需要自己慢慢改?还是说已经有了的呢?登录健全部分在架构的那一块?

@en
Copy link
Owner

en commented May 20, 2017

  1. 是完整能用的,但太基础,每个游戏区别又太大,做起来就得魔改
  2. 休闲横版多人过关
  3. DNS round-robin让运维同学设置。我们用的是云平台的负载均衡拖3台4C4Gagent, 跑测试能到10万同时连接并密集请求。登录鉴权在agent

@daotianya
Copy link
Author

daotianya commented May 23, 2017

嗯嗯,再请教个问题
客户端这边的协议是你自己实现的吧?
对应gonet2这边有没有什么修改?
我想跑起来你这个的时候

System.Net.Sockets.SocketException: Connection refused
at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP, Boolean requireSocketPolicy) [0x00000] in :0
at System.Net.Sockets.Socket+Worker.Connect () [0x00000] in :0
UnityEngine.Debug:Log(Object)
NetCore:ConnectCallback(IAsyncResult) (at Assets/Scripts/NetLib/NetCore.cs:180)
System.Net.Sockets.Worker:Connect()

是否是因为需要生产协议?

$cd /github.com/gonet2/tools/proto_scripts
$./gen_proto.sh

@en
Copy link
Owner

en commented May 24, 2017

看错误是连不上服务器端口
得根据你的环境修改这个ip和port
https://github.com/en/libunity/blob/master/Sample/Main.cs#L10
协议是在gonet2的tools/proto_scripts/*.txt描述的,如果没改就不需要重新生成
如果改动了,就执行./gen_proto.sh, 把生成的两个cs文件拷贝过来覆盖掉

@daotianya
Copy link
Author

有邮箱么 en

@en
Copy link
Owner

en commented May 26, 2017

我在用户信息页加了邮箱,可以用这个

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants