1. Spring Cloud Eureka 注册服务及调用
2. Spring Cloud Hystrix 断路器
3. Spring Cloud Hystrix 指标监控
4. Spring Cloud Config 配置中心
现在主流的开发平台是微服务架构,在众多的微服务开源项目中,Spring Cloud 非常具有代表性,但实现平台是基于 Java,那在 .NET Core 平台下,如何兼容实现 Spring Cloud 呢?答案就是 Steeltoe,或者你也可以自行实现,因为 Spring Cloud 各组件基本都是基于 REST HTTP 接口实现,你可以使用任何语言实现兼容。
关于 Steeltoe 的官方介绍:
Steeltoe is an open source project that enables .NET developers to implement industry standard best practices when building resilient microservices for the cloud. The Steeltoe client libraries enable .NET Core and .NET Framework apps to easily leverage Netflix Eureka, Hystrix, Spring Cloud Config Server, and Cloud Foundry services.
这边就不翻译了,需要注意的几点:
Netflix Eureka:服务注册中心,实现服务注册,以及服务发现调用。
Hystrix:断路器,实现熔断处理。
Spring Cloud Config Server:分布式配置中心,主要是读取配置中心的信息。
Cloud Foundry:开源 PaaS 云平台,Steeltoe 基本都运行在此平台上,运行在其他平台兼容不好。
另外,Steeltoe 不仅支持 .NET Core,还支持 .NET Framework(具体 ASP.NET 4.x 版本)。
1. Spring Cloud Eureka 注册服务及调用项目代码:https://github.com/yuezhongxin/Steeltoe.Samples/tree/master/Discovery-CircuitBreaker/AspDotNetCore
首先,需要部署一个或多个 Spring Cloud Eureka 服务注册中心,可以使用 Spring Boot 很方便进行实现,这边就不说了。
创建一个 APS.NET Core 应用程序(2.0 版本),然后 Nuget 安装程序包:
> install-package Pivotal.Discovery.ClientCore在appsettings.json配置文件中,增加下面配置:
{ "spring": { "application": { "name": "fortune-service" } }, "eureka": { "client": { "serviceUrl": "http://192.168.1.32:8100/eureka/", "shouldFetchRegistry": true, //Enable or disable registering as a service "shouldRegisterWithEureka": true, //Enable or disable discovering services "validate_certificates": false }, "instance": { //"hostName": "localhost", "port": 5000 } } }