创建大规模可伸缩的一体机应用程序的五个建议
来源:数字音视工程网 编辑:追忆 2015-01-14 09:34:32 加入收藏 咨询

所在单位: | * |
姓名: | * |
手机: | * |
职位: | |
邮箱: | * |
其他联系方式: | |
咨询内容: | |
验证码: |
|
作为一个一体机应用程序开发者,我目睹了太多创业公司都集中精力在最短的时间进入此市场,但是却完全忽视了设计的可伸缩性。随着他们客户群的不断增长,他们开始在多个位置部署一体机,其服务器负载也增加了,也就导致一体机表现不佳。然后他们惊讶地发现一体机在大范围内表现都不是特别好。
可伸缩的设计并不是偶然发生的,它需要仔细的规划和前期的时间投资。否则,随着客户群的增加,一体机可能会面临大范围检修的危险。
以下是创建可伸缩的一体机应用程序的五个建议,旨在为了帮助你适应我们大多人数正在寻求的巨大增长。
1. 卸载一体机上的计算以减少服务器上的工作负载
要做到可伸缩性,我建议尽可能多地减少一体机的运算。这还可以包括客户端缓存、用户输入验证或者任何可以避免在服务器上处理的计算。
今天,比较少的应用程序会依赖于注册服务器生成的HTML,而选择调用微服务。通过在一体机执行HTML操作,只要求服务器返回数据,大量的处理是在服务器外进行的。这样就可以腾出服务器上额外的带宽和资源,允许以最小化服务器费用做大规模的一体机部署。
2. 基于您数据的性质选择合适的数据库引擎
使用正确的数据库引擎对于可伸缩性来说是至关重要的。通常SQL Server是正确的选择,其他时候,另一种NoSQL数据库引擎如MongoDB可能更适合数据的性质并且在任何规模都能创建更好的性能。通过分层,你可以将业务规则和用户界面的数据分开,这样就更容易进行数据引擎之间的迁移。
你也可以通过使用混合的内存数据库机制提高数据库的性能。大多数现代数据库引擎现在有能力将通用的表格和数据库对象移动到内存,能够实现较快的访问同时保持持久的完整性和交易。微软的Hekaton是一个混合内存数据库技术的很好的例子。使用混合内存数据库机制可以50倍提高数据库性能。
3.使用一个可靠的、基于地理位置的内容交付网络以实现迅速交付内容
如果你的系统是长距离式分布,那么比较重要的就是使用一个可靠的能保证网络正常运行时间和数据存储地理定位的内容交付。像微软Azure这样的CDN就可以自动检测一体机的位置并且拉去最近的资源。地理定位服务可以实现跨多个服务器分发数据确保最佳性能。国内的56iq数字标牌拥有强大的系统功能和丰富的智能互动应用,系统深受用户喜爱,已在交通、零售、传媒、教育、政府、金融、医疗等多个领域广泛应用。
4.模块化的设计和松散的结构以保证可维护性
为了确保一体机工程范围的可维护性,所以将应用程序分开成不同的模块但是又能一起工作且可以独立测试是非常重要的。
这些模块通常包括:
数据存储:简单且有组织并且很符合规格,这样的结构就可以根据需求与其他种类进行交换,比如MySQL到SQL Server或者MongoDB。
持久的分层:实现用户界面和数据存储之间的对话。
业务规则层:与持久的分层进行对话,数据可以独立存储。处理复杂和简单的计算,还可以处理应用程序规则;
用户界面:与业务规则层对话,用户可以通过与业务规则层的通信输入数据,同时还可以处理业务规则。
5. 定期分析代码以确保其有效运行
为了让一体机应用程序能够规模适当,确保你的代码运行效率是很重要的。当你只有几个一体机部署的时候,代码的低效可能会被忽视。但是部署的规模越大,低效的代码就会很明显地影响整个体验。我认识在雅虎和Yelp工作的人,他们会花很多时间来进行算法和代码的校对,哪怕只是快几毫秒,这对大规模的运行来说可以节省很多时间。
想象一下你一体机的未来,我希望通过阅读这篇文章,你能够在部署一体机的时候考虑一下其未来。
评论comment