如何玩转微服务

微服务,软件应用开发的新纪元

2014年 Martin Flower 在《MicroServices》论文中首次提出了微服务的概念。近些年,伴随着互联网的日益发展,微服务在国内、甚至国际上的发展已达到一个新高潮。

在微服务流行之前,SOA(Service Oriented Architecture)被广泛熟知与采用。微服务基于 SOA 发展而来,但与之相比,微服务更易于理解,也更利于设计者、开发者的实践落地,它把“面向服务”的设计思想实现得更加彻底。

微服务架构模式的优势与痛点

微服务架构建议实践者以“业务”来切分服务,鼓励开发者选择最适合的技术实现具体的服务,只需保证其对外提供的 API 接口保持一致即可。也就是说,微服务架构理念的出现,使得应用开发前的技术选型的选择空间更加宽广、灵活。

将系统拆分为多个微服务,也便于对每个微服务分别实施监控,不断收集每个微服务的具体指标。当某个微服务出现性能瓶颈时,可针对性的对该服务进行水平扩展以支撑当前大流量,而无需对整个系统进行横向扩展。

除了以上优点,微服务架构按业务拆分服务的理念,更使服务之间彼此隔离,相互之间不会产生影响。这也便于我们在开发过程中利用技术手段,更高效地实现自动化部署。

正因为这些优点,当前很多软件企业在开发新项目时,首先考虑的是微服务架构,甚至企业正将以前的老系统慢慢迭代为该架构模式。

当然,除了以上优点,微服务架构也存在以下缺点:

微服务粒度大小难以划分,需要设计人员对业务有很好的掌握;

分布式复杂性,主要体现在分布式事务、网络延迟、系统容错等问题解决难度较大;

微服务之间通信成本较高,对微服务之间网络稳定性,通信速度要求较高;

微服务数量较大,对运维人员的运维、部署工作带来较大的挑战。

微服务开发踩坑经验

经过多年来不断的探索与总结,在微服务设计、开发领域,我已积累了丰富的实战经验,深知微服务实践过程中各个痛点及难点。

避免大家再踩我之前所趟过的坑,让开发过程更加顺利、更专注于业务开发,我特别推出了我的达人课《微服务一站式开发》,它集合了自己在微服务开发过程中的所有经验总结,主要包括以下主要内容:

目前,微服务开发中,各大公司通常采用的技术主要有 Spring Boot、Spring Cloud,因此在课程的开篇首先会对 Spring Boot 的基础知识,以及它与其他常用的各大技术框架的整合进行演示,并带大家利用 Spring Cloud 整合 Consul 实现服务的注册、发现等;

微服务调用过程中,遇到网络等不稳定因素时,如果不加以控制,系统很容易发生雪崩效应。本课程将充分利用 Spring Cloud 相关特性教各位读者如何实现服务的熔断、降级、限流等功能,从而解决这一问题;

将整个系统按业务拆分成多个服务,这个过程需要解决微服务鉴权、分布式事务、分布式锁等关键问题。为此,本课程引入了 Spring Cloud Zuul 对微服务进行统一鉴权的讲解;对 Redis、Zookeeper 高级技术点的解读,及利用它们如何实现分布式锁的过程分析;对分布式事务的理论说明,以及消息中间件 RabbitMQ 之死信队列、发布确认、消费确认的应用指南,并利用它们实现数据的最终一致性,解决微服务分布式事务;还会讲解如何利用第三方开源框架实现数据的实时一致性等内容;

微服务的数量往往较大,运维人员面临着运维、部署困难等问题,为此课程为各位读者带来了微服务监控、Docker 的常用命令、架构以及容器管理平台 Rancher、K8S 等相关技术使用指南;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯大数据的专栏

数据运营实战(三):用数据说话,从埋点开始

埋点是 App 数据运营中很重要的一个环节。之前我们讨论过用户分群的方式、漏斗转化的改进,但所有 App 数据的来源是数据采集,很多时候就是 App 的埋点。

72610
来自专栏新智元

微软开源图数据查询语言LIKQ,海量图数据实时检索和集成触手可得

【新智元导读】 微软开源图数据查询语言 LIKQ,这是基于分布式大规模图数据处理引擎 Graph Engine 的一种可用于子图和路径查询的数据查询语言,强强联...

442100
来自专栏ThoughtWorks

持续交付模式下的安全活动|洞见

在上一篇文章《开发团队面临的三大安全挑战》中,我们对现如今敏捷精益团队所面临的安全挑战进行了总结和分析,这三大挑战分别是: 一次性的安全检查无法匹配持续性的交付...

30660
来自专栏程序工场

阿里巴巴、百度、腾讯都在用的Java架构师知识体系

源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂。

10420
来自专栏ThoughtWorks

微服务的团队应对之道|TW洞见

这两年,微服务架构火了。在国内,从消费级互联网应用,到企业级应用;从金融领域,到电信领域;从新开发系统到已经开发了十几二十年的遗留系统;一夜之间,好像所有的团队...

324100
来自专栏IT大咖说

天天写业务代码,如何成为技术大牛!

不管是开发、测试、运维,每个技术人员心理多多少少都有一个成为技术大牛的梦,毕竟“梦想总是要有的,万一实现了呢”!正是对技术梦的追求,促使我们不断地努力和提升自己...

14630
来自专栏全华班

介绍一套BPM系统应该有的功能

近几年IT行业各种IT应用发展十分迅猛,企业和公司内部信息管理系统越来越多。由于一些原因,这些系统的信息资源管理分散、共享困难、由此造成了一些信息孤岛。...

64920
来自专栏FreeBuf

聊聊身份欺诈和窃取那些事

很多人都认为“个人隐私”不过是一纸空谈而已,引用老炮儿中六爷的一句被删台词:“我活那么大,我TM都不知道自己还有隐私?” ? 目前社交媒体如此发达,而社交平台上...

22190
来自专栏Rainbond开源「容器云平台」

从Heroku看好雨云帮

16940
来自专栏Jerry的SAP技术分享

SAP成都研究院姚瑶:软件质量保证工作的变迁

大家好,我是来自SAP成都研究院Revenue Cloud 团队的质量工程师 , yoyo。很高兴可以和大家分享我个人的工作体会。每个团队都有QE(Qualit...

8530

扫码关注云+社区

领取腾讯云代金券