Eureka使用
创建moudle
pom文件上导入依赖
父工程定义版本
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR10</spring-cloud.version>
<mysql.version>5.1.47</mysql.version>
<mybatis.version>2.1.1</mybatis.version>
</properties>
模块导入
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
在启动类添加注解
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication
{
public static void main( String[] args )
{
SpringApplication.run(EurekaApplication.class, args);
}
}
配置yml文件
server:
port: 10086
spring:
application:
name: eurekaserver
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:10086/eureka
其他项目中:
1.引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2.在yml中加入服务
spring:
application:
name: userservice服务名
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:10086/eureka//注册eureka
添加多个项目实例
更改名字,modify-options选择vm options设置端口!
修改服务
1.将服务url名用服务名代替,String url="http://userservice/user/"+order.getUserId();
Ribbon负载均衡
-
在RestTemplete中加入@LoadBalanced注解负载均衡注解
-
LoadBalanced默认选择离他最近的服务,可以实现IRule进行随机选择(全局)
@Bean public IRule randomRule(){return new RandomRule()}
4.在order-service的application.yml中,添加新的配置也可以修改规则:(当前微服务)
userservice:
ribbon:
NFLoadBalancerRuleClassName:com.netflix.loadbalancer.RandomRule#负载均衡规则
饥饿加载
ribbon:
eager-load:
enabled: true#开启饥饿加载
clients:#指定单个对userservice这个服务饥饿加载
-userservice