热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一、spring框架的演变

1.微服务架构的演进过程1.1单体架构单机部署1.运行在tomcat里面,并发量QPS一般在200多个请求左右,同一个jvm进程,直接

1.微服务架构的演进过程


1.1 单体架构单机部署      

1.运行在tomcat里面,并发量QPS一般在200多个请求左右,同一个jvm进程,直接import就行。

2.不同的功能模块可能只用文件夹区分。

3.缺点:并发量太小(如果是电商系统,用户通过前端页面或者手机端或者PC端进来,此时如果并发量特别大,系统容易挂掉。)


1.2单体架构多机部署

        1.仍然是单体架构,只不过部署在不同的服务器上。

        2.优点:增加了可用性。

        3.缺点:存在session共享;没有进行解耦,耦合性太高,一个模块出问题,会影响整个系统,修改需要重新部署整个系统 。


1.3单体架构向分布式架构的演变过程

        1.将单体架构进行垂直拆分,每个系统当成一个独立的模块进行部署,不在放在一个项目里面。

        2.通过http请求或者其它rpc框架进行调用。

        3.通过负载均衡调用(随机、轮询、hash等等)。

        4.假如用户系统调用订单系统,需要将订单系统ip地址及端口写入用户系统本地,假如订单系统某台服务挂了,需要修改本地的ip及端口,此时ip及端口不适合引入本地了,引入了注册中心、配置中心的概念。



1.4微服务架构图


2.spring


2.1核心内容

                IOC:就是容器,比如存bean对象的容器、类的容器、变量的容器、配置的容器。

                DI:属性注入,通过Autowired注解拿到对象

                AOP:面向切面的编程


2.2版本升级


2.2.1 1.x版本

        对象注入IOC容器这个过程不够简化,因为是全部通过xml文件去实例化bean对象的,没有任何注解。

        入口:web.xml


2.2.2 2.x版本

        注解和xml一起使用,通过扫描包注解。


2.2.3 3.x版本

        1.完全抛弃了XML。

        2.在这个版本里引入了一个非常重要的注解:import注解。

        3.通过AnnotationConfigApplicationContext(xxx.class)读取配置类。

        4.写配置类,在配置类上加@Configuration注解。

        5.@Bean方法注解实例化Bean对象。

        6.如果要集成redis或者mybatis等组件,我们要用到他们的一些核心bean,需要@import注解引入它们。


2.2.4 4.x版本

        引入了Conditional注解。


3.springboot

        为了简化开发,只需要pom文件依赖一下就可以使用了,这才是真正的简化。


3.1优化方面

1.在spring的基础上,优化了Bean对象注入Ioc容器的流程

        要用什么组件里面的bean,只需要引包就可以了,不需要字节写配置类,也不需要自己写xml。

2.配置文件的统一管理。

        2.1 springboot的配置文件就一个,applicationcontex.properties或者applicationcontext.yml。

        2.2 boostrap.yml是springcloud的配置文件,只是优先级高一点而已。

3.容器的内置。


推荐阅读
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • SOA架构理解理解SOA架构,了解ESB概念,明白SOA与微服务的区别和联系,了解SOA与热门技术的结合与应用。1、面向服务的架构SOASOA(ServiceOrien ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了在go语言中利用(*interface{})(nil)传递参数类型的原理及应用。通过分析Martini框架中的injector类型的声明,解释了values映射表的作用以及parent Injector的含义。同时,讨论了该技术在实际开发中的应用场景。 ... [详细]
  • 服务网关与流量网关
    一、为什么需要服务网关1、什么是服务网关传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关& ... [详细]
  • ZooKeeper 学习
    前言相信大家对ZooKeeper应该不算陌生。但是你真的了解ZooKeeper是个什么东西吗?如果别人面试官让你给他讲讲ZooKeeper是个什么东西, ... [详细]
  • 后台自动化测试与持续部署实践
    后台自动化测试与持续部署实践https:mp.weixin.qq.comslqwGUCKZM0AvEw_xh-7BDA后台自动化测试与持续部署实践原创 腾讯程序员 腾讯技术工程 2 ... [详细]
  • 目录Atlas介绍Atlas部署Atlas基本管理Atlas结合MHA故障恢复读写分离建议Atlas介绍Atlas是由Qihoo360Web平台部基础架构团队开发维护的一个基于My ... [详细]
  • 什么是网关服务器初学linux服务器开发时,我们的服务器是很简单的,只需要一个程序完成与客户端的连接,接收客户端数据,数据处理,向客户端发送数据。但是在处理量很大的情况下,一 ... [详细]
  • Kubernetes(k8s)基础简介
    Kubernetes(k8s)基础简介目录一、Kubernetes概述(一)、Kubernetes是什么(二& ... [详细]
  • Ribbon使用Hystrix
    1、导入依赖spring-cloud-starter-hystrixorg.springframework.cloud ... [详细]
  • Istio是一个用来连接、管理和保护微服务的开放平台。Istio提供一种简单的方式来为已部署的服务建 ... [详细]
author-avatar
我是小钞票
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有