微服务笔记--概念

一、微服务架构与SpringCloud

微服务是什么呢?微服务架构和微服务是同一个吗?

微服务架构是一种设计方法,而微服务应该是指使用这种设计方法而设计的一个应用。

微服务架构是将复杂系统使用组件化的方式进行拆分,并使用轻量通信方式进行整合的一种设计方法。微服务就是通过这种设计方法拆分出来的一个独立的组件化小应用。

组件,通常以代码库的形式,提供函数是调用;而微服务的组件,却以应用的方式,通过Http通信提供接口服务。

微服务架构定义的精髓是:分而治之,合而用之。将复杂的事情进行拆分,再使用轻量级通信http进行整合设计。

微服务的http通信不同于传统的做法。传统的需要事先设定IP和端口,而微服务却采用服务注册与发现,使用服务的实例名称进行调用。

微服务的特点:小型化、自治化、扁平化、轻量级设计、渐进式设计。

SOA(Service-Oriented Architecture,面向服务架构),是一种粗粒度、松耦合的面向服务架构设计方法。

SOA是一种企业级的架构设计方法,使用企业服务总线(ESB)的方式来构建一个更高效、更可靠的系统。如:Dubbo、Dubbox、CXF等都是一些比较优秀的SOA开源工具。

微服务轻量级设计与SOA重量级设计的区别:

①微服务的通信设计使用简单的HTTP协议,使用Restful实现。而SOA一般使用复杂的协议,如WebService或BPEL等,还需要使用服务描述性语言来定义标准接口。

②微服务的自治性与SOA的集中式管理。

③应用规模不同。SOA应用规模有限,微服务更能适应互联网的环境。

搭建微服务框架,我们使用SpringCloud微服务开发工具套件。

二、微服务架构最佳设计

1、合理划分微服务。在水平方面,按业务功能不同划分微服务,划分出来的称为Rest API。负责业务功能的行为设计,完成数据管理工作,提供接口服务。

在垂直方面,以Rest API微服务为基础实现前后端分离设计,创建WebUI微服务。只专注于人机交互界面设计,数据存取通过Rest API。

2、微服务治理

①Eureka ②Ribbon ③Zuul ④Hystrix ⑤Turbine ⑥Sleuth ⑦Config

3、Rest API微服务设计

①使用数据库集群 ②读写分离设计 ③使用缓存 ④保证微服务独立性

4、WebUI微服务设计

①使用FeignClient实现负载均衡调用②使用Hystrix实现容错设计③使用非阻塞的异步编程技术实现高并发调用(如:CompletableFuture)

④使用分布式文件系统 ⑤微服务之间的调用规则:通过WebUI调用Rest API、Rest API之间只能通过MQ进行相互通信 、WebUI之间可使用与之对应的实例进行相互跳转。

⑥数据最终一致性(CAP)【实时同步或使用消息通道】⑦分布式集群架构设计:微服务+数据库集群+分布式文件系统集群⑧微服务运行环境安全设计:防火墙设计+防攻击设计+访问控制设计+数据保密设计。

猜你喜欢

转载自www.cnblogs.com/cecWork/p/10527278.html