站务联系

内容

微服务架构

发布时间:2021-03-10   来源:网络整理    
字号:

微服务简介

微服务构架(Microservice Architecture)是一种构架概念,旨在通过将功能分解至各个离散的服务中以实现对解决方案的时延。

微服务是一种构架色调,一个小型复杂硬件应用由一个或多个微服务组成。系统中的各个微服务可被独立布署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并挺好地完成该任务。在所有状况下,每个任务代表着一个小的业务能力。

应用构架发展单体构架

单体应用 就是将所有的业务场景的表示层、业务逻辑层跟数据访问层置于一个安装工程中。最终经过编译、打包,部署在一台服务器上。典型实例是j2ee的war包或ear包。

微服务架构

负载均衡,通过分发服务器,将用户的访问分派至不同的应用服务器,应用服务器的负载不再成为难题,用户量降低时,添加应用服务器即可。添加缓存,使用缓存服务器来改善数据库的数据以及数据库调用数据的压力。大多数的调用操作是由缓存完成的,但是依然有少数读操作是从数据库调用。读写分离,当有大量的读写操作时,将数据库进行读写分离是一个不错的选择,例如MySQL的主从热备份,通过相关配置可以将主数据库服务器的数据同步至从数据库服务器,实现数据库的读写分离,读写分离才能缓解数据库的负载能力。分区分库分表,将数据量较大的表水平或平行切分,分散至不同的库或主机上,分散数据库的压力,提高功耗。应用分拆,将较重要或访问量较大的功能模块分拆下来作为新应用单独开发、运维。新应用与老应用间的相关依赖通过插口读取或其它方法交互。

集群有一定的处理高并发的能力,也能规避一定复杂的业务需求,改善了系统的功耗,但是仍然没有改变系统为单体构架的事实,此时存在的不足之处如下。

并发容量虽非增加,但有限。虽做一定的应用分拆后,一定程度上可以改善单体应用的问题。但随着服务分拆越来越多,开发、部署、运维、管理难度也越来越大。持续交付能力差,业务越复杂,代码越多,修改代码跟添加代码所需的时间越长。新人熟悉代码的时间长、成本高。子应用间依赖耦合较紧,重复功能建设,重复代码等,服务间通讯没有标准等。微服务构架

“微服务”最初是由Martin Fowler 在2014年写的一篇文章《MicroServices》中提下来的。关于Martin Fowler的介绍

Martin Fowler是国际知名的OO学者,敏捷开发方式的创始人之一,现为的首

席科学家。在面向对象分析设计、UML、模式、软件开发方式学、XP、重构等方面,都是世界顶尖的

专家,现为的首席科学家。Thought Works是一家从事企业应用开发跟——集

成的公司。早在20世纪80年代,Fowler就是使用对象技术建立单层企业应用的倡导者,他著有几

本精典书籍: 《企业应用架构模式》、《UML精粹》和《重构》等。

图说天下

×
二维码生成