谁才是微服务赢家:Quarkus 与 Spring Boot
在容器时代(“ Docker 时代”),无论您是否在使用它,都不可否定java的活力。Java 在性能方面一直比较有优势,主要是因为代码和真实机器之间的抽象层,多平台的成本(一次编写,随处运行 - 还记得吗?),其中包含 JVM -between(JVM:模拟真实机器所做的软件机器)。 如今,使用微服务架构,也没有任何优势,为总是在同一个地方和平台上运行的东西(Docker 容器 - Linux) 环境构建多平台(解释)的东西。可移植性现在不那么重要了(可能比以往任何时候都重要),那些额外的抽象级别并不重要。
微服务之:独立服务
考虑一下一家外卖公司 应用程序,它是一个在线食品配送应用程序。应用程序的客户端通过发出 HTTPPOST /orders请求来创建订单,并期望在 600 毫秒内得到响应。由于 该 应用程序使用微服务架构,实现订单创建的职责分散在多个服务中。POST请求首先被路由到,然后Order Service它必须与以下服务协作: • Restaurant Service- 了解餐厅的菜单和价格 • Consumer Service- 知道下Consumer订单的状态 • Kitchen Service- 创建一个Ticket,告诉厨师要做什么 • Accounting Service- 授权消费者的信用卡
构建微服务:使用 API 网关
当您选择将应用程序构建为一组微服务时,您需要决定应用程序的客户端将如何与微服务交互。对于单体应用程序,只有一组(通常是复制的、负载平衡的)端点。然而,在微服务架构中,每个微服务都暴露了一组通常是细粒度的端点。在本文中,我们研究了这如何影响客户端到应用程序的通信,并提出了一种使用API 网关的方法。
大白话揭秘搞好就能“年薪百万”的SpringCloud微服务
为什么会有微服务? 假如回到10年前,一天张三入职了电商企业—并夕夕商城。 公司初创,人比较少,公司网站的用户也很少,公司只有一个工程师 项目架构比较简单
60-微服务技术栈(高级):在线检测工具Arthas(实现CPU排查与代码热更新)
线上代码经常会出现CPU占用过高的情况,按以往经验我会使用top指令,进一步借助于jstack去查看具体信息从而进行问题排查,但基本上都逃不过需要重新发包的局面,即使是一个增量包,应用也需要短暂停启。后来运维大兄弟让我试一下Arthas,说是可以进行代码的热更新操作,正好来试一下。
58-微服务技术栈(高级):在线检测工具Arthas(jvm相关指令)
开发者对于生产问题故障的排查、定位,随着微服务的喷发,也不再像是以前那边依赖纯日志、gc日志进行问题排查与定位了,本节开始介绍一个生产环境使用的排错工具Arthas,帮助大家更高效、便捷地实现生产问题排错。
48-微服务技术栈(高级):分布式协调服务zookeeper源码篇(Watcher机制-3[Zookeeper])
前面已经分析了Watcher机制中的大多数类,本篇对于ZKWatchManager的外部类Zookeeper进行分析。
45-微服务技术栈(高级):分布式协调服务zookeeper源码篇(持久化FileTxnSnapLog)
前面分析了FileSnap,接着继续分析FileTxnSnapLog源码,其封装了TxnLog和SnapShot,其在持久化过程中是一个帮助类。
40-微服务技术栈(高级):分布式搜索引擎ElasticSearch(DSL语法、搜索结果[排序/分页/高亮]处理)
在前面的学习中,笔者带领大家完成海量数据导入ES,实现了ES基本的存储功能,但是我们知道ES最擅长的还是搜索、数据分析。所以本节笔者将继续带领大家研究一下ES的数据搜索功能,同上节一样,继续分别采用DSL和RestClient实现搜索。
37-微服务技术栈(高级):分布式搜索引擎ElasticSearch(初识ES)
随着应用数据的陡增,传统关系型数据库如MySQL/Oracle/RDS等,在处理海量数据的关系映射、数据查询场景还是有性能瓶颈。16年左右巅峰的Solr技术,随着近几年的技术发展也逐步被ES所替代。本节开始我们将花费5节的课程时间,带领读者朋友们认识ES、完成ES常见API的使用的代码演练。
36-微服务技术栈(高级):微服务保护Sentinel实现原理
应用的硬件、软件架构在涉及到部署时,一般会根据实际请求量做一定的压力测试,以测试系统稳定性、健壮性,避免后续线上未知故障。假设在一个电商的秒杀场景下,订单中心本身能够承载的QPS预设是10W,因为活动的火爆导致流量瞬时达到100W,此时订单中心因无法承载其10倍的请求将会崩溃,那么对于整个分布式架构系统会产生什么问题呢?本节我们将借助于Sentinel的流量控制、隔离降级来解决上述分布式架构中常见的雪崩问题。
33-微服务技术栈(高级):分布式事务Seata的SAGA模式与几种模式总结对比
在分布式架构系统中,服务不止一个,一个完整的业务链路肯定也不止调用一个服务,此时每个服务都有自己的数据库增删改查,而每一个写操作对应一个本地事务。如果想要确保全部的业务状态一致,也就意味着需要所有的本地事务状态一致,这在我们之前的学习中肯定是不具备的,如何做到跨服务、跨数据源的事务一致性将是本章节的重点学习内容。
32-微服务技术栈(高级):分布式事务Seata的TCC模式
在分布式架构系统中,服务不止一个,一个完整的业务链路肯定也不止调用一个服务,此时每个服务都有自己的数据库增删改查,而每一个写操作对应一个本地事务。如果想要确保全部的业务状态一致,也就意味着需要所有的本地事务状态一致,这在我们之前的学习中肯定是不具备的,如何做到跨服务、跨数据源的事务一致性将是本章节的重点学习内容。
30-微服务技术栈(高级):分布式事务Seata的XA模式
在分布式架构系统中,服务不止一个,一个完整的业务链路肯定也不止调用一个服务,此时每个服务都有自己的数据库增删改查,而每一个写操作对应一个本地事务。如果想要确保全部的业务状态一致,也就意味着需要所有的本地事务状态一致,这在我们之前的学习中肯定是不具备的,如何做到跨服务、跨数据源的事务一致性将是本章节的重点学习内容。
29-微服务技术栈(高级):分布式事务Seata部署与微服务整合
在分布式架构系统中,服务不止一个,一个完整的业务链路肯定也不止调用一个服务,此时每个服务都有自己的数据库增删改查,而每一个写操作对应一个本地事务。如果想要确保全部的业务状态一致,也就意味着需要所有的本地事务状态一致,这在我们之前的学习中肯定是不具备的,如何做到跨服务、跨数据源的事务一致性将是本章节的重点学习内容。
26-微服务技术栈(高级):分布式事务Seata部署与集成
在分布式架构系统中,服务不止一个,一个完整的业务链路肯定也不止调用一个服务,此时每个服务都有自己的数据库增删改查,而每一个写操作对应一个本地事务。如果想要确保全部的业务状态一致,也就意味着需要所有的本地事务状态一致,这在我们之前的学习中肯定是不具备的,如何做到跨服务、跨数据源的事务一致性将是本章节的重点学习内容。
23-微服务技术栈(高级):分布式缓存Redis哨兵集群
在上一节我们完成主从集群的搭建,虽然解决了读的压力,但是当集群主节点宕机时,系统架构有没有备用方案呢?如果没有是不是缓存层就直接失效、甚至异常了呢?在此基础之上我们可以借助于哨兵完成新主节点的选举,实现集群的自动恢复。
21-微服务技术栈(高级):消息积压与惰性队列
消息中间件,作为分布式系统中必不可少的一部分,在前面我们学习过其基本的消息发送、消费,但是读者朋友们肯定也知道,真正的生产环境可不是简单的发送消息这么简单。如何避免消息丢失?如何满足特殊场景下的消息延迟消费?如何解决消费能力不足?如何搭建集群?等等 本节笔者将从消息的可靠性出发,解决消息不丢失的问题。同时借助TTL实现延迟消息,惰性队列解决消息堆积问题,最后完成集群搭建以实现生产环境真正的高可用。
架构解密从分布式到微服务:深入理解网络,HTTP的前世今生
HTTP是全球最大规模的分布式系统网络的基础之一,也采用了传统的服务器-客户端的通信设计模式。从1.0版本到1.1版本再到2.0版本,HTTP始终占据着分布式系统通信领域重要的一席之地。
09-微服务技术栈(基础):Nacos配置中心
上一节我们借助于Nacos实现注册中心,完美替换了Eureka在项目之初的功能,开始本章节之前我们一起回忆下Nacos实现注册中心的关键步骤 1. 引入springcloud-alibaba/nacos-discovery依赖 2. 去除原eureka依赖、去除配置文件中eureka注册信息 3. 新增nacos注册信息:spring.cloud.nacos.server-addr:localhost:8848 4. 重启项目并验证 在此基础之上我们验证了Nacos的负载均衡策略、权重控制、环境隔离等信息,希望大家还能有点印象。
08-微服务技术栈(扩展):负载均衡算法
负载均衡算法作为Redis、MQ、ZK,GateWay等集群、组件必不可少的算法策略,是微服务框架中不可或缺的一部分知识点,本节我们将花费短暂的时间做个了解。
07-微服务技术栈(扩展):什么是RESTful
对于http接口的调用,其历程经历过原始servlet,到后面的struts,SpringMVC,对于后端的参数封装也逐渐从单个属性演变成对象封装,那么什么是RESTful,工作中又如何使用呢?

MSE 诊断利器上线
mseutil 未来还会支持更多的MSE子产品以及更细粒度的,更智能的诊断能力,包括客户端到 MSE 实例的网络报文分析,客户端负载状态分析,具体应用的资源占用水平以及 GC 分析等能力,帮助用户更便捷的排查在使用 MSE 产品过程中遇到的问题,提升运维效率。
基于常见组件微服务场景实战:如何对几十个后台服务进行高效管理
基于常见组件的微服务场景实战,注册发现 下面开始微服务相关内容的讲解。在这一部分中,仍然从最基础的场景入手,然后再逐步展开说明,帮助大家快速掌握一些微服务组件的实现原理,最终理解微服务架构的本质。
秃头也要学习的微服务进阶场景实战:基于Bifrost的数据同步方案
技术选型 项目组决定找一个开源中间件,它需要满足以下5点要求。 1)支持实时同步。 2)支持增量同步。 3)不用写业务逻辑。 4)支持MySQL之间的同步。 5)活跃度高。

SpringCloud学习(六):微服务集群配置
在上文中我们实现了eureka的集群,就相当于用户、服务和中间商中,我们连系了多个中间商,这样假如一个中间商跑路了,我们还能够通过其他中间商访问到服务。 那么,假如服务坏了呢?肯定不能只有一个服务,我们也需要给他找几个“备胎” 所以,我们需要实现服务的集群

SpringCloud学习(五):微服务注册进eureka集群
试想:如果注册中心只有一个eureka服务,假如它出故障了,会导致整个为服务环境不可用。 所以,为了实现高可用,我们需要搭建Eureka注册中心集群 ,实现负载均衡+故障容错

从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十三)rocketmq 篇(1):整体介绍
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十三)rocketmq 篇(1):整体介绍

从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十二)日志篇(1):rocketmq+ aop +自定义注解 实现入参出参日志收集记录 完整源码
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十二)日志篇(1):rocketmq+ aop +自定义注解 实现入参出参日志收集记录 完整源码

从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(九)文件服务篇(2):集成minio文件服务
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(九)文件服务篇(2):集成minio文件服务

从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(七) 开发环境使用轻量级在线文档解决知识分享问题
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(七) 开发环境使用轻量级在线文档解决知识分享问题

《spring cloud微服务架构设计与开发实践》电子版地址
通过本书你可以学习到:1.一线互联网公司微服务架构体系2.解决实战服务治理、熔断限流等核心问题3.Spring Cloud Alibaba 体系