EurekaApplication.java
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurakaApplication.class, args);
}
}
application.yml(Eureka Server)
### application.yml
# 端口号
server:
port: 8088
spring:
application:
name: eureka
# 默认情况下,Eureka server也是一个普通的微服务,所以当它还是一个注册中心的时候,他会有两层身份:1.注册中心 2:普通服务
# 即当前服务会自己把自己注册到自己上面的来
# eureka.client.register-with-eureka设置为false表示当前项目不要注册到注册中心上
eureka:
client:
register-with-eureka: false
# 表示是否从Eureka server上获取注册信息
fetch-registry: false
application-a.yml(Eureka Server)
server:
port: 1111
spring:
application:
name: eureka
eureka:
instance:
hostname: eurekaA
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://eurekaB:1112/eureka
application-b.yml(Eureka Server)
server:
port: 1112
spring:
application:
name: eureka
eureka:
instance:
hostname: eurekaB
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://eurekaA:1111/eureka
application.yml(Eureka Client)
spring:
application:
name: provider
server:
port: 1113
eureka:
client:
service-url:
# 8088是application.yml(Eureka Server)的端口号
defaultZone: http://localhost:8088/eureka
HelloController.java
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "hello cloud";
}
}
application.yml(Eureka Consumer)
spring:
application:
name: consumer
server:
port: 1114
eureka:
client:
service-url:
defaultZone: http://localhost:8088/eureka
UseHelloController.java
package com.ll.consumer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
@RestController
public class UseHelloController {
@GetMapping("hello1")
public String hello1(){
HttpURLConnection conn=null;
URL url= null;
try {
url = new URL("http://localhost:1113/hello");
conn= (HttpURLConnection) url.openConnection();
if(conn.getResponseCode()==200){
BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream()));
String s=br.readLine();
br.close();
return s;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "error";
}
@Autowired
DiscoveryClient discoveryClient;
@GetMapping("hello2")
public String hello2(){
List<ServiceInstance> list = discoveryClient.getInstances("provider");
ServiceInstance instance = list.get(0);
String host = instance.getHost();
int port = instance.getPort();
HttpURLConnection conn=null;
StringBuffer buffer = new StringBuffer();
buffer.append("http://")
.append(host)
.append(":")
.append(port)
.append("/hello");
URL url= null;
try {
url = new URL(buffer.toString());
conn= (HttpURLConnection) url.openConnection();
if(conn.getResponseCode()==200){
BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream()));
String s=br.readLine();
br.close();
return s;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "error";
}
int count=0;
@GetMapping("hello3")
public String hello3(){
List<ServiceInstance> list = discoveryClient.getInstances("provider");
ServiceInstance instance = list.get((count++)% list.size());
String host = instance.getHost();
int port = instance.getPort();
HttpURLConnection conn=null;
StringBuffer buffer = new StringBuffer();
buffer.append("http://")
.append(host)
.append(":")
.append(port)
.append("/hello");
URL url= null;
try {
url = new URL(buffer.toString());
conn= (HttpURLConnection) url.openConnection();
if(conn.getResponseCode()==200){
BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream()));
String s=br.readLine();
br.close();
return s;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "error";
}
}
HelloController.java(集群化部署)
package com.ll.provider;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@Value("${server.port}")
Integer port;
@GetMapping("/hello")
public String hello(){
return "hello cloud"+port;
}
}
.java
.java
.java
.java
.java
.java
.java
.java
.java
.java
.java
.java
.java
.java