SpringCloud学习随笔1--基础知识

什么是微服务架构

    简单的说,微服务是系统架构上的一种设计风格,意在将原本独立的系统按照业务(或者其他,通常是按照业务)粒度拆分成多个小型服务,这些服务能够独立构建部署、

    独自维护自身数据存储、独立开发与单元测试、独立运行在各自的进程中。服务之间通过基于HTTP的Restful API通信,有了这个通信基础,这些服务可以使用不同的语言开发。

与传统服务的区别

   传统大型的javaEE项目中,通常会分为三个部分:数据库、服务端处理、web呈现。随着移动设备的发展,前端业务的呈现已经不再局限于web,这就要求后端服务面向前端支持更多的接口;

   而传统服务部署在一个进程中,往往我们修改了一个小的功能点,为了新的功能上线,会影响其他功能的运行;因此随着系统的演进,传统服务的维护成本越来越大,并且难以控制。

   为了解决传统服务由于业务累积造成系统臃肿,难以维护,微服务框架由此诞生。我们将传统服务拆分成多个小的服务,由于每个服务运行在自己的进程内,因此服务的更新不会影响其他服务的运行;

   同时,由于服务独立部署, 我们可以很清晰的分析出每个服务资源占用情况。

微服务实施面临的问题

   微服务架构虽然有很多优点,但是一个新兴事物的出现势必会带来新的问题:

   1、 运维的挑战

         微服务架构中,运维人员需要维护多个服务、多个线程,有条不紊的编排维护这些线程需要耗费更多的精力。

   2、接口一致性

         微服务架构只是解耦了业务之间在部署、运维上的依赖,而实际的业务依赖依旧存在,只是从传统服务的代码依赖变成了服务间的通信依赖。服务间的通信依赖,需要服务提供端和调用端协商接口,

         如果服务提供端修改了接口,那么也要求调用端配套修改接口调用。

   3、分布式的复杂性

         由于拆分后的服务运行在不同的进程中,服务间只能通过通信来协作,所以网络延迟、分布式事务、异步消息等都是微服务架构需要慎重考虑的问题。

微服务架构的特性

   服务组件化

   按照业务组建团队

   生产产品的态度

   智能端点和哑管道

   去中心化治理

   基础设施自动化

   容错设计

猜你喜欢

转载自www.cnblogs.com/sniffs/p/11545538.html