标注在启动类上
@configuration 类似于ssm的 被@SpringBootApplication包含
@ComponetScan 加载与xxapplication文件同级目录的文件夹下的文件
被@SpringBootApplication包含
@EnableCaching 开启缓存
@SpringBootApplication 应用开启入口
@springCloudApplication 应用开启入口 比@SpringBootApplication更强大
@EnableEurekaClient开启eureka客户端 可以调用在eureka注册的服务
@EnableDiscoveryClient 不仅可以开启eureka客户端,还有consul、zookeeper
@EnableEurekaServer 开启eureka服务端 类似于注册中心zookeeper
@EnableFeignClients 开启负载均衡 包装了Ribbon
@EnableHystrix 开启容错保护
@EnableZuulProxy 开启网关代理
@MapperScan("com.xxx.user.mapper") 扫描mapper包,可以直接注入
标注在启动类的resttempalte方法上(负载均衡)
@Bean 标注注册一个javabean 类似ssm框架的
@LoadBalanced 开启负载均衡(客户端) 配合@EnableFeignClients
标注在javaconfig文件
@PropertySource扫描外部资源文件properties 用来配置javabean
标注在service方法
@HystrixCommand(fallbackMethod = “login”) 容错保护,配合@EnableHystrix
@Cacheable(value = "key" ) redis库的value就是你的返回值
标注在mapper方法上
@mapper 标注后可以直接注入该类,建议使用@mapperScan
配置文件使用的是application.yml格式文件注意每个空格一定要对齐 建议使用这个文件比properties好用
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka 注册的地址
register-with-eureka: false 是否注册,一般不用这个
server: 服务端
enable-self-preservation:false 关闭自动保护,别关这个很有用
spring:
application:
name: user 注册到服务中心的应用名
datasource: 配置的数据源,默认好像是druid
driver-class-name: com.mysql.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://localhost:3306/cloud
redis: redis配置
host: 6379
port:127.0.0.1
mvc:
view:
prefix:/WEB-INF/jsp
suffix:.jsp
server: 设定的tomcat启动端口
port: 8080
servlet-path:*.html 与ssm中的过滤路径相同
mybatis: mybatis的配置文件读取
config-location: classpath:mybatis/mybatis-config.xml
mapper-locations: classpath:mybatis/mappers/*Mapper.xml
zuul: 网关路由
routes:
sso: 自己手写,随便写建议和工程一样
path: /sso/** 对外暴露,过滤的的路径
server-id : sso 注册到服务的application name
默认情况下,如果Eureka Server在一定时间内没有接收到某个微服务实例的心跳,Eureka Server将会注销实例(默认90秒)。但是当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,以上行为可能变得非常危险-----因为微服务本省其实是健康的,此时不应该注销这个微服务。
Eureka通过“自我保护模式”来解决这个问题------当Eureka Server节点在短时间内丢失过多客户端时(可能发生网络分区故障),那么这个节点就会进入自我保护模式。一旦进入自我保护模式,Eureka Server就会保护服务注册表中的信息,不再删除服务注册表中的数据(也就是不会注销任何微服务)。当网络故障恢复后,该Eureka Server节点会自动退出自我保护模式。
综上,自我保护模式是一种应用网络异常的安全保护措施。它是宁可同时保留所有微服务(健康的和不健康的),也不盲目注销任何健康的服务。使用自我保护模式,可以让Eureka集群更加健壮、稳定。
在Spring Cloud中可以使用eureka.server.enable-self-preservation=false禁用自我保护模式。
@SpringCloudApplication时一个注解的集合
使用@SpringCloudApplication包括,Springboot注解,注册服务到注册中心注解,熔断器注解。在SpringCloud看来这是每一微服务所必须应有的三个注解,所以才推出了@SpringCloudApplication注解。
使用@SpringCloudApplication需要进入Springboot依赖外,还需要引入
<!--将微服务注册到注册中心 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<!--@SpringCloudApplication注解需要依赖的 熔断器 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>