springcloud作为目前中小型项目极受欢迎的微服务框架,其重要性不必多说,本文主要是以一个简单的入门程序来了解springcloud体系的构成,各个组件之间的分工与协作等等.
首先,用IDEA初始化一个demo,我的项目结构图是这样的:
有5个子模块,下面来一一讲解这5个子模块在项目中充当的角色和起到的作用:
1.demo-eurekaclient,这是springcloud的注册服务组件,即服务生产者,主要配置如图所示:
HelloController:
MyEurekaClient:服务生产者启动类,@EnableEurekaClient注解表示服务客户端:
2.demo-eurekaserver:springcloud微服务注册中心,用于服务生产者注册服务地址;
MyEurekaServer:微服务注册程序启动类,@EnableEurekaServer表示这是用于微服务注册的服务
3.demo-servicefeign:服务消费者,下图为基本配置
HelloController:最终服务消费者客户端对外暴露的接口,HelloFeign通过http协议调用服务名为service-hello的微服务;
HelloFeign:通过http调用service-hello,如果出现异常,会调用回调函数HelloFeignCallback;
HelloFeignCallback:回调函数
4.demo-serviceribbon:负载均衡组件,如果在注册中心注册了多个名为service-hello的服务,ribbon会通过内部的负载均衡机制选择一个service来调用,默认是采用轮询机制;
RibbonService:配合熔断器一起完成service的负载均衡,和HelloFeign不同的是,我这里采用RestTemplate来实现http调用,熔断器生效会调用helloError方法;
ServiceRibbon:开启负载均衡组件功能的service启动类;
5.demo-servicezuul:springcloud网关组件,我们都知道在微服务架构中,系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?难道要一个个的去调用吗?很显然这是不太实际的,我们需要有一个统一的接口与这些微服务打交道,这就是我们需要服务网关的原因。
ServiceZuul:网关组件启动程序,注意这些注解;
这几个模块的启动顺序,先启动注册中心,再启动服务生产者,然后是负载均衡和服务消费者,如果配了网关的话,再启动服务消费者之前也把网关组件启动;
一个springcloud入门案例
最新推荐文章于 2024-08-01 15:59:13 发布