美文网首页
Spring boot (Eureka服务统一管理+Feign模

Spring boot (Eureka服务统一管理+Feign模

作者: 灿烂的GL | 来源:发表于2019-11-20 15:21 被阅读0次

    问题一:于微服务多为集群部署,在这种情况下,微服务之间要调用彼此的接口,如果使用url或者ip地址的形式调用会带来很多麻烦,例如:无法确定要连的主机是否可用。这种情况下如何实现统一管理?
    ====>这种情形下,就需要一个系统对所有的微服务进行统一的管理,实时的确定各个微服务所部署的主机的可用状态,这个系统就是注册中心。

    注册中心主要的作用 : 统一管理各个微服务,微服务向注册中心注册自己的信息,然后定时的和注册中心通信,以便注册中心区分可用和不可用的主机;而要调用服务的程序则向注册中心申请相应服务,注册中心返回给程序请求服务可用的主机ip以及端口号,这样实现服务的调用,常用的注册中心有eureka,zookeeper等。

    1、什么是Eureka

        Eureka采用C/S结构,Server提供服务注册服务,各个节点启动后(Client),会在Server中进行注册,这样Server中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
        在应用启动后,将会向Server发送心跳,默认周期为30秒,如果Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90秒)。
        Eureka Server之间通过复制的方式完成数据的同步,Eureka还提供了客户端缓存机制,即使所有的Eureka Server都挂掉,客户端依然可以利用缓存中的信息消费其他服务的API。综上,Eureka通过心跳检查、客户端缓存等机制,确保了系统的高可用性、灵活性和可伸缩性。

    2、创建一个Eureka服务
    1、建立Eureka服务服务端模块

    Eureka服务服务端.png

    2、配置Eureka客户端,即在其他项目模块中启动项添加@EnableEurekaClient
    3、启动Eureka服务,访问http://localhost:(自己配的端口号)/
    即可看见

    启动页面.png
    详细配置可参考
    spring cloud之Eureka--服务治理

    问题二:如何实现一个项目中不同模块间通信?
    ====>可以自己写个http服务来调令一个模块,或者采用Feign的方式将被调用(相当于server)接口暴露出来,供另一个模块(相当于client)调用。
    场景:假设有 A、B服务及C模块:
    A 抽象出接口形成C模块 ,提供B 使用;
    B 通过 带有@FeignClient 声明的C接口模块 调用A服务;
    1、生成需要暴露的接口文件C,@FeiginClient

    暴露接口.png
    2、A直接调用暴露接口C即可。
    详细的配置信息科参考
    spring cloud使用过Eureka怎么进行服务间相互访问--Feign

    相关文章

      网友评论

          本文标题:Spring boot (Eureka服务统一管理+Feign模

          本文链接:https://www.haomeiwen.com/subject/dvtoictx.html