微服务原理学习小结(一)

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。

                

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值