【开源】分布式可编程的云平台,可大规模开展Web服务开发,期待专家点评
. 百万商业圈分布式云平台功能及使用说明
. -------------------需要代码的请留下邮件地址
平台功能概述:
简单的说就是将N台电脑,有序分层(逻辑层次划分)组织起来,形成一个有机体(计算集群),去完成一台电脑很难完成的任务。
说的更通俗一点这个云平台就是将数十万台电脑变成一台电脑那样来使用
简而言之百万商业圈云平台就是提供了:
1、远程文件分发服务
2、远程文件分发服务开发接口
3、创建远程非透明代理服务
4、提供创建远程对象开发接口
5、Web服(用Microsoft Web Application Stress Tool 进行压力测试,每分钟有效并发超过10万)
6、定时获取节点、集群性能指数服务
7、提供获取节点、集群性能指数服务开发调用接口
8、提供创建远程最优节点对象的开发接口,提供创建远程指定IP节点机的对象的开发接口
9、提供并行创建远程以某IP为根IP的某组集群的对象的开发接口
名词解释:
远程非透明代理服务服务提供:创建最优代理,创建某节点群的代理群,注册代理服务等
非透明代理服务:创建并提供一个远程对象,让你可以通过代理对象创建并调用远程节点机真实对象的任何属性方法
如:
(1)创建以192.168.2.201 为起始的节点群中的最优代理对象
testdemo.Class1 c1 = (testdemo.Class1)rf.CreateTheBestRemoteObject(typeof(testdemo.Class1),"192.168.2.201");
(2)创建指定IP 为192.168.2.201 节点机的代理对象
testdemo.Class1 c1 = (testdemo.Class1)rf.CreateSpecifyIpRemoteObject(typeof(testdemo.Class1),"192.168.2.201");
Console.WriteLine(s4.sum(1,2));//看看输出结果你就知道效果了
(3)创建以192.168.2.115 为起始的节点群中的代理对象群
object[] objs = rf.CreateAllRemoteObjects(typeof(testdemo.Class1),"192.168.2.115");
图表1集群中小型应用架构模型
图表2大规模实际应用架构模型
图表3集群实际测试架构模型
平台功能概述:
简单的说就是将N台电脑,有序分层(逻辑层次划分)组织起来,形成一个有机体(计算集群),去完成一台电脑很难完成的任务。
说的更通俗一点这个云平台就是将数十万台电脑变成一台电脑那样来使用!
平台组成部分:
1、.NETFrameWork3.5
2、平台云集群服务器系统
3、平台云集群应用开发包
4、平台云集群应用开发范例源代码
平台组成部分功能详述:
1、.NETFrameWork3.5
安装在哪里?答:安装在集群节点机上,每台机器都要装
如何安装呢?答:下载Framework3.5Setup.rar 解压后运行:dotNetFx35setup.exe 按提示下一步下一步即可
还有其他配置或设置吗?答:没有。
备注:没有Framework3.5Setup.rar 也可以直接安装VS2008(Microsoft Visual Studio 2008)。
2、平台云集群服务器系统
安装在哪里?答:安装在集群节点机上,每台机器都要装
如何安装呢?答:下载DistributedPlatForm.rar解压后运行:install.bat 提示安装完成,回车即可。
还有其他配置或设置吗?答:有,需要对配置文件进行设置。
先安装还是先配置?答:配置好之后再安装集群服务。
集群服务器系统配置文件(Bwsyq.Distributed.Cluster.exe.config)的使用及说明:
<!-- 分布式集群配置AliasName:节点或子节点名称RootNodeIp:本节点IP UpperNodeIp:上层节点IP HeartRate:心跳频率(秒) WebServerPort:Web服务端口号-->
<WebSystem.Framework.Distributed AliasName="1"RootNodeIp="192.168.2.201" UpperNodeIp="192.168.2.201"HeartRate="1" WebServerPort="8080">
<!-- 子节点信息 可配置多个节点(理论上无限制),考虑到并行处理建议每个节点配置10个子节点,四层配置可达10000台机器-->
<NodeInfo AliasName="02" IP="192.168.2.209"WebServerPort="8080"/>
<!—没有下层节点需要写 “<NodeInfo …> ”这一行吗?答:不需要写-->
<!—有多个下层节点需要怎么写 “<NodeInfo …> ”这一行呢?答:一个节点一行-->
</WebSystem.Framework.Distributed>
名词解释:
AliasName节点或子节点名称 命名规则要求:无 命名原则:上层节点名+XX(00~99) 如:根结点用1第二层节点用1XX 比如:101第三层10101以此类推
AliasName最好不要重复,重复了也不影响
RootNodeIp须是根节点的地址(不能使用127.0.0.1)。
UpperNodeIp是你的上层节点的地址(不能使用127.0.0.1)。
HeartRate 心跳频率,建议设置为1,单位:秒(越小表示频率越高,负载均衡算法越准确) 会影响机器性能吗?答:微乎其微。
WebServerPort:Web服务端口号对外的可以采用80如果只是集群内部使用就无所谓了,取值范围(1~65535)
备注:集群配置的时候在填写IP地址时要注意尽量避免使用127.0.0.1,请使用该节点的真实IP地址,否则会带来不可预知的错误。
3、平台云集群应用开发包
用什么工具进行开发?答:Microsoft Visual Studio 2008/ MicrosoftVisual Studio 2010
安装在哪里?答:开发人员的电脑上
需要安装到集群节点机上吗?答:不需要。
如何使用呢?答:下载DistributedPlatFormSDK.rar 解压即可,无需安装,在开发的时候进行全部引用即可。
有SDK接口函数说明吗?答:有。
用来开发什么程序?答:三种程序,
注:无论开发哪种程序,请先引用SDK中的所有DLL类库
一、开发集群应用业务逻辑程序,也叫商业逻辑(BussinessObject),简称BO,编译成dll类库形式,如:
public class Class1 : WebSystem.Framework.Bo.BaseBo
{
public string sum(int a, int b)
{
//这里输出结果的时候做个小实验,在结果中增加一个IP地址,看看真正运行的到底是哪个节点机
return (a + b).ToString()+ " 实际运行的节点是:"+ Api.LocalIps()[0].ToString();
}
}
假设编译成:testdemo.dll
有特殊要求吗?答:有,所有需要在客户端被调用的类都必须继承WebSystem.Framework.Bo.BaseBo 这个类,不继承发布到集群后,在其它客户端程序将无法调用。
二、用来开发对集群进行管理的程序
(1)、将开发好的BO类库分发到集群中去,只需要2行代码:
RemoteFactory rf = newRemoteFactory();
//192.168.2.201是假设的根节点IP,应根据实际情况修改
rf.DistributionFile(@"d:\testdemo.dll", "192.168.2.201");
这样就能将testdemo.dll发布到集群中所有电脑上吗?答:是的,就这么简单。
(2)、查看集群中所有电脑的性能指标及运行状况,只需要8行代码
//192.168.2.201是假设的根/子节点IP,应根据实际情况修改
NodesPerFormanceList npfs = rf.GetPerFormanceList("192.168.2.201");
Console.Write("节点群中共有节点:"+ npfs.Count);
foreach (NodesPerFormance npf in npfs)
{
if (npf.Index == 0)
Console.Write("节点机"+ npf.Ip + "有故障!");
}
npfs.Sort();
Console.Write("节点群中性能最优节点机IP是:"+ npfs[0].Ip);
这样就能得到节点群的运行情况吗?答:是的,就这么简单。
备注:GetPerFormanceList填写的如果是根节点IP将获取整个集群的运行情况,如果是某个子节点IP获取的将只是节点群的运行情况
[解决办法]
支持一下
慢慢看
[解决办法]
我想起来了 上次那个什么ERP也是你发布的?
觉得夸张了点
对于 “云”的定义 我觉得LZ需要审视一下
不是什么沾上了云就牛B了 云的概念和应用也拒绝对不会局限与几台或者几十台计算机
这种情况下叫局域网 不叫云
[解决办法]
[解决办法]
学习。
[解决办法]
6185763@qq.com ,学习者,麻烦了呵呵
[解决办法]
路过,路过,学习学习顶顶
[解决办法]
不错。学习一下。
wrx.fyqr@163.com
谢谢!!
[解决办法]
大势所趋,该了解了....
------解决方案--------------------
学习学习学习学习
[解决办法]
学习了,有图,好支持楼主
[解决办法]
不错,图文并茂,我喜欢!
[解决办法]
非常感谢,好东西!
vbtime@163.com
[解决办法]
66120610@qq.com 谢谢
[解决办法]
学习学习学习学习
[解决办法]
learning......
[解决办法]
楼主加油~
[解决办法]
406205615@qq.com 谢谢~
[解决办法]
开发这个云平台的目的是什么?
答:打破大公司的技术垄断,降低技术壁垒,振兴中华,让普通人也能很快进行大规模的应用。
哎呀 ,连占3楼~~尴尬尴尬~
[解决办法]
支持,随便多学习些!!
[解决办法]
好像很牛啊
顶楼主啊
[解决办法]
flowerjack@163.com
[解决办法]
kkgoing@163.com,学习致敬
[解决办法]
学习学习!!!!!!!!
[解决办法]
上次erp的代码至今未发送到我邮箱,不知是你什么原因,。希望这次可以不要放鸽子、
yezixian2008@qq.com
[解决办法]
给力,顶一个
[解决办法]
支持一下,我要,ccycc@msn.com
[解决办法]
很牛啊 admin_robin@baidu.com
[解决办法]
349191552@qq.com 谢谢
[解决办法]
hpjianhua@163.com 很强大
[解决办法]
wuxiaoyan205@163.com,学习致敬
[解决办法]
看的晕晕乎乎的!!!
[解决办法]
头大!
[解决办法]
看不明白,垃圾
[解决办法]
yeryakd@163.com
谢谢
[解决办法]
慢慢理解中
[解决办法]
学习 学习
[解决办法]
364131167@qq.com
[解决办法]
学习一下,wskyes@163.com
[解决办法]
有性能测试报告就好了
neryalwu@163.com
[解决办法]
给力,顶一个
------解决方案--------------------
值得学习,期待超过微软
[解决办法]
[解决办法]
期待学习easyby@126.com
[解决办法]
不错,顶一个~!
[解决办法]
虽然技术不懂,但给思路加分。顶!
[解决办法]
看看,先学习下
[解决办法]
学习学习。。
[解决办法]
看了一下,还真不好做
佩服
[解决办法]
百度表示很淡定
嘿嘿 wangmenqiu@baidu.com
[解决办法]
16324506@qq.com
多谢啦,学习中~
[解决办法]
支持LZ 顺便接分
[解决办法]
kingkenmark@163.com , 受教了,谢谢。
[解决办法]
不知道LZ把这个很牛的项目发到论坛上的目的是? 会关系到我们这些低端用户吗?
[解决办法]
好复杂!
[解决办法]
以前那个吹牛B的什么操作系统的人又回来了?
[解决办法]
口气很象......有些地方简直是一模一样.
[解决办法]
一般人很难用的起来,有点规模的也不一定敢用你的啊
建议还是公布源代码
[解决办法]
看着和云没什么关系,怎么看上去象是romoting外加简单调度。
[解决办法]
我想知道云到底都提供什么功能,目前主流的云有哪些功能?
与楼主提供的那9点功能沾多少边?
有多少权威懂行的专家?
[解决办法]
mark
[解决办法]
[解决办法]
楼上说的有点道理
另外扁平化的网络拓扑,用CLOS Network来部署。50年代就有一个计算机科学家提出来,第一级128台,每台下行40个1G端口,上行40个。第二级4台,每台下行128个10G端口与1级相连。集群内5120台服务器,任何两台都有1G带宽。这样程序员在写分布式应用的时候就不需要考虑这个程序在哪些层运行
看上面的架构图,基本是这个样子
就不知道这么大规模跑起来效果会怎样了
[解决办法]
可能不久要用,留个邮箱学习楼主代码:
clever101@gmail.com
[解决办法]
这种拓扑结构是Google是2008年做的,三级CLOS Network。
第一级,512台,每台下行40个1G端口,下行40个,每64台一个分区。总共会有8个分区。
第二级,这个核心交换机往下至少有128个10G端口,下行为64个10G,上行64个,每四台一个分区。
第三级,16台,每台下行32个10G端口。
集群内20480台服务器,任何两台都有1G带宽。
集群任务调度系统,它有两个作用。一是任务与资源匹配,提高资源利用率,静态部署的业务都有生命周期,比如说开心农场,前两年很火,现在下坡了,前两年给几千台服务器都不够,下坡的时候只要给几百台服务器就可以了。下坡的时候怎么把这些资源收回来,最好不需要人工,让它自动调度,它负载低的时候,自动把服务器分给其他应用。可以提高资源利用率,我们目标是把资源利用率提高到80%。二是调度系统要监控任务的执行,执行自动容错,进程崩溃的时候,它可以自动把这个进程拉起,宕机的时候,重新找一台机器,把宕机上面的应用在新的机器上重新运行。除了高端容错,还要实现自动化运维,让运维人员压力降低很多。
开发这样一个系统之后,这个任务就不是静态部署了,写分布式应用的程序员,写的时候不需要考虑这个程序在哪些机器上运行,这些机器上带宽有多少,这个模式就变成他写的应用是提供给集群,至于这个应用在哪个集群上应用,是集群调度器的任务。做到这个,就可以做到服务器复用,提高资源利用率。
[解决办法]
楼主,我要,学习瞻仰~~
gsbe1987@126.com
[解决办法]
厉害,拜读了
[解决办法]
先留名
再学习
[解决办法]
楼主这个云平台还缺少一个虚拟化的操作,其实这个也不难,虚拟化的目的是用来组织另外多个集体群的配置,目的是可以随意设置层次和跟节点,但是资源却能共用,这么一来就解决了采用hadoop需要通过多个虚拟机来配置多套hadoop的做法,如果这个实现了,就是一个很大的创新了
现在互联网公司google一直在用这种技术,腾讯现在也开始,雅虎和Facebook也在做Hadoop,一个集群里面跑多个Hadoop,Hadoop和其他应用共用资源,他们也是用资源容器来隔离。
期待楼主的改进
[解决办法]
[解决办法]
最后讲一下数据中心自动化运维和监控,服务器达到六位数之后,效率就非常重要,到底多少人来运维,我们做的就是自动化运维,提高效率,降低成本。上个月底亚马逊云计算发生了比较大的事故,就是人工失误造成的,造成服务中断12个效果。如果自动化运维就会有效减少这些失误。我们一个运维人员管几千台服务器,希望实现自动容错,一台机器实现精简故障,服务器可以自动找出好的服务器,运维人员只是在工作时间换掉这个服务器就可以了,不需要半夜去做,这也有一个全面准确及时告警系统。
楼主的 集群性能指数服务 功能和概念非常好,不过还应该在细致,技术上任何关键点都应该做到极致
[解决办法]
uliywng@gmail.com 谢谢了
[解决办法]
学习,谢谢
theachwer@tom.com
[解决办法]
支持一下,当是收集资料,有时间慢慢看。
[解决办法]
学习,谢谢
minepop09@163.com
[解决办法]
不错,支持一下。
[解决办法]
hao !
[解决办法]
bu cuo!
[解决办法]
擦!牛逼。不定对不起我啊!
shijianyu00@126.com
[解决办法]
学习一下的说,
[解决办法]
真有强人啊
[解决办法]
很好啊啊 啊啊啊爱爱爱啊
[解决办法]
楼主的搜索引擎,广告做在csdn之后卖出去好价钱了吗?
[解决办法]
hahaha
[解决办法]
aihai_3121@qq.com
[解决办法]
其实什么问题是讨论具体技术,什么问题不是讨论具体技术,csdn应该很清楚。
[解决办法]
呵呵呵呵呵呵
[解决办法]
值得学习一下,
xhmeng@163.com
[解决办法]
不错,顶一个~!
[解决办法]
孺子可教啊,不错
[解决办法]
恩 不错不错
[解决办法]
纯属帮顶,一大堆云看着有点晕哈哈...
[解决办法]
淡定学习