golang怎么实现横向扩展

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang怎么实现横向扩展相关的知识,希望对你有一定的参考价值。

参考技术A Golang进行服务器开发, 最显耀的就是其并发架构, 能充分榨干每一个CPU. 但是Golang和Erlang不一样, Golang使用了CSP的模型, 而Erlang采用的是Actor模型. 两者区别仅仅只是消息队列归属范围区别而已. 但带来的巨大的框架实现及使用差异让Golang和Erlang阵营里的童鞋们撕逼很久.

其实可以这么理解. Erlang基于Actor模型的并发架构真正是一个框架, 让每一个人用同样的方法处理事情. 而不用更多的担心横向扩展的问题. Golang的CSP并发架构没有很多框框条条. 让开发者自由发挥,设计自己想要的结构. 但碰到需要横向扩展时, 还是需要考验架构人的经验和实力.

所以说, CSP和Actor其实着眼点不一样. 所以还是不能同日而语. 但项目还得做, 问题还得解决. 不能为每一个项目重复设计, 编写重复的代码来应对各种横向扩展的问题. 烦了, 火了, 所以就准备造一个用Golang实现Actor的轮子.

调研了一段时间, 使用Golang做Actor模型的实现并不多. 而且大多是实验性项目, 并没有真正像Skynet一样, 在项目中使用同时做开源的.

说到Skynet, 这是一个极好的开源轻量级游戏服务器框架. 使用lua的coroutine模拟goroutine, 同步+多线程逻辑, 用C底层帮你处理了复杂的Actor模型. 留给上层只是发发消息, 管理下id, 很是惬意. 再加上lua天生动态语言, 模拟Erlang的动态更新更不是啥大问题. 因此在服务器界, Skynet变的有名了起来.

既然要做轮子, 我果断选择不关门. 讨论群都开了, 博客一直更新, github也有, 为啥不搞开源轮子呢? 因此这次的服务器框架计划定位于开源. 目的是为Golang贡献一款轻量级的游戏服务器框架, 由大家支持, 供大众使用.

tab导航栏横向滚动条-tabScroll

参考技术A 在vue中使用css实现的tab横向滚动条,效果如图:

以上是关于golang怎么实现横向扩展的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server横向扩展:设计,实现与维护- 分布式分区视图

HPC/影视/备份的用户为什么要选择CS横向扩展NAS

架构实践微服务架构全解析:Scale Cube 横向扩展,垂直扩展,纵向扩展

天蓝色功能横向扩展

横向扩展与纵向扩展

如何在自定义 iOS 应用扩展中关闭横向?