什么是微服务?
-
“微服务”一词源于 Martin Fowler 的一篇名为 Microservices 的博文,可以在他的官方博客上找到 http://martinfowler.com/articles/microservices.html 。
-
微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行。服务之间一般通过 HTTP 的 RESTfuLAPI 进行通信协作。
-
被拆分成的每一个小型服务都围绕着系统中的某一项或些耦合度较高的业务功能进行构建,并且每个服务都维护着自身的数据存储、业务开发自动化测试案例以及独立部署机制。
-
由于有了轻量级的通信协作基础,所以这些微服务可以使用不同的语言来编写。
初识 SpringCloud
-
SpringCloud 是一系列框架的有序集合。
-
SpringCloud 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来。
-
SpringCloud 通过 SpringBoot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
-
它利用 SpringBoot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、 断路器、数据监控等,都可以用 SpringBoot 的开发风格做到一键启动和部署。
-
SpringCloud 版本命名方式采用了伦敦地铁站的名称,同时根据字母表的顺序来对应版本时间顺序,比如最早的 Release 版本是 Angel,第二个 Release 版本是 Brixton,然后是 Camden、Dalston、Edgware、Finchley、Greenwich、Hoxton。
SpringCloud VS Dubbo
-
SpringCloud 与 Dubbo 都是实现微服务有效的工具。
-
Dubbo 只是实现了服务治理,而 SpringCloud 子项目分别覆盖了微服务架构下的众多部件。
-
Dubbo 使用 RPC 通讯协议,SpringCloud 使用 RESTful 完成通信,Dubbo 效率略高于 SpringCloud。