首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring Cloud分布式微服务实践

Spring Cloud微服务框架

Spring Cloud是基于Netflix等公司大量的微服务实践,封装出的一整套微服务开发框架,主要包括微服务网关、配置中心、服务注册发现、远程调用、负载均衡、消息总线、容错断路、监控追踪等模块,为开发高可用、高可扩展性的分布式应用提供了一套易用的解决方案。

Spring Cloud的微服务组件基于Spring Boot开发,可以说Spring Boot是Spring Cloud的基石。

Spring Boot通过自动配置等功能极大地简化了Spring应用的开发,提升了开发效率,同时支持内嵌Tomcat(以及Jetty、Undertow)等Servlet容器,打包部署更加方便。

前不久刚刚发布了SpringBoot 2.0版本,该版本最大特点是将响应式编程作为首选的编程范式,支持WebFlux、RxJava,更易于实现异步和事件驱动,创建完全非阻塞式应用。

分布式微服务实践

这里我们基于Spring Cloud开发一个分布式应用,主要用到Config配置中心,Eureka服务注册发现,Feign做服务调用,Zuul微服务网关,Ribbon负载均衡, Hystrix服务容错保护,Admin服务管控,Zipkin服务追踪,具体包括以下几个微服务:

注册中心 eureka-server

启动应用后,打开 http://localhost:8761 可以看到启动的服务实例

配置中心 config-server

该服务将git仓库中的配置文件以接口形式提供,客户端可以获取并加载配置。

例如获取eureka配置信息,打开 http://localhost:3600/eureka/default

微服务网关 zuul

用serviceId代替URL,实现动态路由。

通过Zuul过滤器进行请求鉴权,拦截不合法请求,同时也可以实现API限流等操作。

服务提供者 token-service

token认证服务,提供生成token和验证token的接口

服务消费者 user-service

调用用户相关服务的时候,会消费token认证服务,使用Feign调用服务,通过Hystrix提供容错保护

向 http://localhost:4000/user-service/login 发POST请求

登录或注册成功返回token

把token放在请求头,获取用户信息 http://localhost:4000/user-service/user/info

服务管控 admin-server

打开 http://localhost:5033

进入服务管理界面,查看服务运行状态

Zipkin 服务追踪

在 http://localhost:5500/zipkin/ 可以查看服务链路追踪

服务调用时间

调用详情

项目源码

https://github.com/yunTerry/spring-cloud-netflix

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180409G1UIGV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券