栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java > SpringBoot

SpringCloud 广告系统实战(五)

SpringBoot 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringCloud 广告系统实战(五)

1 创建广告检索系统子模块
  • 新建搜索服务子模块


  • 编辑 pom 文件


    
    
        javaedge-ad-service
        com.sss.ad
        1.0-SNAPSHOT
    

    4.0.0

    
    ad-search
    1.0-SNAPSHOT
    jar

    
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-hystrix-dashboard
        
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        
        
        
            org.springframework.cloud
            spring-cloud-starter-openfeign
        
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-hystrix
        
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-ribbon
        
        
        
            org.springframework.boot
            spring-boot-starter-data-jpa
        
        
        
            org.springframework.boot
            spring-boot-starter-jdbc
        
        
        
            mysql
            mysql-connector-java
            8.0.12
            runtime
        

        
        
            com.sss.ad
            ad-common
            1.0-SNAPSHOT
        
        
        
            commons-codec
            commons-codec
            1.9
        
        
        
            org.apache.commons
            commons-collections4
            4.0
        

        
        
            com.github.shyiko
            mysql-binlog-connector-java
            0.13.0
        
        
        
            org.springframework.boot
            spring-boot-configuration-processor
        
        
        
            org.springframework.kafka
            spring-kafka
            2.1.5.RELEASE
        
    

    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    
2 基于 Ribbon 实现微服务调用Client Side Load Balancer: Ribbon

Ribbon 是一个客户端负载均衡器,可很好地控制HTTP和TCP客户端的行为.
Feign已经使用Ribbon,所以若使用@FeignClient,则本节也适用也是必备知识点.

  • Ribbon 中的中心概念是指定客户端的概念
    每个负载平衡器是集合组件的一部分,它们一起工作以根据需要与远程服务器通信,并且集合具有你将其作为应用程序开发人员(例如使用@FeignClient注解)的名称.
    Spring Cloud 使用 RibbonClientConfiguration 为每个命名的客户端根据需要创建一个新的集合作为ApplicationContext.这包含 ILoadBalancer,RestClient和ServerListFilter.

2.1 添加 Ribbon

要在项目中包含Ribbon,请使用
grouporg.springframework.cloud,artifact ID spring-cloud-starter-ribbon的starter.


  • 定义 demo 演示类




3 基于 Feign 实现微服务调用

Feign 是一个声明式的Web服务客户端.
这使得Web服务客户端的写入更加方便,要使用 Feign 创建一个接口,并对其添加注解。它提供了可插拔式的注解,包括Feign注解和JAX-RS注解。Feign还支持可插拔编码器和解码器.
Spring Cloud增加了对Spring MVC注解的支持,并使用Spring Web中默认使用的HttpMessageConverters.
Spring Cloud集成Ribbon和Eureka以在使用Feign时提供负载均衡的http客户端.

3.1 如何加入Feign

要在项目中包含Feign,请使用grouporg.springframework.cloud和artifact ID spring-cloud-starter-feign的启动器.

  • Spring Boot应用


  • 接口文件


    在 @FeignClient 注解中,String 值(上面的eureka-client-ad-sponsor)是一个任意的客户端名称,用于创建Ribbon负载均衡器,还可以使用url属性(绝对值或只是主机名)指定URL.
    应用程序上下文中的bean的名称是该接口的完全限定名,要指定自己的别名,可以使用@FeignClient注释的qualifier值.

3.2 Feign Hystrix回退

Hystrix支持回退的概念 : 当电路断开或出现错误时执行的默认代码路径.
要为给定的 @FeignClient 启用回退,请将 fallback 属性设置为实现回退的类名.



作者:JavaEdge
链接:https://www.jianshu.com/p/9c62c0fbd139


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/235148.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号