Eureka Client的使用

之前我们讲了注册中心,也就是Eureka Server的使用,我们来讲一下服务注册,Eureka Client的使用,

基本上第一件事就是把Eureka Server给启动起来

nohup java -jar eureka-0.0.1-SNAPSHOT.jar &

10.40.8.152:8761

这就方便了不用每次都去启动它

kill -9 4681

我们要把一个应用注册到一个应用中心去,那你要往哪个地址注册,你总得配置一下,不然我怎么知道往哪注册呢,

eureka.client.serviceUrl.defaultZone=http://admin:1234@localhost:8761/eureka

在启动类上加注解@EnableEurekaClient

@EnableEurekaClient
@SpringBootApplication
public class ClientApplication {

	public static void main(String[] args) {
		SpringApplication.run(ClientApplication.class, args);
	}
}

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@EnableDiscoveryClient
public @interface EnableEurekaClient {

}

奇怪的是这个应用名怎么叫UNKNOWN,我们来改一下名字

spring.application.name=client

这就是修改应用的名字

有的时候我们希望点过来是另外一个地址,他不是这个IP,这个我们怎么做到自定义呢

http://10.40.8.144:7900/info

配置里面有这么一个属性

eureka.instance.hostname=clientName

emergency! eureka may be incorrectly claiming instances are up when they're not. 

renewals are lesser than threshold and hence the instances are not being expired just to be safe.

如果你不停的重启,会导致一个什么问题呢,可能会出现一串警告了,Eureka Server端和这些应用,Client端他们

采用的是心跳的机制,Server端会不停的去检查,Client端是否还存活,那么他会在一定的时间统计出来,上线率,

就是一个比例,定义某个比例的时候呢,就会爆出这么一个警告,意思就是说,你这个client上线率太低了,可能我都

不知道你是上线还是下线,那么怎么办呢,那么我就当做你是上线,就是宁可信其有,不可信其无,这其实是他的一种

自我保护的模式,当然在开发环境,可以把它给关掉,避免你以后要来调用这个微服务的时候,这上面展示的在线,

实际上他已经是下线状态了,所以开发环境我们最好给他关掉

eureka.server.enableSelfPreservation=false

这个配置你只能在开发环境把它关闭,生产环境一定不要这么来设置,你要往哪个注册地址去注册,你要配置上的,

配置完了启动了,其实还是不能注册上去,你要在启动主类上加上注解@EnableEurekaClient,然后再看看我们的配置,

你如果有需要的话呢,可以加上,给他起一个别名,另外应用的名字你最好给他写上,不然应用的名字显示的就是UNKNOWN,

Eureka Server的自我保护,开发环境你可以把它给关闭,这样方便以后我们做微服务的调用,不会出错
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.learn</groupId>
	<artifactId>client</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

  <parent>
    <groupId>cn.learn</groupId>
    <artifactId>microcloud02</artifactId>
    <version>0.0.1</version>
  </parent>
  
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<thymeleaf.version>3.0.9.RELEASE</thymeleaf.version>
		<thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialect.version>
	</properties>
	
	<dependencies>
		<!-- Spring Boot进行单元测试的模块 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency>
	</dependencies>
	
	<!-- 这个插件,可以将应用打包成一个可执行的jar包 -->
	<build>
	    <plugins>
	        <plugin>
	            <groupId>org.springframework.boot</groupId>
	            <artifactId>spring-boot-maven-plugin</artifactId>
	        </plugin>
	    </plugins>
	</build>
  
  
</project>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>cn.learn</groupId>
    <artifactId>microcloud02</artifactId>
    <version>0.0.1</version>
    <packaging>pom</packaging>
    <name>microcloud02</name>
    <url>http://maven.apache.org</url>
    
	<!-- <modules>
		<module>microservice-hystrix-dashboard</module>
	</modules> -->
    
    <properties>
        <jdk.version>1.8</jdk.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>    
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>    <!-- SpringCloud离不开SpringBoot,所以必须要配置此依赖包 -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>1.5.12.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
	<!-- <build>
	    <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
	    </plugins>
	  </build> -->
    
</project>
#debug=true
server.port=7900

logging.level.com.learn=trace
logging.file=springboot.log
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n
logging.pattern.file=%d{yyyy-MM-dd} ==== [%thread] %-5level ==== %logger{50} ==== %msg%n

eureka.client.serviceUrl.defaultZone=http://admin:1234@10.40.8.152:8761/eureka

spring.application.name=client
eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.ipAddress}:${spring.application.instance_id:${server.port}}
#eureka.instance.hostname=clientName
package com.learn.cloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@EnableEurekaClient
@SpringBootApplication
public class ClientApplication {

	public static void main(String[] args) {
		SpringApplication.run(ClientApplication.class, args);
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值