• 微服务笔记--概念


    一、微服务架构与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)【实时同步或使用消息通道】⑦分布式集群架构设计:微服务+数据库集群+分布式文件系统集群⑧微服务运行环境安全设计:防火墙设计+防攻击设计+访问控制设计+数据保密设计。

  • 相关阅读:
    Revit API改变风管及管件尺寸
    Revit API注册事件
    Revit API创建标高,单位转换
    Revit API判断直线相交关系移动风管
    Revit MEP API找到连接器连接的连接器
    Revit MEP API连接器类别
    AngularJS如何编译和呈现页面
    AngularJS自定义Directive初体验
    Webpack基本用法
    对一个前端AngularJS,后端OData,ASP.NET Web API案例的理解
  • 原文地址:https://www.cnblogs.com/cecWork/p/10527278.html
Copyright © 2020-2023  润新知