Spring Cloud Zuul

Zuul:路由器和过滤器

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

Netflix使用Zuul做如下事情:

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

查看更多

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 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。

查看更多

数据库连性池性能测试(hikariCP,druid,tomcat-jdbc,dbcp,c3p0)

摘要: 本文主要是对这hikariCP,druid,tomcat-jdbc,dbcp,c3p0几种连接池的详细的功能和性能测试对比,通过这次测试对目前主流的一些连接池做一个全面的对比,从而给业务系统一个最佳的推荐。而唯品会venus-data支持三种连接池DBCP、C3P0、DRUID,其中C3P0作为默认的连接池。因此需要针对现状,研发一种分布式数据库连接池。

查看更多

爱油科技基于SpringCloud的微服务实践

爱油科技基于SpringCloud的微服务实践

个人简介

刘思贤(微博@starlight36),爱油科技架构师、PMP。主要负责业务平台架构设计,DevOps实施和研发过程持续改进等,关注领域驱动设计与微服务、建设高效团队和工程师文化培养。

摘要

本次分享主要介绍了爱油科技基于Docker和Spring Cloud将整体业务微服务化的一些实践经验,主要包括:

  • 微服务架构的分层和框架选型
  • 服务发现和配置管理
  • 服务集成和服务质量保证
  • 基于领域驱动设计
  • 实施DevOps

    查看更多

Spring Cloud Eureka服务下线(Cancel)源码分析

摘要:在本篇文章中主要对Eureka的Cancel(服务下线)进行源码分析,在Service Provider服务shut down的时候,需要及时通知Eureka Server把自己剔除,从而避免其它客户端调用已经下线的服务,导致服务不可用。

Cancel(服务下线)

概述

在Service Provider服务shut down的时候,需要及时通知Eureka Server把自己剔除,从而避免客户端调用已经下线的服务。

服务提供者端源码分析

  1. 在eureka-client-1.4.1中的com.netflix.discovery.DiscoveryClient中shutdown()的867行。

    查看更多

Spring Cloud Eureka服务续约(Renew)源码分析

摘要:在本篇文章中主要对Eureka的Renew(服务续约),从服务提供者发起续约请求开始分析,通过阅读源码和画时序图的方式,展示Eureka服务续约的整个生命周期。服务续约主要是把服务续约的信息更新到自身的Eureka Server中,然后再同步到其它Eureka Server中。

Renew(服务续约)

概述

Renew(服务续约)操作由Service Provider定期调用,类似于heartbeat。目的是隔一段时间Service Provider调用接口,告诉Eureka Server它还活着没挂,不要把它T了。通俗的说就是它们两之间的心跳检测,避免服务提供者被剔除掉。
请参考:Spring Cloud Eureka名词解释

查看更多

基础架构及中间件体系概述

摘要: 本文主要是记录自己对基础架构职责和中间件技术体系理解的,渐进式理解记录。

一.基础架构职责

  • 设计和开发新一代的基础组件,为重构项目提供技术平台
  • 设计和构建统一的应用开发框架,提高应用开发效率和质量
  • 建立统一的应用构建标准,为实现对应用的管理,监控和治理的自动化建立基础
  • 评估和引进各种国外先进技术,提高公司平台的技术水准
  • 建立公司的开源项目,对内部开发的含金量高的项目实现开源,以提高公司的知名度

查看更多

Spring Cloud中@EnableEurekaClient源码分析

摘要:在这篇文章中主要介绍一下Spring Cloud中的@EnableEurekaClient注解,从源码的角度分析是如何work的,让大家能了解Spring Cloud如何通过@EnableEurekaClient注解对NetFlix Eureka Client进行封装为它所用。

NetFlix Eureka client简介

NetFlix Eureka client

Eureka client 负责与Eureka Server 配合向外提供注册与发现服务接口。首先看下eureka client是怎么定义,Netflix的 eureka client的行为在LookupService中定义,Lookup service for finding active instances,定义了,从outline中能看到起“规定”了如下几个最基本的方法。
服务发现必须实现的基本类:com.netflix.discovery.shared.LookupService,可以自行查看源码。

Eureka client与Spring Cloud类关系

Eureka client与Spring Cloud Eureka Client类图,如下所示:
类关系图
在上图中,我加了前缀,带有S的是Spring Cloud封装的,带有N是NetFlix原生的。

查看更多