本文共 2979 字,大约阅读时间需要 9 分钟。
本文将介绍如何在Spring Cloud框架下搭建微服务架构,涵盖从单个微服务的部署到Eureka注册中心的集群搭建,以及如何利用Ribbon和Feign实现服务的负载均衡和调用。
创建项目
首先,在IDE中创建一个新的Spring Boot项目,选择父项目为springcloud。 配置相关的POM依赖
在项目的pom.xml文件中添加必要的依赖项,包括: 配置服务提供者的YAML文件
在application.yml中进行以下配置: server: port: 8001mybatis: config-location: classpath:mybatis/mybatis.cfg.xml type-aliases-package: com.zq.cloudapi.entitiesspring: application: name: microservicecloud-dept datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: org.gjt.mm.mysql.Driver url: jdbc:mysql://localhost:3306/cloudDB01 username: root password: 123456 dbcp2: min-idle: 5 initial-size: 5 max-total: 5 max-wait-millis: 200eureka: client: service-url: defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka instance: instance-id: microservicecloud-dept8001 prefer-ip-address: true
这些配置文件将定义服务提供者的端口、MyBatis配置、数据源池以及与Eureka注册中心的连接信息。
创建项目
创建一个新的Spring Boot项目,选择父项目为springcloud。 配置POM文件
在pom.xml中添加Eureka的依赖项和相关插件: org.springframework.cloud spring-cloud-starter-eureka-server 1.3.3 com.alibaba druid-spring 1.1.4
编写配置文件
在application.yml中进行以下配置: server: port: 7001eureka: instance: hostname: eureka7001.com client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka
这些配置文件将配置Eureka服务端的端口号、实例ID以及与其他Eureka服务的通信信息。
创建项目
创建三个类似的项目,分别配置不同的Eureka实例。配置POM文件
在每个项目的pom.xml中添加Eureka的依赖项和插件配置: org.springframework.cloud spring-cloud-starter-eureka-server 1.3.3
配置YAML文件
在每个项目的application.yml中进行以下配置: server: port: 7001eureka: instance: hostname: eureka7001.com client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka
总结
Eureka集群的搭建需要创建三个项目,分别配置相应的YAML文件,确保每个Eureka实例能够与其他实例通信。Ribbon作为客户端负载均衡器,首先通过Eureka服务中心注入相应的服务信息,采用预定义的算法(如轮询)进行负载均衡。
通过创建多个服务提供者实例,分别修改pom.xml和application.yml文件即可实现负载均衡。默认采用轮询算法。
Ribbon支持多种算法,包括:
IRule接口)@Configuration类中添加@LoadBalanced注解,表示启用负载均衡。@Bean注解自定义负载均衡规则。IRule接口,开发自定义的负载均衡算法。Feign是一个基于Ribbon的客户端负载均衡工具,支持通过注解方式定义接口,实现与服务提供者的调用。Feign的特点是:
通过@FeignClient注解可以轻松定义服务调用接口,利用Ribbon的负载均衡功能实现服务的高效调用。
转载地址:http://qchfk.baihongyu.com/