学习Spring-Cloud –基础结构和配置

我有机会与Spring-Cloud一起创建了一组云就绪微服务的样本集,Spring-Cloud如何使不同的基础架构组件和服务很好地协同工作给我留下了深刻的印象。

我习惯于基于基于Netflix OSS的堆栈创建微服务,通常在Netflix堆栈中, Eureka被认为是微服务进行自我注册和发现彼此的枢纽。 本着这种模式的精神,我想尝试一系列看起来像这样的服务:

乒乓球

这里有2种微服务:

  • 响应“ ping”消息的样本乒乓服务
  • 使用“乒乓”微服务的抽样服务

并且有两个基础架构组件:

  • Sample-config为2个微服务提供集中配置
  • 尤里卡(Eureka)是中央枢纽,为服务注册和发现其他服务提供了一种方式

因此,首先,我将介绍如何使用spring-cloud开发两个基础架构组件,并紧跟其后如何开发微服务以使用这些组件。

尤里卡

Spring-cloud使创建Eureka的实例非常简单,所需要做的只是遵循以下几行的类:

package org.bk.eureka;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }
}

可以启动多个Eureka实例,并将其配置为以弹性方式协同工作,尽管在这里,我只想演示一个独立的Eureka实例,并且可以使用类似如下的配置来完成,本质上是在端口8761上启动eureka并且在独立模式下不尝试查找对等方:

---
# application.yml
server:
  port: 8761

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false

配置服务器

Spring-Cloud提供了一个集中式配置服务器,微服务可用于加载其属性。 通常,微服务可能希望采用以下两种方式之一:

  1. 使用Eureka作为中心,找到配置服务
  2. 使用配置服务并找到尤里卡

我个人更喜欢Eureka优先方法,在此示例配置服务器中向Eureka注册了自己,当微服务启动时,他们首先向Eureka进行了检查,找到Configuration服务并使用该服务加载其属性。

配置服务器也很容易使用Spring-cloud编写,以下是所需的所有代码:

package org.bk.configserver;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication
@EnableConfigServer
@EnableEurekaClient
public class ConfigServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}

以及向Eureka注册此服务的配置:

---
# bootstrap.yml
spring:
  application:
    name: sample-config
  profiles:
    active: native

eureka:
  instance:
    nonSecurePort: ${server.port:8888}
  client:
    serviceUrl:
      defaultZone: http://${eureka.host:localhost}:${eureka.port:8761}/eureka/
---
# application.yml
spring:
  cloud:
    config:
      server:
        native:
          searchLocations: classpath:/config

server:
  port: 8888

配置服务器从端口8888启动,并从类路径提供配置。 在实际的应用程序中,可以将配置设置为从中央git存储库加载,这种方式为版本属性提供了一种简洁的方法,并且可以集中管理属性。 在这种特定情况下,由于它提供了两个微服务的属性,因此类路径中有两组文件,并为调用应用程序提供了适当的属性:

---
#sample-pong.yml
reply:
  message: Pong
---
# sample-ping.yml
send:
  message: Ping

启动Eureka和配置服务器

由于这两个应用程序都是基于Spring-boot的,因此可以通过运行以下命令来分别启动它们:

mvn spring-boot:run

一旦Eureka和Configuration Server正常启动,Eureka将提供一个不错的界面,其中包含向其注册的服务的详细信息,在这种情况下,Configuration Server的名称为“ SAMPLE-CONFIG”:

春云尤里卡

配置服务器通过端点通过以下模式为调用应用程序提供属性: /{application}/{profile}[/{label}]

因此,要检索“ sample-pong”应用程序的属性,应用程序将在内部使用以下URL: http://localhost:8888/sample-pong/default

对于“ sample-ping”应用程序,属性可以从http://localhost:8888/sample-ping/default派生

到此,结束了有关如何启动云就绪系统的基础架构组件的详细说明。 我将继续介绍如何利用这些基础架构组件开发微服务。

翻译自: https://www.javacodegeeks.com/2015/06/learning-spring-cloud-infrastructure-and-configuration.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值