SC中Eureka Server的HA和安全身份验证

摘要:在《跟我学Spring Cloud》中的上一篇文章中简单介绍了使用Eureka实现服务的注册与发现。在这篇文章中主要介绍一下Eureka Server注册中心的HA以及Eureka Server的身份验证。

查看更多

使用Spring Cloud Eureka实现服务注册与发现

摘要:由于目前,网上的Spring Cloud的学习的案列,比较凌乱而且没有形成整个体系,因此特开一个专题为跟我学Spring Cloud,希望帮助到有需要的人。本文主要介绍如何使用Spring Cloud中的Eureka组件快速实现微服务的服务注册与发现。至于安全模式和Eureka Server的HA,后面的文章会详细介绍。如果您觉得,有想了解的内容,参与评论留言。

查看更多

Spring Cloud Ribbon

客户端负载均衡Ribbon

Ribbon是一个客户端负载均衡器,能够给HTTP和TCP客户端带来灵活的控制。 Feign已经使用了Ribbon,因此如果你正在使用@FeignClient,那么本部分的说明同样试用。

Ribbon的核心概念是命名的客户端。每一个负载均衡器都是一系列工作在一起的组件的一部分,并用于按需联系远程服务。你可以给这一系列一个名字(例如使用@FeignClient注解)。Spring Cloud使用RibbonClientConfiguration为每一个命名的客户端建立一个新系列为满足ApplicationContext的需求。 这包括一个ILoadBalancer, 一个RestClient和一个ServerListFilter。

怎么引入Ribbon

为了引入Ribbon到你的工程,可以使用org.springframework.cloud组的starter.artifact id是spring-cloud-starter-ribbon。可以参照Spring Cloud Project的细节来设置你的构建系统。

查看更多

Spring Cloud Eureka中文翻译

Eureka学习文档资料:

说明:本文主要是对http://cloud.spring.io/spring-cloud-static/spring-cloud.html#_spring_cloud_netflix ,Eureka相关的内容进行翻译更新,由于工作原因可能存在时效性敬请谅解。

Spring Cloud Netflix提供了对Netflix开源项目的集成,使得我们可以以Spring Boot编程风格使用Netflix旗下相关框架。你只需要在程序中添加注解,就能使用成熟的Netflix组件来快速实现分布式系统的常见架构模式。这些模式包括服务发现(Eureka), 断路器(Hystrix), 智能路由(Zuul)和客户端负载均衡(Ribbon)。

查看更多

Spring Cloud Feign中文翻译

声明式REST客户端:Feign

Feign是一个声明式Web Service客户端。使用Feign能让编写Web Service客户端更加简单, 它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡。

主类示例:

1
2
3
4
5
6
7
8
9
10
11
12
@Configuration
@ComponentScan
@EnableAutoConfiguration
@EnableEurekaClient
@EnableFeignClients
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

查看更多

Spring Cloud Sleuth中文翻译

Spring Cloud Sleuth

SpringCloudSleuth提供了分布式追踪的解决方案。

术语

SpringCloudSleuth 借用了 Dapper 的术语

  • Span: 基本工作单元,例如,在一个新建的span中发送一个RPC等同于发送一个回应请求给RPC,span通过一个64位ID唯一标识,trace以另一个64位ID表示,span还有其他数据信息,比如摘要、时间戳事件、关键值注释(tags)、span的ID、以及进度ID(通常是IP地址)
    span在不断的启动和停止,同时记录了时间信息,当你创建了一个span,你必须在未来的某个时刻停止它。

Tips:root span的SpanID和TraneID相等。

查看更多

Spring Cloud Zuul

Zuul:路由器和过滤器

路由是微服务体系不可或缺的一部分, 例如 / 可以映射到Web 应用, /api/users 可以映射的用户服务 , api/shop 可以映射到商店服务。 Zuul是一个基于JVM的路由器,同时也是一个服务端负载均衡。
它由Netflix公司开源。

Netflix使用Zuul做如下事情:

  • 认证鉴权。
  • 审查
  • 压力测试
  • 金丝雀测试
  • 动态路由
  • 服务迁移
  • 负载剪裁
  • 安全
  • 静态应答处理

查看更多

Spring Cloud Bus

Spring Cloud Bus

Spring Cloud Bus 通过一个轻量级消息代理连接分布式系统的节点。这可以用于广播状态更改(如配置更改)或其他管理指令。当前唯一的实现方式是通过一个AMQP代理作为消息传输,但相同的基本特征(传输上的一些依赖)是其他传输的路线图

Quick Start

如果Spring Cloud Bus在类路径里它将通过Spring Boot autconfiguration启动。所有你需要做的就是使spring-cloud-starter-bus-amqpspring-cloud-starter-bus-kafka添加到你的依赖管理中,Spring Cloud将完成剩下的事。确定broker (RabbitMQ or Kafka) 可用:如果在本地运行你不需要做任何事,但如果在远程运行需要配置broker信息,如Rabbit

查看更多

Spring Cloud Stream

Spring Cloud Stream

这一节将更详细地介绍如何使用SpringCloudStream工作,它涵盖主题了创建和运行Stream应用。

简介

SpringCloudStream是一个构建消息驱动的微服务框架。SpringCloudStream构建在SpringBoot之上用以创建工业级的应用程序,并且Spring Integration提供了和消息代理的连接。SpringCloudStream提供几个厂商消息中间件个性化配置,引入发布订阅、消费组和分区的语义概念。

添加@EnableBinding注解在你的程序中,被@StreamListener修饰的方法可以立即连接到消息代理接收流处理事件。下面是一个简单的接收外部消息的接收器应用程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@SpringBootApplication
public class StreamApplication {
public static void main(String[] args) {
SpringApplication.run(StreamApplication.class, args);
}
}
@EnableBinding(Sink.class)
public class TimerSource {
...
@StreamListener(Sink.INPUT)
public void processVote(Vote vote) {
votingService.recordVote(vote);
}
}

查看更多

Eclipse for Mac 快捷键

摘要:本文主要介绍了Mac下Eclipse的常用快捷键,开发环境切换到Mac下后原来Window下的快捷键很大一部分是不相容的,一方面不熟悉快捷键会导致开发效率明显降低,另一方面频繁录入错误的快捷键IDE也一脸懵逼,方便速查记录如下,尤其像我习惯了Eclipse IDE。

查看更多