SpringCloud微服务开发如何协同

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud微服务开发如何协同相关的知识,希望对你有一定的参考价值。

参考技术A 1、SpringCloud开发,本地启动多个微服务系统开销大

2、同事A启动User服务,同事B也在本地启动User服务。那么两个服务都注册到Nacos上,前端同事调试访问A的User服务,很容易出现访问到同事B启动的User服务(导致开发混乱,无法debug到自己的服务),还要考虑到如果有同事在本地debug服务,也会影响到别的同事。

1、在公共机器上启动Nacos服务,mysql,Redis等公共服务,共同使用即可减少本地开销

2、同事A,同事B,都在本地启动Gateway服务,使用公共机器的Nacos服务(例如10.21.81.26:8848)本地 gateway的配置一定要配置ribbon 。因为负载均衡,会导致同事A想要访问自己本地启动的User服务,却访问到了同事B启动的User服务,又或者服务器上的User服务(这样无法开发)所以一定要做一些规则,负载均衡本地优先的规则。

效果: 只需要本地启动gateway和User服务。由于给gateway里的ribbon配置了优先本地,会先去调用本地的User服务,而不是公共机器或者其他同事的。(就算Feign调用,也是走网关,只要走了本地的网关,就是优先本地)

原理:

Gateway要获取Nacos下发的ip地址和服务名,做动态路由。

Gateway要集成ribbon,做负载均衡。

ribbon还得配置本地优先策略,以免服务冲突。

ip地址要在同一网段,否则无法通讯。

如何构建符合国内技术环境的微服务架构?

接收程序员的技术早餐


作者|极客时间

近年来,Spring Cloud 俨然已经成为微服务开发的主流技术栈,在国内开发者社区非常火爆。

基于我长期以来在一线互联网公司(携程,拍拍贷等)开展微服务架构的实践经验以及平时对 Spring Cloud 的调研,我认为 Spring Cloud 技术栈中的一部分组件离生产级开发尚有一定距离。

比方说 Spring Cloud Config 和 Spring Cloud Sleuth 都是 Pivotal 自研产品,尚未得到大规模企业级生产应用,很多企业级特性缺失,另外 Spring Cloud 体系还缺失一些关键的微服务基础组件,比如 Metrics 监控,健康检查和告警等。

这些情况导致了开发人员在实际工作中无法高效、快速地构建出适用于企业生产环境的微服务架构,而是要花不少时间和精力走很多弯路,同时也对部分工程师通过实践的方式来学习微服务架构相关知识带来了一定的障碍。

因此,我在参考 Spring Cloud 微服务技术栈的基础上,结合自身的实战经验,也结合国内外一线互联网公司(例如 Netflix、大众点评、携程、Zalando 等)的开源实践,综合提出更贴近国内技术文化特色的轻量级微服务参考技术栈。希望这个技术栈能帮助一线架构师(或者是初创公司)少走弯路,快速落地微服务架构。

这个参考技术栈总体架构如下图所示:

如何构建符合国内技术环境的微服务架构?

这里主要包含 11 大核心组件,分别是:

核心支撑组件

  1. 服务网关 Zuul

  2. 服务注册发现 Eureka+Ribbon

  3. 服务配置中心 Apollo

  4. 认证授权中心 Spring Security OAuth2

  5. 服务框架 Spring MVC/Boot

监控反馈组件

  1. 数据总线 Kafka

  2. 日志监控 ELK

  3. 调用链监控 CAT

  4. Metrics 监控 KairosDB

  5. 健康检查和告警 ZMon

  6. 限流熔断和流聚合 Hystrix/Turbine

在我和极客时间合作推出的《微服务架构实战 160 讲》视频课程中,我会对其中的 8 款核心组件的架构设计和生产实践进行深度剖析,欢迎大家订阅学习。


如何构建符合国内技术环境的微服务架构?

作者介绍

我是杨波,现担任拍拍贷技术中心框架研发部总监,主导拍拍贷内部微服务架构体系的建设。

我曾作为核心开发人员参与 eBay 开放 API 平台研发,也曾作为携程技术研发总监主导携程大规模 SOA 体系建设,在此之前,我还在唯品会担任资深云平台架构师一职,负责容器 PaaS 平台的调研和架构。

因此,在企业架构设计与体系建设方面,我具有非常丰富的一线实战经验。我也希望通过这个课程,能把自己多年来的经验分享出来,帮助更多的架构师和资深程序员提高微服务架构实战水平。

课程介绍

本课程以视频形式进行讲解,以便大家能更直观地进行相关技术学习及操作。

课程内容由 8 个模块组成(具体请参考文末目录),每个模块专注讲解一个微服务基础架构的核心组件,技术人员可以在碎片化时间自由学习,快速掌握微服务核心组件的业务场景、架构原理和开发运维实践。

学完后,你将获得以下几点收益:

  1. 对微服务基础架构有体系化认识;

  2. 对主流微服务技术栈的组件及其架构有较全面深入理解;

  3. 能够根据企业场景设计和搭建微服务基础架构;

  4. 中高级程序员掌握这些知识之后就可以向架构师行列迈进;

  5. 现有架构师可以通过本课程充实和拓展基础架构知识和技能体系。

课程分 8 个月更新完毕(5 月 -12 月),每月更新一个模块(约 20 讲),订阅后可以永久观看。学习过程中,有任何问题和想法,都可以在视频下面给我留言,我和编辑会为你解答。

订阅福利

福利一:限时优惠价¥199,原价¥299(5 月 19 日恢复原价)。

如何订阅

扫描下图中二维码或者点击「阅读原文」,支付后即可成功订阅。


课程大纲

「阅读原文」,试看或订阅本课程。

以上是关于SpringCloud微服务开发如何协同的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud微服务开发快速入门

SpringCloud微服务开发快速入门

SpringCloud微服务组件介绍

SpringCloud与Docker微服务架构实战pdf

SpringCloud 微服务最佳开发实践

如何构建符合国内技术环境的微服务架构?