Eureka實現微服務的呼叫
1、版本
2、Eureka的註冊中心
(1)、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>
<groupId>org.crazyit.cloud</groupId>
<artifactId>first-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--版本控制 Dalston.SR3 ===》1.3.3.RELEASE -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!--與SpringCloud配置相關-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!--Eureka的伺服器(註冊中心)-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
</project>
(2)、編寫啟動類
package org.crazyit.cloud;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
/*開啟Eureka的註冊中心*/
@EnableEurekaServer
public class ServerApp {
public static void main(String[] args) {
new SpringApplicationBuilder(ServerApp.class).web(true).run(args);
}
}
(3)、配置檔案(1、不去註冊中心註冊自己 2、不去註冊中心抓取服務檔案)
server:
port: 8761
eureka:
client:
#不去註冊中心註冊自己(自己就是服務中心)
register-with-eureka: false
#不去註冊中心抓取服務檔案(自己就是服務中心)
fetch-registry: false
(4)、啟動測試
直接執行main
3、服務提供者
(1)、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>
<groupId>org.crazyit.cloud</groupId>
<artifactId>first-police</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--定義版本-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!--SpringCloud的配置-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!--Eureka服務-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
</dependencies>
</project>
(2)、編寫啟動類
package org.crazyit.cloud;
public class Police {
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package org.crazyit.cloud;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@SpringBootApplication
/*開啟Eureka客戶端*/
@EnableEurekaClient
public class PoliceServer {
public static void main(String[] args) {
new SpringApplicationBuilder(PoliceServer.class).web(true).run(args);
}
}
(3)、配置檔案(1、註冊的服務名稱 2、註冊中心的地址)
spring:
application:
#Eureka服務名稱
name: first-police
eureka:
client:
serviceUrl:
#Eureka的註冊中心
defaultZone: http://localhost:8761/eureka/
(4)、編寫服務
package org.crazyit.cloud;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
* 服務提供者
*/
@RestController
public class PoliceController {
@RequestMapping(value = "/call/{id}", method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
public Police call(@PathVariable Integer id) {
Police p = new Police();
p.setId(id);
p.setName("angus");
return p;
}
}
(5)、啟動測試
直接執行main
4、服務消費者
(1)、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>
<groupId>org.crazyit.cloud</groupId>
<artifactId>first-person</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--定義版本-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!--SpringCloud的配置-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!--Eureka-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<!--Ribbon-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
</dependencies>
</project>
(2)、編寫啟動類
package org.crazyit.cloud;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@SpringBootApplication
/*開啟Eureka的服務端*/
@EnableEurekaClient
public class PersonServer {
public static void main(String[] args) {
new SpringApplicationBuilder(PersonServer.class).web(true).run(args);
}
}
(3)、配置檔案(1、註冊的服務名稱 2、註冊中心的地址)
package org.crazyit.cloud;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.client.RestTemplate;
@Controller
/*載入RestTemplate的配置*/
@Configuration
public class TestController {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
@GetMapping("/router")
@ResponseBody
public String router() {
RestTemplate tpl = getRestTemplate();
//到註冊中心找服務並呼叫服務
String json = tpl.getForObject("http://first-police/call/1", String.class);
return json;
}
}
(4)、編寫服務
package org.crazyit.cloud;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.client.RestTemplate;
@Controller
/*載入RestTemplate的配置*/
@Configuration
public class TestController {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
@GetMapping("/router")
@ResponseBody
public String router() {
RestTemplate tpl = getRestTemplate();
//到註冊中心找服務並呼叫服務
String json = tpl.getForObject("http://first-police/call/1", String.class);
return json;
}
}
(5)、啟動測試
相關文章
- Eureka-實現微服務的呼叫微服務
- 【Spring Cloud】Eureka實現微服務釋出與呼叫SpringCloud微服務
- Eureka的微服務之間呼叫微服務
- Eureka微服務之間呼叫-feign微服務
- eureka實現服務之間的呼叫
- 129、springcloud-eureka-client微服務的互相呼叫SpringGCCloudclient微服務
- Spring Cloud微服務-基於Eureka的feign呼叫(1)SpringCloud微服務
- 微服務之Eureka服務發現微服務
- 二、Spring Cloud 之旅 -- Eureka 微服務的釋出與呼叫SpringCloud微服務
- 微服務學習小結-Eureka如何實現註冊中心,以及服務之間的註冊、呼叫微服務
- Spring Cloud+ Eureka微服務基礎專案搭建(已實現呼叫增刪改查微服務,持續更新)SpringCloud微服務
- SpringCloud-微服務的註冊與發現EurekaSpringGCCloud微服務
- 呼叫註冊到eureka server上的微服務,通過微服務名字呼叫,獲取服務例項慢或者失敗的問題Server微服務
- SpringBoot+Eureka註冊中心+Feign進行微服務之間呼叫Spring Boot微服務
- eureka如何管理服務呼叫
- 微服務之springcloud eureka(一)微服務SpringGCCloud
- springcloud 微服務 之 Eureka 配置SpringGCCloud微服務
- SpringCloud包含的微服務介紹--EurekaSpringGCCloud微服務
- 基於OpenTelemetry實現Java微服務呼叫鏈跟蹤Java微服務
- eureka服務之間呼叫(3)
- 實現微服務預熱呼叫之後再開始服務(上)微服務
- 實現微服務預熱呼叫之後再開始服務(下)微服務
- SpringCloud——Eureka-微服務的註冊中心SpringGCCloud微服務
- 【SpringCloud】微服務Eureka高可用配置SpringGCCloud微服務
- php+nginx實現最簡單的遠端呼叫rpc(微服務)PHPNginxRPC微服務
- SpringCloud實戰 | 第五篇:SpringCloud整合OpenFeign實現微服務之間的呼叫SpringGCCloud微服務
- 基於Springboot+Dubbo+Nacos 註解方式實現微服務呼叫Spring Boot微服務
- Eureka實現服務註冊與發現
- 微服務之間的相互呼叫微服務
- 微服務互相呼叫-Feign微服務
- 微服務呼叫元件 Feign微服務元件
- 微服務註冊中心 Nacos 比 Eureka的優勢微服務
- Spring Cloud之微服務之間相互呼叫、如何讓一個微服務呼叫另外一個微服務SpringCloud微服務
- 企業分散式微服務雲SpringCloud SpringBoot mybatis -服務的註冊與發現(Eureka)分散式微服務GCCloudSpring BootMyBatis
- 初識Spring Cloud Eureka(三)(Eureka客戶端之間 服務的相互呼叫)SpringCloud客戶端
- 微服務實戰系列(五)-註冊中心Eureka與nacos區別微服務
- springboot整合eureka,服務相互呼叫簡單示例Spring Boot
- Spring Cloud Eureka 實現服務註冊與發現SpringCloud