pom文件(由于与spirngmvc的项目jar冲突 ,我们把其中2个jar拆除掉)
<dependency>
<groupId>com.netflix.eureka</groupId>
<artifactId>eureka-client</artifactId>
<version>1.4.12</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</exclusion>
</exclusions>
</dependency>
package com.kiiik.pub.service;
import java.util.concurrent.TimeUnit;
import com.netflix.appinfo.ApplicationInfoManager;
import com.netflix.appinfo.InstanceInfo;
import com.netflix.appinfo.InstanceInfo.InstanceStatus;
import com.netflix.config.DynamicPropertyFactory;
import com.netflix.discovery.DefaultEurekaClientConfig;
import com.netflix.discovery.DiscoveryManager;
/**
* 通过配置文件config注册指定的服务
* @author chenyuanbao
*
*/
@SuppressWarnings("deprecation")
public class EurekaClientManual {
private static final DynamicPropertyFactory configInstance = DynamicPropertyFactory.getInstance();
public void registerWithEureka(String ip,String showName) {
DiscoveryManager.getInstance().initComponent(new MyInstanceConfig(ip,showName)
, new DefaultEurekaClientConfig());
ApplicationInfoManager.getInstance().setInstanceStatus(InstanceStatus.UP);
String vipAddress = configInstance.getStringProperty("eureka.vipAddress", "localhost").get();
InstanceInfo nextServerInfo = null;
while (nextServerInfo == null) {
try {
nextServerInfo = DiscoveryManager
.getInstance()
.getDiscoveryClient()
.getNextServerFromEureka(vipAddress,
false);
} catch (Throwable e) {
System.out.println("Waiting for service to register with eureka..");
try {
Thread.sleep(10000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
}
System.out.println("Service started and ready to process requests..");
}
public void unRegisterWithEureka() {
DiscoveryManager.getInstance().shutdownComponent();
}
public static void main(String args[]) {
final EurekaClientManual sampleEurekaService = new EurekaClientManual();
sampleEurekaService.registerWithEureka("192.168.29.28",null);
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
@Override
public void run()
{
//sampleEurekaService.unRegisterWithEureka();
System.out.println("Execute Hook.....");
}
}));
try
{
TimeUnit.MILLISECONDS.sleep(5000);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
package com.kiiik.pub.service;
import com.netflix.appinfo.MyDataCenterInstanceConfig;
public class MyInstanceConfig extends MyDataCenterInstanceConfig {
private String ip;
public String showName;
MyInstanceConfig(String ip, String showName) {
this.ip = ip;
this.showName = showName;
}
@Override
public String getHostName(boolean refresh) {
return ip;// eureka的服务列表的显示名称
}
}
配置文件信息如下 名称为eureka-client.properties或者config.properties:
#timezone
eureka.region=default
#cur web server serviceId
eureka.name=not-boot-service
#cur web server port
eureka.port=8123
#eureka server infor
eureka.serviceUrl.default=http://224:224@localhost:8887/eureka/
eureka.vipAddress=www.iechenyb.cn
eureka.shouldUseDns=false
eureka.preferSameZone=true
eureka.us-east-1.availabilityZones=default
eureka.instance-id=858545155