spring cloud 2.x版本 Eureka Client服务提供者教程

mac2024-03-16  22

本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3

1 创建eureka client

1.1 新建Srping boot工程:eureka-client

1.2 pom.xml所需要依赖的jar包

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>

1.3 EurekaClientApplication添加注解@EnableEurekaClient

package spring.cloud.demoo.eurekaclient; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; @EnableEurekaClient @SpringBootApplication public class EurekaClientApplication { public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); } }

@EnableEurekaClient 向eureka服务中心注册服务(推荐使用),如果是其他服务注册中心,例如:consul、zookeeper,建议使用@EnableDiscoveryClient

1.4 添加application.yml配置内容

spring: application: name: eureka-client server: port: 8801 eureka: instance: hostname: localhost # 表示eureka client间隔多久去拉取服务注册信息,默认为30秒,如果要迅速获取服务注册状态,可以缩小该值 lease-renewal-interval-in-seconds: 5 # 表示eureka server至上一次收到client的心跳之后,等待下一次心跳的超时时间,在这个时间内若没收到下一次心跳,则将移除该instance。 # 默认为90秒 # 如果该值太大,则很可能将流量转发过去的时候,该instance已经不存活了。 # 如果该值设置太小了,则instance则很可能因为临时的网络抖动而被摘除掉。 # 该值至少应该大于 leaseRenewalIntervalInSeconds lease-expiration-duration-in-seconds: 10 client: service-url: defaultZone: http://localhost:8701/eureka/

配置中http://localhost:8701/eureka/ 调用eureka-server,可以参考: eureka-server注册中心搭建

1.5 创建测试controller:EurekaClientController

package spring.cloud.demoo.eurekaclient.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; /** * @auther: maomao * @DateT: 2019-09-17 */ @RestController public class EurekaClientController { @Value("${server.port}") private String port; @RequestMapping("/info") public String syaHello(HttpServletRequest request) { String message = request.getScheme() "://" request.getServerName() ":" request.getServerPort() request.getServletPath(); return message; } }

1.6 启动eureka-client服务

访问http://localhost:8801/info,并返回结果,如下图所示。

这时在访问服务注册中心,如果下入所示:

可以看到eureka-client已经注册到服务注册中心。

至此,一个简单的单机eureka client服务提供者就搭建完成。服务的提供者提供一个Restful服务。

彩蛋

eureka client集群的搭建

1.1 配置本地host文件

127.0.0.1 eureka1.client.com 127.0.0.1 eureka2.client.com 127.0.0.1 eureka3.client.com

1.2 增加application.yml配置文件

增加application-clinet1.yml和application-clinet2.yml文件,修改原application.yml文件。

application.yml spring: application: name: eureka-client server: port: 8801 eureka: instance: hostname: eureka1.client.com lease-renewal-interval-in-seconds: 5 lease-expiration-duration-in-seconds: 10 client: service-url: defaultZone: http://eureka1.server.com:8701/eureka/,http://eureka2.server.com:8702/eureka/,http://eureka3.server.com:8703/eureka/

application-client1.yml spring: application: name: eureka-client server: port: 8802 eureka: instance: hostname: eureka2.client.com lease-renewal-interval-in-seconds: 5 lease-expiration-duration-in-seconds: 10 client: service-url: defaultZone: http://eureka1.server.com:8701/eureka/,http://eureka2.server.com:8702/eureka/,http://eureka3.server.com:8703/eureka/

application-client2.yml spring: application: name: eureka-client server: port: 8803 eureka: instance: hostname: eureka3.client.com lease-renewal-interval-in-seconds: 5 lease-expiration-duration-in-seconds: 10 client: service-url: defaultZone: http://eureka1.server.com:8701/eureka/,http://eureka2.server.com:8702/eureka/,http://eureka3.server.com:8703/eureka/

1.3 分别启动eureka-client三个服务

分别访问http://eureka1.client.com:8801/info、http://eureka2.client.com:8802/info、 http://eureka3.client.com:8803/info显示结果如下:

此时打开服务注册中心,显示

截图中红框中代表三个client已经注册成功。

总结

本文简单实现了服务提供者单机和集群的搭建,后续继续更新其他关于spring cloud其他内容。

代码地址

gitHub地址

《Srping Cloud 2.X小白教程》目录

spring cloud 2.x版本 Eureka Server服务注册中心教程 spring cloud 2.x版本 Eureka Client服务提供者教程 spring cloud 2.x版本 Ribbon服务发现教程(内含集成Hystrix熔断机制) spring cloud 2.x版本 Feign服务发现教程(内含集成Hystrix熔断机制) spring cloud 2.x版本 Zuul路由网关教程 spring cloud 2.x版本 config分布式配置中心教程 spring cloud 2.x版本 Hystrix Dashboard断路器教程------

转载请注明出处,

联系方式:4272231@163.com
最新回复(0)