springcloud总结

注解:

1、@controller 控制器(注入服务)
2、@service 服务(注入dao)
3、@repository(实现dao访问)
4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>)

 注入@Autowired   @Resource。

1、 @Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。

2、 @Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:

  @Autowired()
@Qualifier("baseDao")
  private BaseDao baseDao;

3、@Resource(这个注解属于J2EE的),默认按照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行安装名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装

  @Resource(name="baseDao")
    private BaseDao baseDao;

推荐使用:@Resource注解在字段上,这样就不用写setter方法了,并且这个注解是属于J2EE的,减少了与spring的耦合。这样代码看起就比较优雅。

————————————————

@SpringBootApplication #springboot启动注解
@EnableEurekaServer    #Eureka服务客户端

@EnableDiscoveryClient  #Eureka服务客户端1

@EnableEurekaClient  #Eureka服务客户端2

@EnableHystrix    #Eureka整合Hystrix服务

@EnableHystrixDashboard

@EnableFeignClients    #Eureka整合fien服务

@FeignClient("user-service")   #fien服务接口上注解

@EnableConfigServer   #Eureka整合config配置

@EnableZuulProxy    #Eureka整合Zuul服务

@EnableZipkinServer  #Eureka整合zipkin服务
@RestController #controller层注解

@Component注解是说这个类需要被组件扫描器扫描到并实例化对象到IOC容器;

@Configuration注解是说这个类是一个类似XML文件的配置类,

里面用bean标签标记的方法需要被实例化到IOC容器中。

在springboot中取消了XML文件并大量使用@Configuration注解的类实现配置。

配置:

server.port  ## 该注册服务器的端口

spring.application.name  ## 应用启动名称

eureka.instance.hostname  ## 注册服务器的名称

eureka.client.fetch-registry  ##是否从eureka服务器获取注册信息

eureka.server.enableSelfPreservation  #关闭保护机制

eureka.client.service-url.defaultZone  ## 服务发布的地址

spring.zipkin.base-url:  ##整合zipikin服务日志查询。

spring.sleuth.sampler.percantpage:  ##服务跟踪消息收集率,不配置为默认

feign.hystrix.enabled=true:##开启hystrix

zuul.routes.user-service.path=/user-service/**   ##zuul.routes.<route>.path配置拦截请求的路径
zuul.routes.user-service.serviceId=USER-SERVICE   ##zuul.routes.<route>.serviceId配置拦截之后路由到的指定的eureka服务

-------------------------------------------------------------------------------------

要看看消息队列的问题。

自我介绍,公司职能,项目简介。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.eureka注册服务(使用注解@EnableEurekaServer)。

2.ribbon做负载均衡(主要是使用注入@Autowired--RestTemplate类,restTemplate.getForEntity("http://USER-SERVICE/hello?name=" + name, String.class);)。

3.feign声明做服务之间的调用(只需要创建一个接口并注解@EnableFeignClients,@FeignClient("user-service")  ##Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果)。

4.hystrix做断路器(ribbon:启动类加注解@EnableHystrix,service层加@HystrixCommand 的commandProperties 属性,注入相应的配置fallback,如抛出异常时的接口,和熔断触发默认超时时间)

(feign:配置文件需要配置,开启hystrix:feign.hystrix.enabled=true 和熔断触发默认超时时间。在interface接口上注解@FeignClient加上fallback,配置fallback熔断时走的接口,再实现接口)

5.zuul 做网关(1.可以做请求路由。启动类加注解@EnableZuulProxy,增加一个接口(过滤器)AccessFilter继承extends ZuulFilter,配置文件路由路径:zuul.routes.user-service.path=/user-service/**)。

(2.可以做服务降级,关掉一些服务,待稳定了重新开启:在spring Cloud项目中,使用了两种方式处理降级操作。

(1)使用feign组件完成降级操作,到内容提供者无法提供服务时, 消费者会调用降级操作,返回服务不可用等信息,或者返回提前准备好的静态页面,

(2)也可以使用zuul网关,在spring Cloud自定义一个类实现ZuulFallbackProvider接口,当出现问题,无法正常调用时 ,为服务提供回退响应)。

6.sleuth做链路追踪(启动类加注解加上@EnableZipkinServer,在需要监控的服务中加上spring.sleuth服务的配置文件:spring.zipkin.base-url:http://localhost:9400)。

7.config做配置中心(一个服务端,多个客户端,server服务端配置文件spring.cloud.git.url/search-paths。client客户端配置文件(bootstrap.yml,因为这种配置格式,是优先加载的):spring.config.label/profile/name   #label是master。profile是dev或者 test。name是要拉取的文件名)。

(通过springcloud—bus总线(Spring Cloud Bus除了支持RabbitMQ的自动化配置之外(借助MQ可以实现一次方法调用,访问:127.0.0.1:9020/bus/refresh实现整个服务的配置刷新),还支持现在被广泛应用的Kafka(需要    zookper支持)),只需要在springcloudConfig Server端发出refresh,就可以触发所有微服务客户端更新了)。

 

 

 

 

posted @   威兰达  阅读(19)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示