
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的软件开发项目都从单体应用架构逐渐向微应用架构转变,下面我们就通过案例分析来了解一下,单体应用架构与微应用架构的区别。
单体应用架构
在单体应用架构中,我们会横向部署多个应用,用来支撑系统的吞吐量。为了实现负载均衡,使用反向代理软件(Nginx)把请求均匀分发到每个Tomcat中。
为了降低数据库的压力,我们引入分布式缓存,把绝大多数请求在读写数据库前拦截掉,大大降低数据库压力。
为了进一步降低数据库压力,我们把数据库划分为读库和写库,读库可以有多个,通过同步机制把写库的数据同步到读库,实现数据同步。
微应用架构
为了解决单个Nginx的瓶颈,我们引入F5,F5是工作在网络四层的负载均衡解决方案,可对TCP请求或更高层级的网络协议进行转发,实现对多个Nginx的均衡负载。
同时我们业务进行拆分,拆分成应用和服务。大数据培训应用负责满足用户的使用需求,每个应用分别负责具体的业务场景,相互之间可以做到独立升级迭代。可复用的功能代码单独抽取出来形成服务,每个服务也可以单独进行升级。当然各应用和服务之间的通讯少不了ESB统一访问协议了。应用统一通过ESB来访问后端服务,服务与服务之间也通过ESB来相互调用,以此降低系统的耦合程度。
在数据库层面,传统数据库不适用于复杂的查询场景,需要根据具体场景进行拆分选用合适的组件。如对于海量文件存储,可通过分布式文件系统HDFS解决,对于keyvalue类型的数据,可通过HBase和Redis等方案解决。对于全文检索场景,可通过搜索引擎如ElasticSearch解决。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。