Eureka(服务发现组件 )
Eureka是Netflflix开发的服务发现框架,SpringCloud将它集成在自己的子项目spring-cloud-netflflix中,实现
SpringCloud的服务发现功能。Eureka包含两个组件:Eureka Server和Eureka Client。
Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中
的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也就别一个内置的、使用轮
询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳,默认周期为30秒,
如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个
服务节点移除(默认90秒)。
1.创建一个Eureka服务父工程用于子工程的服务注册
依赖
<!--eureka server 服务端--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
启动类的注解
/** * EureKa 服务端启动类 */ @SpringBootApplication @EnableEureKaServer public class eurekaServer { public static void main(String[] args) { SpringApplication.run(eurekaServer.class,args); } }
配置yml
#eureka服务的配置文件
server:
port: 6868 #服务端口
eureka:
client:
registerWithEureka: false #是否将自己注册到Eureka服务中,本身就是所有无需注册
fetchRegistry: false #是否从Eureka中获取注册信息
serviceUrl: #Eureka客户端与Eureka服务端进行交互的地址
defaultZone: http://127.0.0.1:${server.port}/eureka/
2.所有maven的父工程中引入 定义SpringCloud版本
<!--父工程 EureKa--> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Finchley.SR1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
3.需要注册到Eureka 的微服务模块
依赖
<!-- eureka 客户端依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
注解
package com.zhao.company; import com.common.utils.IdWorker; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.annotation.Bean; //springboot的包扫描 @SpringBootApplication(scanBasePackages = "com")//如果改成这样 com.zhao.company就只是扫描company模块下的接口了 //配置jpa注解的扫描 ,扫描的是common_model的这个工程下的实体类 @EntityScan(value = "com.domain.company") //注册到 EureKa @EnableEureKaClient public class Application extends SpringBootServletInitializer { /** * 启动方法 */ public static void main(String[] args) { SpringApplication.run(Application.class,args); } @Bean public IdWorker idWorker(){ return new IdWorker(); } /** *将项目打成war包 * @param builder * @return */ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Application.class); } }
yml文件
#微服务注册到eureka配置
eureka:
client:
service-url:
defaultZone: http://localhost:6868/eureka/

浙公网安备 33010602011771号