首页 文章资讯内容详情

springcloud 及组件的基本使用

2026-06-01 4 花语

本文内容纲要:

eureka注册中心 pom:spring-cloud-starter-eureka-server 服务端启动类上@EnableEurekaServer application.xml eureka: instance: hostname:localhost client: registerWithEureka:false fetchRegistry:false serviceUrl: defaultZone:http://${eureka.instance.hostname}:${server.port}/eureka/ 客户端启动类上@EnableEurekaClient ribbon负载均衡客户端 pom:spring-cloud-starter-ribbon 启动类@EnableDiscoveryClient注册服务到客户端 @LoadBalanced注解表明这个restRemplate开启负载均衡的功能。 feiginFeign主要做服务调用默认集成了ribbon,采用的是基于接口的注解 pom:spring-cloud-starter-eurekaspring-cloud-starter-feign 启动类上@EnableDiscoveryClient@EnableFeignClients:启用服务注册与发现:启用feign进行远程调用 @FeignClient(value="service-hi") publicinterfaceSchedualServiceHi{ @RequestMapping(value="/hi",method=RequestMethod.GET) StringsayHiFromClientOne(@RequestParam(value="name")Stringname); } 调用这个SchedualServiceHi.sayHiFromClientOne方法时其实是调用的服务名为service-hi,/hi的服务 Hystrix熔断器 application.xml feign.hystrix.enabled=true 创建一个实现类HelloRemoteHystrix实现该接口 然后对应方法进行熔断回调 对应接口加上熔断回调的注解@FeignClient(value="service-hi"fallback=HelloRemoteHystrix.class) zuul Zuul的主要功能是路由转发和过滤器。负载均衡 pom:spring-cloud-starter-zuul 启动类@EnableZuulProxy application.xml zuul.routes.api-a.path=/demand/** zuul.routes.api-a.serviceId=sybus-demand-service 前缀为/demand/的请求都转发给sybus-demand-service服务(路由) 代理注册在eureka上的服务,实现在服务端的负载均衡。 过滤:拦截非法请求定义多个拦截器继承ZuulFilter publicclassMyFilterextendsZuulFilter{ privatestaticLoggerlog=LoggerFactory.getLogger(MyFilter.class); //过滤类型有pre:路由之前routing:路由之时post:路由之后error:发送错误调用 @Override publicStringfilterType(){ return"pre"; } //过滤的顺序 @Override publicintfilterOrder(){ return0; } //本文true,永远过滤。 @Override publicbooleanshouldFilter(){ returntrue; } //run:过滤器的具体逻辑。可用很复杂,包括查sql,nosql去判断该请求到底有没有权限访问 @Override publicObjectrun(){ } }

eureka注册中心pom:spring-cloud-starter-eureka-server服务端启动类上@EnableEurekaServerapplication.xmleureka:instance:hostname:localhostclient:registerWithEureka:falsefetchRegistry:falseserviceUrl:defaultZone:http://${eureka.instance.hostname}:${server.port}/eureka/客户端启动类上@EnableEurekaClientribbon负载均衡客户端pom:spring-cloud-starter-ribbon启动类@EnableDiscoveryClient注册服务到客户端@LoadBalanced注解表明这个restRemplate开启负载均衡的功能。feiginFeign主要做服务调用默认集成了ribbon,采用的是基于接口的注解pom:spring-cloud-starter-eurekaspring-cloud-starter-feign启动类上@EnableDiscoveryClient@EnableFeignClients:启用服务注册与发现:启用feign进行远程调用@FeignClient(value="service-hi")publicinterfaceSchedualServiceHi{@RequestMapping(value="/hi",method=RequestMethod.GET)StringsayHiFromClientOne(@RequestParam(value="name")Stringname);}调用这个SchedualServiceHi.sayHiFromClientOne方法时其实是调用的服务名为service-hi,/hi的服务

Hystrix熔断器application.xmlfeign.hystrix.enabled=true创建一个实现类HelloRemoteHystrix实现该接口然后对应方法进行熔断回调对应接口加上熔断回调的注解@FeignClient(value="service-hi"fallback=HelloRemoteHystrix.class)zuulZuul的主要功能是路由转发和过滤器。负载均衡pom:spring-cloud-starter-zuul启动类@EnableZuulProxyapplication.xmlzuul.routes.api-a.path=/demand/**zuul.routes.api-a.serviceId=sybus-demand-service前缀为/demand/的请求都转发给sybus-demand-service服务(路由)代理注册在eureka上的服务,实现在服务端的负载均衡。过滤:拦截非法请求定义多个拦截器继承ZuulFilterpublicclassMyFilterextendsZuulFilter{

privatestaticLoggerlog=LoggerFactory.getLogger(MyFilter.class);//过滤类型有pre:路由之前routing:路由之时post:路由之后error:发送错误调用@OverridepublicStringfilterType(){return"pre";}//过滤的顺序@OverridepublicintfilterOrder(){return0;}//本文true,永远过滤。@OverridepublicbooleanshouldFilter(){returntrue;}//run:过滤器的具体逻辑。可用很复杂,包括查sql,nosql去判断该请求到底有没有权限访问@OverridepublicObjectrun(){}}

本文内容总结:

原文链接:https://www.cnblogs.com/wuhaobk/p/8533520.html