说明:本节案例的代码承接上节案例
1、远程调用的问题2、eureka原理(作用)
假如心跳续约检测到 user-service 8083 端口已经离线:
小结:
3、实战
3.1 搭建EurekaServer
3.1.1 创建项目 引入依赖
创建项目:
引入依赖:
pom.xml
3.1.2 编写启动类(main函数)添加@EnableEurekaServer注解
启动类 EurekaApplication.java
package cn.itcast.eureka;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;// 自动装配Eureka@EnableEurekaServer// 表明这是一个启动类@SpringBootApplicationpublic class EurekaApplication { public static void main(String[] args) { SpringApplication.run(EurekaApplication.class, args); }}
配置文件 application.yml
server: port: 10086 # 服务端口# 下面是为了做服务注册spring: application: name: eureka-server # eureka的服务名称(微服务的名称)eureka: client: service-url: # eureka的地址信息 因为eureka自己也是一个微服务,所以他会把自己也注册到eureka 这是为了以后eureka做集群。 defaultZone: http://127.0.0.1:10086/eureka
启动EurekaServer 看看效果:
小结:
3.2 服务注册
3.2.1 注册user-service
引入依赖:
注册user-service:
spring: application: name: user-serviceeureka: client: service-url: # eureka的地址信息 defaultZone: http://127.0.0.1:10086/eureka
3.2.2 注册order-service
引入依赖:
注册order-service:
spring: application: name: order-serviceeureka: client: service-url: # eureka的地址信息 defaultZone: http://127.0.0.1:10086/eureka
3.2.3 多次启动user-service 模拟多实例部署
3.2.4 启动测试
小结:
3.3 服务发现(拉取)
3.3.1 修改OrderService的代码,修改访问的url路径,用服务名代替ip、端口
3.3.2 在order-service项目的启动类OrderApplication中的RestTemplate添加负载均衡注解
3.3.3 启动测试
负载均衡说明:
2次查询走了2个微服务,合理的调度了资源。
4、小结