课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习软件编程开发技术,而今天我们就通过案例分析来了解一下,一个完整的软件后台都具备哪些功能。
1)服务治理框架:随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。
Dubbo是一款高性能、轻量级的开源JavaRPC框架,提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
2)统一调度中心:定时调度是一个非常普遍的场景,比如说定时去备份数据库,刷新订单状态等。可以依赖Linux的Cron机制,以及Java的Quartz框架。
工具型软件Cron是一款类Unix操作系统下的基于时间的任务管理系统。用户可以通过Cron在固定时间、日期、间隔下,运行定期任务(可以是命令和脚本)。我经常用的,就是通过Cron来备份MySql数据库。
Quartz可以用来创建或简单或复杂的调度时间表,执行Java下任意数量的作业。
3)日志服务:日志是生产环境不可缺少的产物,能够为线上服务提供快速记录、定位、排查问题的来源。常用的日志框架有Log4j和LogBack。
4)单点登录(SingleSignOn):简称为SSO,目前很多网站实现了单点登录,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统逐一登录。
推荐一个还不错的分布式单点登录框架——xxl-sso,开源的。
5)统一配置中心:常见的有properties、YAML文件,就是可以不修改代码只修改配置文件就能够让整个项目区分开发、测试、生产环境。
YAML语言(发音/ˈjæməl/)的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格式。
对于较复杂的数据结构来说,YAML远远优于properties,可以使用冒号加缩进的方式代表层级(属性)关系,使用短横杠(-)代表数组元素。
6)搜索框架:目前用得比较多的开源软件有Solr和Elasticsearch,主要用于全文检索和各种数据维度的查询,后者逐渐成为搜索引擎的主流开源方案。
Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为ElasticStack的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
7)消息队列:目前使用得比较普遍的消息队列有,基于日志设计的Kafka,重事务的RabbitMQ。对消息丢失不是特别敏感的话,选择Kafka可以获得更高的性能。
Kafka由Scala和Java编写,目的是为处理实时数据提供一个统一、高吞吐、低延迟的平台。其持久化层本质上是一个“按照分布式事务日志架构的大规模发布/订阅消息队列”,使得它作为企业级基础设施来处理流式数据非常有价值。
RabbitMQ的主要特点在于健壮性好、易于使用、高性能、高并发、集群易扩展,以及强大的开源社区支持。
8)文件存储:文件存储需要满足的特性有:可靠性、容灾性、稳定性,能够保证文件不轻易丢失,还能在出现事故的时候提供回滚方案。Hadoop的HDFS是目前常用的分布式文件存储方案。
除此之外,还有一个开源的轻量级分布式文件系统——FastDFS,可以解决大数据量存储和负载均衡等问题。特别适合以中小文件(建议范围:4KB<file_size<500MB)为载体的在线服务,如相册网站、视频网站等等。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。