微服务原理学习小结

Posted 帅哥学Java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务原理学习小结相关的知识,希望对你有一定的参考价值。

1、从单体架构到分布式架构的演进

1.1、单体架构

通常来说,如果一个war包或者jar包里面包含一个应用的所有功能,则我们称这种架构为单体架构。

1.2、集群及垂直化

1、通过横向增加服务器,把单台机器变成多台机器的集群。

2、按照业务的垂直领域进行拆分,减少业务的耦合度,以及降低单个war包带来的伸缩性困难问题。

1.3、SOA

SOA就是面向服务的架构,核心目标是把共享业务提取成独立的基础服务。在SOA中,会采用ESB(企业服务总线)来作为系统和服务之间的通信桥梁。

1.4微服务架构

SOA关注的是服务的重用性及解决信息孤岛问题。微服务关注的是解耦。解耦是降低业务之间的耦合度,而重用性关注的是服务的复用。

微服务会更多关注和DevOps持续交付上,因为服务粒度细化之后使得开发运维变得更加重要,因此微服务与容器化技术的结合更加紧密。

2、微服务解决方案之Spring Cloud

Spring Cloud其实就是一套规范,而Spring Cloud Netflix、Spring Cloud Consul、Spring Cloud Alibaba才是Spring Cloud规范的实现。

2.1、Spring Cloud Netflix

Spring Cloud Netflix主要为微服务架构下的服务治理提供解决方案,包括以下组件:Eureka,Zuul,Ribbon,Feign,Hystrix,Hystrix Dashboard,Turbine

2.2 Spring Cloud Alibaba

Spring Cloud Alibaba主要为微服务开发提供一站式的解决方案,包括开源组件和阿里云产品组件,云产品是需要付费使用的。包括以下组件:Sentinel,Nacos,RocketMQ,Seata,Dubbo,OSS(收费的云服务)

3、Spring Cloud的核心之Spring Boot

1、如何理解约定优于配置?

在SpringBoot中,约定优于配置的思想主要体现在以下方面

1、Maven目录结构的约定。

2、Spring Boot默认的配置文件及配置文件中配置属性的约定。

3、对于Spring MVC的依赖,自动依赖内置的Tomcat容器。

4、对于Starter组件自动完成装配。

2、自动装配的核心过程:

1、通过@Import(AutoConfigurationImportSelector)实现配置类的导入,但是这里并不是传统意义上的单个配置类装配。

2、AutoConfigurationImportSelector类实现了ImportSelector接口,重写了方法selectImports,它用于实现选择性批量配置类的装配。

3、通过spring提供的SpringFactoriesLoader机制,扫描classpath路径下的META-INF/spring.factories,读取需要实现自动装配的配置类。

4、通过条件筛选的方式,把不符合条件的配置类移除,最终完成自动装配。

3、@Conditional条件装配:

1、@Conditional是Spring Framework提供的一个核心注解,这个注解的作用是提供自动装配的条件约束,一般与@Configuration和@Bean配合使用,该注解可以接收一个Condition数组。

2、Condition是一个函数式接口,提供了matches方法,它主要提供一个条件匹配规则,返回true表示可以注入Bean,反之则不注入。

4、Starter命名规范:

1、官方命名:spring-boot-starter-模块名称,比如spring-boot-starter-web

2、自定义命名:模块名称-spring-boot-starter,比如mybatis-spring-boot-starter。

                

以上是关于微服务原理学习小结的主要内容,如果未能解决你的问题,请参考以下文章

随机森林算法原理小结

OpenStack 原理小结

微服务学习RPC原理与Go RPC

机器学习Bagging与Boosting算法原理小结

Bagging与随机森林算法原理小结

Bagging与随机森林算法原理小结