博客
关于我
SpringCloud搭建
阅读量:796 次
发布时间:2023-03-28

本文共 2979 字,大约阅读时间需要 9 分钟。

Spring Cloud 微服务搭建指南

环境简介

本文将介绍如何在Spring Cloud框架下搭建微服务架构,涵盖从单个微服务的部署到Eureka注册中心的集群搭建,以及如何利用Ribbon和Feign实现服务的负载均衡和调用。

微服务提供者搭建

  • 创建项目

    首先,在IDE中创建一个新的Spring Boot项目,选择父项目为springcloud

  • 配置相关的POM依赖

    在项目的pom.xml文件中添加必要的依赖项,包括:

    • Spring Boot Starter Web
    • Spring Boot Starter Data JPA
    • Spring Boot Starter Data JDBC
    • Alibaba Druid 数据源池
    • Eureka Discovery Client
  • 配置服务提供者的YAML文件

    application.yml中进行以下配置:

    server:
    port: 8001
    mybatis:
    config-location: classpath:mybatis/mybatis.cfg.xml
    type-aliases-package: com.zq.cloudapi.entities
    spring:
    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: 200
    eureka:
    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注册中心的连接信息。

  • 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: 7001
    eureka:
    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集群搭建

  • 创建项目

    创建三个类似的项目,分别配置不同的Eureka实例。

  • 配置POM文件

    在每个项目的pom.xml中添加Eureka的依赖项和插件配置:

    org.springframework.cloud
    spring-cloud-starter-eureka-server
    1.3.3
  • 配置YAML文件

    在每个项目的application.yml中进行以下配置:

    server:
    port: 7001
    eureka:
    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实例能够与其他实例通信。

  • Zookeeper与Eureka的区别

    • Zookeeper:采用CP模型(一致性与容错性),通过选举机制处理主节点故障,导致服务在短时间内无法访问。
    • Eureka:采用AP模型(高可用与容错性),支持自我保护机制,当注册中心出现故障时,能够自动切换到其他Eureka实例继续提供服务。

    Ribbon负载均衡

    Ribbon的使用原理

    Ribbon作为客户端负载均衡器,首先通过Eureka服务中心注入相应的服务信息,采用预定义的算法(如轮询)进行负载均衡。

    Ribbon负载均衡的实现

    通过创建多个服务提供者实例,分别修改pom.xmlapplication.yml文件即可实现负载均衡。默认采用轮询算法。

    Ribbon的算法

    Ribbon支持多种算法,包括:

    • 轮询(默认)
    • 随机
    • 重试
    • 自定义算法(通过实现IRule接口)

    Ribbon的使用

    • 默认配置:在@Configuration类中添加@LoadBalanced注解,表示启用负载均衡。
    • 指定算法:通过@Bean注解自定义负载均衡规则。
    • 自定义算法:实现IRule接口,开发自定义的负载均衡算法。

    Feign调用

    Feign是一个基于Ribbon的客户端负载均衡工具,支持通过注解方式定义接口,实现与服务提供者的调用。Feign的特点是:

    • 面向接口开发
    • 集成Ribbon和Hystrix
    • 简化服务调用

    通过@FeignClient注解可以轻松定义服务调用接口,利用Ribbon的负载均衡功能实现服务的高效调用。

    转载地址:http://qchfk.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现双向循环链表(附完整源码)
    查看>>
    Objective-C实现双向链表(附完整源码)
    查看>>
    Objective-C实现双端队列算法(附完整源码)
    查看>>
    Objective-C实现双线性插值(附完整源码)
    查看>>
    Objective-C实现双重链表(附完整源码)
    查看>>
    Objective-C实现反向传播神经网络算法(附完整源码)
    查看>>
    Objective-C实现反转位算法(附完整源码)
    查看>>
    Objective-C实现反转字符串算法(附完整源码)
    查看>>
    Objective-C实现合并两棵二叉树算法(附完整源码)
    查看>>
    Objective-C实现后缀表达式(附完整源码)
    查看>>
    Objective-C实现向量叉乘(附完整源码)
    查看>>
    Objective-C实现哈希查找(附完整源码)
    查看>>
    Objective-C实现哈希表算法(附完整源码)
    查看>>
    Objective-C实现哥德巴赫猜想(附完整源码)
    查看>>
    Objective-C实现唯一路径问题的动态编程方法的算法(附完整源码)
    查看>>
    Objective-C实现唯一路径问题的回溯方法的算法(附完整源码)
    查看>>
    Objective-C实现四舍五入(附完整源码)
    查看>>
    Objective-C实现四阶龙格库塔法(附完整源码)
    查看>>
    Objective-C实现四阶龙格库塔法(附完整源码)
    查看>>
    Objective-C实现回调实例(附完整源码)
    查看>>