一.创建Eureka Server提供服务注册服务
创建Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
选择框架时使用Spring Web和Eureka Server
配置文件如下:
同时在EurekaServerApplication类中使用 @EnableEurekaServer 来说明项目是一个 Eureka
运行 EurekaServerApplication类,启动项目,访问项目 http://localhost:8001/
二.创建服务提供者
选择spring web,Eureka Discovery Client,mysql driver,mybatis framework.
SQL组件是用于连接mysql数据库
创建数据库表
在项目的启动类中
新建实体类User.java
创建DAO层
创建service层
建控制层:UserController .java
配置文件修改:application.properties
多个服务提供者,修改端口号
在resources下新增mapper文件夹,这个文件夹名称对应application.properties文件中mybatis.mapperLocations=classpath的配置,mapper文件夹下添加映射文件:UserDaoMapper.xml
注意mapper严格的格式,空格,对齐等,同时与dao层的方法对应
测一下增删改查的各个基本功能
http://localhost:8002/user/userList
可以按照上面的方法,修改端口号,建多个服务提供者
三.服务消费者 - Ribbon+Hystrix
ribbon 实现了负载均衡,策略默认为轮询
创建一个工程,选择组件Spring Web,Spring Cloud Discovery中的Eureka Client、Routing中Ribbon和Spring Cloud Circuit Breaker 中的Hystrix
application.properties配置
启动类新增@EnableEurekaClient注解,加 @EnableHystrix 注解开启Hystrix,向 Spring 注入一个 bean: restTemplate,并添加 @LoadBalanced 注解,表明这个 restTemplate 开启负载均衡功能
如 上图所示:实体类与服务提供者一样
新建服务层service:UserService
新建控制层controller:UserControler
启动项目
会出现轮询,同时可以使用增删改查
出现错误会执行,如果服务提供者都没有启用,会出现错误
本文参考:一、搭建springboot+springcloud分布式项目实现增删改查功能,内附源代码 - 简书 (jianshu.com)的相关方法