文档章节

lua 实现动态server集群(一)

t
 tonnis
发布于 2014/11/06 15:44
字数 515
阅读 67
收藏 0

声明:可以随意转载,但是要注明转载来源啊,哈哈

最近由于频繁修改服务端代码,经常是因为增加一点点的功能或者信令增加一个标记位,而不停的升级、编译、提交版本、提交测试、升级支持,弄的心情超级烦躁。从而触发了一个使用脚本动态语言来编写服务想法,想法虽有,但是被采纳的可能不大,试试吧,先分享出来大家看看,Let's go

分析现状:

1、现状当前服务端数量过多,各式各样的服务,甚至有时候一个小功能就一个服务,定制化十分严重。

2、通讯以udp为主,http url ,tcp也有,每个服务均以:收到消息->处理消息->等待消息模式为主

3、代码分散,每个人负责几个服务端,经常出现信令更新不一致现象引起的测试不通过问题。

4、信令每次修改最少要升级2个服务,也就意味着至少要重启2个服务

改善现状提出对脚本语言的要求:

1、兼容当前服务端部分源码(C/C++、boost库),不能让其他同事反感(因为要推广开来)

2、脚本语言性能不能过低,支持多线程,并且要实现模块化,能与基础语言C/C++融合

3、可以信令实现动态解析,实现信令高低版本兼容,处理函数在脚本中实现

4、脚本可以实现热更新,远程更新脚本,远程管理服务

 

考察过很多语言后,lua成为首选,

1、可以与c/c++通讯互相调用

2、可以动态加载实现热更新

3、luarocks可以找到很多第三方库方便扩展

4、在远程管理上已经选择现有的redis,lua也有redis client

先预想拓扑图

© 著作权归作者所有

共有 人打赏支持
t
粉丝 0
博文 2
码字总数 693
作品 0
东城
用Nginx+Lua(OpenResty)开发高性能Web应用

在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡、反向代理、代理缓存、限流等场景;而把Nginx作为一个Web容器使用的还不是那么广泛。Nginx的高性能是大家公认的,而Nginx开...

长征2号
2017/08/30
0
0
使用Nginx+Lua(OpenResty)开发高性能Web应用

使用Nginx+Lua(OpenResty)开发高性能Web应用 博客分类: 跟我学Nginx+Lua开发 架构 ngxluaopenresty 在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡、反向代理、代理缓存、...

fdhay
2016/08/31
45
0
使用Nginx+Lua(OpenResty)开发高性能Web应用

Nginx+Lua(OpenResty)开发高性能Web应用 使用Nginx+Lua(OpenResty)开发高性能Web应用 在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡、反向代理、代理缓存、限流等场景;而...

oldgril
2017/02/27
0
0
使用Nginx+Lua(OpenResty)开发高性能Web应用

一、ngx_lua简介 1 、Nginx 优点 Nginx设计为一个主进程多个工作进程的工作模式,每个进程是单线程来处理多个连接,而且每个工作进程采用了非阻塞I/O来处理多个连接,从而减少了线程上下文切...

DB_Terrill
2016/10/26
129
0
使用OpenResty(Nginx+Lua)开发高性能Web应用

在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡、反向代理、代理缓存、限流等场景;而把Nginx作为一个Web容器使用的还不是那么广泛。Nginx的高性能是大家公认的,而Nginx开...

English0523
2017/11/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Android WebView制作简易浏览器

最终效果 先创建一个WebView控件,其他的就是通过线性布局在上方加入网址输入框和两个按钮 <WebView android:id="@+id/act_webview_wv" android:layout_width="ma...

lanyu96
23分钟前
2
0
解决MacOS升级系统Sierra到Mojave后git报错

错误信息 升级MacOS Sierra到Mac Mojave后执行git命令报错: xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/......

阿dai
23分钟前
1
0
兄弟连区块链教程以太源码分析CMD深入分析(一)

cmd包分析 cmd下面总共有13个子包,除了util包之外,每个子包都有一个主函数,每个主函数的init方法中都定义了该主函数支持的命令,如 geth包下面的: func init() { // Initialize the...

兄弟连区块链入门教程
25分钟前
1
0
Titan Framework MongoDB深入理解1

在TitanFrameWork框架中,已经集成了MongoDB的各个功能,现在我们对框架内部的一些重要类进行分析与解读。 MongoDBConverter 在Titan框架中,比较重要的一个接口就是MongoDBConverter,它是作...

云季科技
30分钟前
1
0
SpringBoot集成Quartz

SpringBoot集成Quartz 什么是Quartz Quartz is a richly featured, open source job scheduling library that can be integrated within virtually any Java application - from the smalle......

Grittan
34分钟前
4
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部