springcloud ----Eureka

Eureka分为客户端和服务端,服务端可以将服务注册到Eureka中心,并提供监控;客户端可以注册到Eureka中心,以便其他服务可以通过Eureka搜索到以及调用

本实例为springcloud的项目结构,所有服务都继承自maven的父工程

一 服务端搭建(Eureka的module)

1 在Eureka模块中添加Eureka Server的依赖

<!--eureka-server服务端 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka-server</artifactId>
		</dependency>

2 yml配置文件中配置Eureka相关信息

server: 
  port: 7001
 
eureka: 
  instance:
    hostname: eureka7001.com #eureka服务端的实例名称
  client: 
    register-with-eureka: false     #false表示不向注册中心注册自己。
    fetch-registry: false     #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url: 
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/       #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
      #defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
     

3 在启动类上添加 @EnableEurekaServer注解,标志该服务为Eureka服务端

二 客户端创建

 1 客户端模块中添加Eureka Client依赖

<!-- 将微服务provider侧注册进eureka -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>

2  yml配置文件中配置 要注册到的Eureka中心地址

eureka:
  client: #客户端注册进eureka服务列表内
    service-url: 
      defaultZone: http://localhost:7001/eureka
      #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     #访问路径可以显示IP地址     
 

其中:

instance-id: microservicecloud-dept8001 是指定该服务暴露的名称为microservicecloud-dept8001,

prefer-ip-address: true     在Eureka中心,访问路径可以显示IP地址   

3 在启动类上添加@EnableEurekaClient注解,标志该服务为Eureka Client,会自动注册到配置好的Eureka中心去

Info内容详细信息

这时候,访问Eureka监控页面,可以看到已注册的服务,但是点开服务详情页没有相关信息,

下面来解决该问题

1 Client服务中添加springboot的监控依赖

<!-- actuator监控信息完善 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>

2 父工程中添加build信息

<build>
		<finalName>microservicecloud</finalName>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>true</filtering>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<configuration>
					<delimiters>
						<delimit>$</delimit>
					</delimiters>
				</configuration>
			</plugin>
		</plugins>
	</build>

3 在Client的yml配置文件配置info信息

info: 
  app.name: zgq-microservicecloud
  company.name: www.xxx.com
  build.artifactId: $project.artifactId$
  build.version: $project.version$

配置完这些之后,再次点开Eureka的管理中心,点开Eureka Client的info信息,就会显示如下信息,就是上面配置的信息

{
    "app": {
        "name": "zgq-microservicecloud"
    },
    "company": {
        "name": "www.xxx.com"
    },
    "build": {
        "artifactId": "microservicecloud-provider-dept-8001",
        "version": "0.0.1-SNAPSHOT"
    }
}

猜你喜欢

转载自blog.csdn.net/zgq_hw/article/details/83964006