springboot整合eureka,服務相互呼叫簡單示例
eureka可作為微服務之間的註冊中心,服務提供者在註冊中心註冊自己的服務,包含ip地址,埠號,消費者在註冊中心訂閱需要消費的服務,以下做簡單示例
1:搭建Eureka註冊中心
引入Eureka依賴:
<!--@1:Spring Cloud 的 eureka-server 起步依賴 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
注意:springboot的版本要和springcloud的版本相對應,否則啟動報錯
進行屬性配置:
# 內嵌定時 tomcat 的埠
server.port=8762
# 設定該服務註冊中心的 hostname
eureka.instance.hostname=localhost
# 由於我們目前建立的應用是一個服務註冊中心,而不是普通的應用,預設情況下,這個應用會向注
#冊中心(也是它自己)註冊它自己,設定為 false 表示禁止這種自己向自己註冊的預設行為
eureka.client.register-with-eureka=false
# 表示不去檢索其他的服務,因為服務註冊中心本身的職責就是維護服務例項,它不需要去檢索其他
#服務
eureka.client.fetch-registry=false
# 指定服務註冊中心的位置
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka
在服務入口處開啟eureka服務端(註冊中心):@EnableEurekaServer
@SpringBootApplication
@EnableEurekaServer//enreka服務端註冊中心開啟
public class SpringcloudEurakeApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcloudEurakeApplication.class, args);
}
}
啟動服務:可在後臺檢視分中心掛載的服務資訊
http://localhost:8762/
2:提供者註冊服務
引入eureka客戶端依賴:
<!--SpringCloud 整合 eureka 客戶端的起步依賴 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
配置配置檔案屬性:
#註冊到服務中心
eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/
執行入口處加入註解:
@SpringBootApplication
@MapperScan(basePackages = "com.qingnian.spring.dao")
@EnableSwagger2
@EnableEurekaClient//開啟客戶端註冊
public class SpringbootRedisApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootRedisApplication.class, args);
}
}
啟動之後可以看到服務的掛載:
3:註冊消費者服務,實現對提供者的呼叫
引入pom依賴:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--feign外部呼叫依賴-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
<version>1.4.5.RELEASE</version>
</dependency>
<!--Spring Cloud 熔斷器起步依賴 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
<version>1.4.5.RELEASE</version>
</dependency>
配置檔案配置:
server.port=8083
#註冊到服務中心
eureka.client.service-url.defaultZone=http://127.0.0.1:8762/eureka/
#開啟服務熔斷
feign.hystrix.enabled=true
主執行類註解開啟:
@SpringBootApplication
@EnableFeignClients //開啟 Spring Cloud Feign的支援功能
@EnableEurekaClient//開啟客戶端註冊
public class SpringcloudFeignApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcloudFeignApplication.class, args);
}
}
使用feign進行服務之間的呼叫:fallback表示回撥類,當程式碼出錯時,自動調取回撥類對應繼承的該方法的邏輯
@FeignClient(name="sprinboot-redis",fallback = FallBack.class)
public interface StudentService {
@RequestMapping("/swagger/get/all")
public String getAllInfo();
}
回撥類:也需要實現feign介面
@Component
public class FallBack implements StudentService {
@Override
public String getAllInfo() {
return "調取失敗,進行服務降級";
}
}
控制層可以直接調取feign暴露的介面:
@RestController
public class StudentController {
@Autowired
private StudentService studentService;
@RequestMapping("allStudent")
public String getAllStudent(){
return studentService.getAllInfo();
}
}
這樣就可以實現服務之間的相互呼叫
相關文章
- 初識Spring Cloud Eureka(三)(Eureka客戶端之間 服務的相互呼叫)SpringCloud客戶端
- eureka踩過的坑之註冊服務相互之間呼叫
- eureka如何管理服務呼叫
- eureka服務之間呼叫(3)
- RabbitMQ簡介以及與SpringBoot整合示例MQSpring Boot
- SpringBoot整合Tomcat服務Spring BootTomcat
- eureka實現服務之間的呼叫
- 服務註冊與發現【Eureka】- Eureka簡介
- 讓服務呼叫更簡單 - Caller.HttpClientHTTPclient
- 通過Eureka中已經註冊的服務名,呼叫服務
- sbc(二)高可用Eureka+宣告式服務呼叫
- SpringCloud元件: GateWay整合Eureka轉發服務請求SpringGCCloud元件Gateway
- [SpringCloud教程]3. Eureka服務註冊中心整合SpringGCCloud
- JavaB2B2C多使用者商城springboot架構-SpringCloud服務相互呼叫RestTemplateJavaSpring Boot架構GCCloudREST
- SpringBoot+Eureka註冊中心+Feign進行微服務之間呼叫Spring Boot微服務
- 最簡單的SpringBoot整合MyBatis教程Spring BootMyBatis
- 微服務之間的相互呼叫微服務
- python示例 呼叫影象識別服務識別影象Python
- Eureka實現微服務的呼叫微服務
- Eureka微服務之間呼叫-feign微服務
- Eureka的微服務之間呼叫微服務
- 服務註冊-Eureka
- 單元/整合測試服務
- 最簡單的SpringBoot示例之.yml配置檔案Spring Boot
- 使用SpringBoot+Dubbo搭建一個簡單的分散式服務Spring Boot分散式
- springboot系列文章之 整合redis 服務 (Lettuce & Jedis)Spring BootRedis
- Eureka-實現微服務的呼叫微服務
- linux下定時任務的簡單示例Linux
- 服務治理: Spring Cloud EurekaSpringCloud
- SpringBoot整合Kafka(生產者和消費者都是SpringBoot服務)Spring BootKafka
- 微服務之Eureka服務發現微服務
- SpringBoot開發案例之整合Dubbo分散式服務Spring Boot分散式
- SpringBoot快速整合SpringBootAdmin管控臺監控服務Spring Boot
- SpringBoot整合MongoDB(實現一個簡單快取)Spring BootMongoDB快取
- Kafka 簡介 & 整合 SpringBootKafkaSpring Boot
- SpringBoot極簡整合ShiroSpring Boot
- 企業分散式微服務雲SpringCloud SpringBoot mybatis -服務提供與呼叫分散式微服務GCCloudSpring BootMyBatis
- 簡單優化容器服務優化