春云边车

我有一个部署到基于NetflixOSS的云的应用程序,该应用程序具有以下结构:

春云边车

本质上是一种将信息持久保存到Cassandra群集的服务。 所有应用程序都已注册到Eureka –因此,在本例中,该服务以及Cassandra节点都已在Eureka中注册,此外,该服务还通过Eureka查找节点来连接到Cassandra集群。

我将分两部分处理:

  1. 向Eureka注册Cassandra节点
  2. 使用Eureka连接到Cassandra群集的服务

向Eureka注册Cassandra节点

这是Sidecar应用程序适合的地方– Sidecar的目的是促进使应用程序在Cloud环境中成为良好公民的某些事情,在这种特定情况下,它使Cassandra能够在Eureka注册并响应健康检查。 Spring Cloud Netflix Sidecar项目为创建Sidecar应用程序提供了必要的支持。

启用和运行Sidecar应用程序所需的编码量非常少,Sidecar的行为类似于典型的Spring Cloud应用程序,只是它不需要注册自己到Eureka,而必须注册另一个应用程序,因此配置基本相同。

这是我用于Sidecar应用程序的全部代码!:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.sidecar.EnableSidecar;

@SpringBootApplication
@EnableSidecar
public class SampleSidecarApplication {

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

以及与此相关的属性:

application.yml

eureka:
  instance:
    virtual-host-name: samplecassandra.vip

spring:
  application:
    name: samplecassandra

sidecar:
  port: 9042

在此,该端口被声明为与Cassandra相关的端口。

还有一个方面需要进行处理,即运行状况检查,Sidecar公开了一个端点,该端点可以测试受支持应用程序的运行状况,无论该应用程序是否有意义。 对于Cassandra,它可以连接到本地节点并触发一个小的CQL查询。

结论

假设现在已在Eureka中注册了Cassandra节点,尝试在消费服务端创建Cassandra会话的复杂程度很高,这主要是由于实例化Eureka客户端所涉及的时间以及代码尝试查找节点列表。 我将在后续文章中介绍。 如果您想进一步探索该示例,请访问github repo。

翻译自: https://www.javacodegeeks.com/2015/09/spring-cloud-sidecar.html