springboot与springclould的总结
Springboot总结
1 什么是springboot(约点大于配置)
用于简化spring应用的搭建以及开发过程,使用特定的方式进行配置(properies和yml文件)
创建独立的spring引用main方法
嵌入Tomcat无需部署war文件
简化maven的配置
自动配置spring添加对应的stater自动配置
2 springboot常用的stater 有哪些
spring-boot-atater-web嵌入Tomcat和web开发需要的servlet与jsp 的支持
spring-boot-stater-data-jpa 数据库支持
spring-boot-stater-data-redis缓存数据库支持
spring-boot-stater-data-solr solr的支持
mybatis-spring-boot-stater第三方的mybatis集成stater
3 springboot自动配置原理
spring程序main方法中添加@springBootApplicationConfiguration或者@enableAutoConfiguration会自动去maven中读取每个stater中的spring.factions文件 改文件里配置了所有需要创建spring容器中的 bean
4 springboot读取配置文件的方式
springboot默认读取的配置方式是application.properies或者application.yml
5 springboot集成mybatis的过程
添加mybatis的stater maven依赖
<dependency>
<groupld>org.mybatis.spring.boot</groupld>
<artifactld>mybatis_springstater</artifactld>
<version>1.2.0</version>
</dependency>
在mybbatis的接口中添加@Mapper注解
在application.yml配置数据源信息
SpringCloud总结
1 什么是微服务
以前的模式是所有的代码在同一个工程中 部署在同一服务其中,同提个项目的不同模块不同的功能相互抢占资源
微服务 将工程根据不同的业务规则拆分成微服务 ,微服务部署在不同的机器上服务之间相互调用
Java微服务的框架有dubbo(只能用来做微务),springcloud(提供服务的发现,断路器等)
2 springcloud如何实现服务的注册于发现
- 注册 : 服务在发布时 制定对应的服务名(服务包括IP和地址端口)讲服务注册到注册中心eyi(eureka或者zookeeper);
- 发现:这一过程时springcloud自动实现 只需在main方法添加@enableDisscover有Client 同一同一服务修改端口就可以启动多个实例;
- 调用方法:传递服务名称通过注册中心获取所有的可用实类,通过负载均衡策略调用(ribbon和feign)对应的服务
3 ribbon和feign的区别
1.启动类使用的注解不同,Ribbon用的是@RibbonClient,Feign用的是@EnableFeignClients。
2.服务的指定位置不同,Ribbon是在@RibbonClient注解上声明,Feign则是在定义抽象方法的接口中使用@FeignClient声明。
3.调用方式不同,Ribbon需要自己构建http请求,模拟http请求然后使用RestTemplate发送给其他服务,步骤相当繁琐。
Feign则是在Ribbon的基础上进行了一次改进,采用接口的方式,将需要调用的其他服务的方法定义成抽象方法即可,
不需要自己构建http请求。不过要注意的是抽象方法的注解、方法签名要和提供服务的方法完全一致。
4 springcloud断路器的作用
-
当一个服务调用另一个服务由于网络原因或者自身原因出现问题时 调用者就会等待被调用者的响应 当更多的服务请求到这些资源时导致更多的请求等待 这样就会发生连锁效应(雪崩效应) 断路器就是解决这一问题
断路器有完全打开状态 一定时间内 达到一定的次数无法调用 并且多次检测没有恢复的迹象 断路器完全打开,那么下次请求就不会请求到该服务 半开 短时间内 有恢复迹象 断路器会将部分请求发给该服务 当能正常调用时 断路器关闭 关闭 当服务一直处于正常状态 能正常调用 断路器关闭