云计算的潮流势不可挡,今年产品开始从原先Unix小型机迅速朝着Linux的PCServer多机转变,很多问题难以解决。
看到erlang的介绍,说的跟神一样,但我相信,这个语言目前还这么小众,就说明它的能力还是有很大局限性的,但是冲着爱立信的交换机都能使用它,我的项目应用场景跟这类似,所以很有兴趣学习下。
我关心的内容有:
1)如何做到负载均衡
正常实现有两种,第一:有个负载均衡器,负责按指定的策略把请求发送到应用服务器群;
第二:建一个分布式的消息队列,应用服务器群自己有空闲了上来取任务;
2)如何做到机器故障时的快速切换
关键点有二,一是如何让别的机器不再调用故障机器的服务,二是数据和事务不能丢,因主机故障没处理完的事务,其他机器要帮忙继续做。
3)如何做到数据的多机分布,保证单机故障不丢数据,而且读取的速度要快,保证应用有好的性能
4)如何方便的把主机群分成几个小群落
5)如何管理监控主机群的运行状况
初步疑问:
1)进程概念在实际编程中要怎么应用? 如果快速的建立和销毁进程,是否会导致内存占用偏大。
2)http://erlang.chaoskey.com/10/02 这上面举了一个例子,让我知道erlang可以方便的进行远程调用,但是调用对象是写死某台主机某个函数,如何做到调用时不用知道是哪台机器提供呢?
3)单机多线程,代码中已经到处是锁了,erlang如何有效提升并发,减少锁带来的负面影响