erlang应用
来源:互联网 发布:知止而定 编辑:程序博客网 时间:2024/05/22 06:09
考虑到现有的项目使用erlang重写的复杂性和erlang对于某些数据库支持的弱点,想结合erlang的分布式、代码热加载、处理高并发方面的优势,和C++在性能上以及大量现有项目上的优势,实现集群部署。
考察了erlang和C进行交互的几种方式,ports受限于物理服务器分布,port_driver没测试成功,应该也是受限于本机,最后选定C nodes方式。
测试了c server和c client两种方式,感觉如果是server方式,还得用C写一套处理高并发的网络模块,也不方便升级,erlang的优势完全没发挥上,所以选定client方式。
大致的想法是这样的:
* erlang监听一个本地端口和一个对外的端口,本地的用于和c node通讯,对外的通过协议和客户交互。
* c node连接到本地端口后,就在erlang里面注册一个名字,这时候对外的端口上收到的数据就根据这个名字发给c node。
* c node上接收到数据以后就放队列,给线程池去消化,线程池处理完以后就通过端口发回给erlang节点。
* erlang上面当然是由process“阻塞”处理,它收到结果以后,就发回给客户端,这个阻塞当然是假的,也正是利用erlang编程的便利。
* c node升级,只需要另开一个程序,注册另一个名字,比如名字加上版本号,连到erlang节点,再使用热加载把erlang代码更新,就可以在不停机的情况下更新服务器。更新完了再停掉旧版本的c node。
* 增加协议格式等操作都交给erlang了,C node保持不变。
我是不赞成把网络部分和逻辑部分做在一起的,逻辑部分也不必和网络模型绑定,网络部分是提供服务的接口。逻辑部分只需要处理一个一个的“请求”,协议和通讯方式都可以由erlang进程定制。
- erlang应用
- erlang应用发布
- [Erlang]Mnesia分布式应用
- Erlang OTP应用组织形式
- erlang应用行为模式
- erlang mnesia 分布式应用
- [Erlang危机](1.3)OTP应用
- 使用target_system进行erlang应用的发行
- erlang 应用 调试与排错 记录
- Erlang gen_server和ets简单应用
- Erlang gen_tcp和gen_server结合应用
- Erlang应用系统内部状态监控
- erlang 应用层性能优化笔记
- erlang简易分布式应用-----银行存储查询。
- Erlang
- Erlang
- Erlang
- erlang
- mac下使本地swf文件受信任(可访问网络)
- OpenSSL VC 环境单步调试
- 供应商层和地点层的付款方法
- Erlang简介
- 根据htmlparser写的一个提取页面纯文本的C#程序
- erlang应用
- 大话数据库编程规范
- erlang分布式节点通讯方式
- 轻量级线程和erlang
- mac下实现游戏多开
- TELNET FTP 访问网页
- 使用树形控件显示VB.NET层级数据
- .net简单邮件发送总结
- 包括了UISegmentedControl的所有属性和方法