關于eureka注冊中心搭建以及叢集搭建
此代碼是一個注冊中心,一個調用者和一個被調用者完整的執行個體
父工程pom.xml省略了
- eureka注冊中心 pom.xml
<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>
<parent>
<groupId>cn.lexed</groupId>
<artifactId>SpringCloud-Server810</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>SpringCloud-EurekaServer810</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
</project>
application.yml
server:
port: 8001
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://localhost:8001/eureka/
spring:
application:
name: server810
啟動配置類:
@SpringBootApplication
@EnableEurekaServer
public class Application810 {
/**
* @Title: main
* @Description: TODO
* @param @param args
* @return void
* @throws
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SpringApplication.run(Application810.class, args);
}
}
被調用者
- pom.xml
<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>
<parent>
<groupId>cn.lexed</groupId>
<artifactId>SpringCloud-Server810</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>SpringCloud-Service810</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
</project>
application.yml
server:
port: 8002
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/msc_test?useUnicode=true&characterEncoding=utf-8
username: root
password: root
jpa:
hibernate:
ddl-auto: update
application:
name: server811
eureka:
client:
service-url:
defaultZone: http://localhost:8001/eureka/
@SpringBootApplication
public class ApplicationService810 {
/**
* @Title: main
* @Description: TODO
* @param @param args
* @return void
* @throws
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SpringApplication.run(ApplicationService810.class, args);
}
}
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userservice;
@RequestMapping(value ="/save")
public boolean save(User user) {
try {
User user1=new User(1,"張飛","aaa","男","南京");
User user2=new User(2,"安琪拉","bbb","女","宿豫");
User user3=new User(3,"花木蘭","ccc","女","泗縣");
userservice.save(user1);
userservice.save(user2);
userservice.save(user3);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
@GetMapping(value="/list")
public List<User> list(){
return userservice.list();
}
@GetMapping(value="/get/{id}")
public User getStudent(@PathVariable("id") Integer id){
return userservice.findById(id);
}
@GetMapping(value="/delete/{id}")
public boolean delete(@PathVariable("id") Integer id){
try{
userservice.delete(id);
return true;
}catch(Exception e){
e.printStackTrace();
return false;
}
}
}
- 調用者
- pom.xml
<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>
<parent>
<groupId>cn.lexed</groupId>
<artifactId>SpringCloud-Server810</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>SpringCloud-Client810</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
</project>
啟動類
@SpringBootApplication
public class ApplicationClient810 {
/**
* @Title: main
* @Description: TODO
* @param @param args
* @return void
* @throws
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SpringApplication.run(ApplicationClient810.class, args);
}
@Bean()
@LoadBalanced
public RestTemplate restTemplate1(){
return new RestTemplate();
}
}
server:
port: 8003
eureka:
client:
service-url:
defaultZone: http://localhost:8001/eureka/
spring:
application:
name: server810
@RestController
@RequestMapping("/client")
public class MyController {
@Autowired
private RestTemplate restTemplate;
@GetMapping("{id}")
public User show(@PathVariable("id")Integer id){
String u_url="http://server811/user/get/"+id;
User user=restTemplate.getForObject(u_url, User.class);
System.out.println(user);
System.out.println(u_url);
return user;
}
@GetMapping("index2")
public User[] All(){
String u_url="http://service-server1/user/list";
System.out.println(u_url);
//ResponseEntity<List<User>> list = restTemplate.exchange(u_url,HttpMethod. POST,requestEntity, new ParameterizedTypeReference<List<User>>(){});
User[] list=restTemplate.getForObject(u_url,User[].class);
return list;
}
-
調用者查詢全部資料時候用數組形式調:
User[] list=restTemplate.getForObject(u_url,User[].class);
-
在調用者拿被調用者資料時候出現http位址錯誤,改為以下可以解決
String u_url="http://server811/user/get/"+id;