使用API网关构建微服务
使用传统的异步回调方法编写API组合代码会让你迅速坠入回调地狱。代码会变得混乱、难以理解且容易出错。一个更好的方法是使用响应式方法以一种声明式样式编写API网关代码。响应式抽象概念的例子有Scala中的Future、Java 8中的CompletableFuture和JavaScript中的Promise,还有最初是微软为.NET平台开发的Reactive Extensions(RX)。
微服务架构设计(三):在微服务的架构中, 也许不需要 Integration Hub
本文是微服务架构设计系列的第三篇。当来自微服务外部的使用者界面、系统或设备的调用, 都需经过 Integration Hub, 这意味着当 Integration Hub 无法运作时,微服务将无法被调用。那么作为架师, 针对合约变换, 服务编排和整合第三方软件的设计原则、方法是什么?本文为你揭晓答案
Spring Cloud构建微服务架构(二)服务消费者
在上一篇《Spring Cloud构建微服务架构(一)服务注册与发现》中,我们已经成功创建了“服务注册中心”,实现并注册了一个“服务提供者:COMPUTE-SERVICE”。那么我们要如何去消费服务提供者的接口内容呢? Ribbon Ribbon是一个基于HTTP和TCP客户端的负载均衡器。
微服务下的契约测试(CDC)解读
1. 前言 有近两周没有在公众号中发表文章了,看过我之前公众号的读者都知道,公众号中近期在连载《RobotFramework接口自动化系列课程》,原本计划每周更新一篇,最近由于博主在带一个新项目,实在是没空抽出时间来,所以向公众号中对连载课程一直期待的读者说声抱歉。
阿里云微服务引擎 MSE 及 API 网关 2025 年 9 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要。
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
JAVA并发编程JUC包之CAS原理
在JDK 1.5之后,Java API引入了`java.util.concurrent`包(简称JUC包),提供了多种并发工具类,如原子类`AtomicXX`、线程池`Executors`、信号量`Semaphore`、阻塞队列等。这些工具类简化了并发编程的复杂度。原子类`Atomic`尤其重要,它提供了线程安全的变量更新方法,支持整型、长整型、布尔型、数组及对象属性的原子修改。结合`volatile`关键字,可以实现多线程环境下共享变量的安全修改。
JAVA并发编程volatile核心原理
volatile是轻量级的并发解决方案,volatile修饰的变量,在多线程并发读写场景下,可以保证变量的可见性和有序性,具体是如何实现可见性和有序性。以及volatile缺点是什么?
【微服务系列笔记】Feign
Feign是一个声明式的伪HTTP客户端,它使得HTTP请求变得更简单。使用Feign,只需要创建一个接口并注解。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。 OpenFeign 是SpringCloud在Feign的基础上支持了SpringMVC的注解。
【Spring系列笔记】定义Bean的方式
在Spring Boot应用程序中,定义Bean是非常常见的操作,它是构建应用程序的基础。Spring Boot提供了多种方式来定义Bean,每种方式都有其适用的场景和优势。
【从零开始学微服务】01.微服务的过去与现在
大家好,欢迎来到万猫学社,跟我一起学,你也能成为微服务专家。再介绍什么是微服务之前,我们先了解一下微服务架构的历史,也就是微服务是如何提出来的。
MSE微服务引擎调用问题之调用失败如何解决
MSE(MicroService Engine)微服务引擎是阿里云提供的一种微服务治理平台,它通过提供服务注册、发现、配置管理等功能来支撑微服务架构的稳定运行;本合集旨在梳理MSE微服务引擎的核心特性、部署流程,以及实践中可能遇到的问题和相应的解决方案,以助力用户优化微服务架构的实施和管理。
Dubbo 3.3.0-beta 版本正式发布
近日,Apache Dubbo 发布了 3.3 分支大版本 3.3.0-beta.1,相较于 3.2 系列版本,3.3.0-beta 引入了一些重量级的功能升级,按照社区规划,3.3 也将是 Dubbo3 非常重要的一个里程碑大版本,在 3.3.0 首个正式版本之后 Dubbo3 将正式进入长期稳定维护态,即标志着 Dubbo3 作为面向云原生时代的下一代微服务框架将具备规划的所有核心功能。
启动速度提升 10 倍:Apache Dubbo 静态化方案深入解析
Apache Dubbo 集成了 GraalVM Native Image 后 ,Dubbo 应用能够做到毫秒级启动,启动速度降低了十倍、资源损耗降低了四倍,为降本增效提供了更多的想象空间。
Apache Dubbo 首个 Node.js 3.0-alpha 版本正式发布
本文分享了 Dubbo3 Node.js 首个正式版本,演示基于 Triple 协议的 RPC 通信模式,包括代码生成、服务发布和服务访问等过程。
注册配置中心MSE-Nacos评测
体验将应用通过云服务器ECS(Elastic Compute Service)接入到微服务引擎MSE(Microservices Engine)的Nacos引擎上,并使用MSE Nacos引擎进行服务的动态发现和配置动态管理。
阿里云微服务引擎 MSE 2023 年 8 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。
基于云原生网关的流量防护实践
本文详尽地介绍了如何在云原生网关上做流量防护,包括在不同的场景下该配置何种防护规则,并给出了详细的使用路径,可以从中体验出云原生网关的流量防护功能相对于其它网关产品限流功能的优势。作为云上网关的核心功能之一,后续我们也会持续强化流量防护功能,也欢迎大家持续关注阿里云官网的 MSE 微服务引擎产品动态。
深圳站 | 云原生开源开发者沙龙「微服务X消息队列专场」
活动地址:深圳阿里中心T1-3-1-E 青云涧 深圳市南山区科苑南路(深圳湾段)3331号,2023年8月27日(周日)13:00 开始签到。
浅谈微服务中限流熔断降级的方法论
易波动或者对波动比较敏感;容易影响整体的;不能预测上游行为,或者不能预测下游行为,依赖的上下游有不可预测的行为体。要不要做熔断降级的核心点在于是否可控,有没有不可控因素。
Kubernetes下的微服务设计和实现
Kubernetes 是一个开源的容器编排系统,最初由 Google 开发,后被 CNCF(Cloud Native Computing Foundation,云原生计算基金会)接手并继续推动发展。Kubernetes 的目标是提供一种可移植、可扩展和智能化的容器编排工具,可以自动化应用的部署、扩展和操作
mall-swarm微服务电商项目发布大更新,打造Spring Cloud最佳实践
之前mall项目更新到了SpringBoot 2.3.0版本,微服务版本mall-swarm也已同步更新了。此次更新完善了项目的Spring Cloud技术栈,升级至Spring Cloud Hoxton版本并加入了Spring Cloud Alibaba、Oauth2和Knife4j,致力于打造Spring Cloud 最佳实践项目!
微服务实战01-maven聚合工程
接下来的一段时间,我们将要来学习微服务,本着重实战的原则,你不需要去深究一些相关的原理,只要能跟着教程一步一步做下来,就可以快速地掌握Java微服务开发技巧。 我们学习微服务的第一步,就是要知道怎么创建聚合工程,虽然说微服务和聚合工程没有直接和必然的联系,但是现在工作中只要用到微服务,就一定是聚合工程。既然绕不开,我们就从聚合工程开始吧。
微服务测试:关键策略和工具
开发团队越来越多地选择微服务架构而不是单体结构,以提高应用程序的敏捷性、可扩展性和可维护性。随着决定切换到模块化软件架构——其中每个服务都是一个独立的单元,具有自己的逻辑和数据库,通过 API 与其他单元通信——需要新的测试策略和新的测试工具。
从零开始创建微服务系统四 - 第一部分
好吧,标题似乎是一个大胆的陈述,所以让我们澄清一下我所说的微服务系统是什么意思。我不是指要在生产中使用的任何类型的框架,只是一个了解微服务架构的挑战以及它如何在幕后工作的项目。 我不打算将这个系列作为分步指南,因为到最后它可能至少有 100 篇文章。相反,我将尝试写关于设计选择、如何编写一些机制并突出一些有趣的问题(从全栈开发人员的角度来看)我在此过程中偶然发现。
微服务之:独立服务
考虑一下一家外卖公司 应用程序,它是一个在线食品配送应用程序。应用程序的客户端通过发出 HTTPPOST /orders请求来创建订单,并期望在 600 毫秒内得到响应。由于 该 应用程序使用微服务架构,实现订单创建的职责分散在多个服务中。POST请求首先被路由到,然后Order Service它必须与以下服务协作: • Restaurant Service- 了解餐厅的菜单和价格 • Consumer Service- 知道下Consumer订单的状态 • Kitchen Service- 创建一个Ticket,告诉厨师要做什么 • Accounting Service- 授权消费者的信用卡
微服务常用的模式语言:统一交流术语
模式语言提供了讨论问题的交流术语,它明确了特定场景、特定问题的解决方案和延伸性思考。模式语言主要目的是帮助开发者解决在设计和编程中遇到的共同的问题,即清晰的问题陈述、体现问题的解决方案以及推动解决方案的力量(Force)的清晰表述。 微服务架构作为一个现在流行的服务架构,也有一套属于自己的模式。这篇文章是微服务架构相关模式语言的一个提纲。Chris Richardson 从不同的角度,对相关的模式进行了分类。可以点击链接查看每个模式的详细描述。下图通过虚线框细分了不同的微服务模式。
Dapr和Rainbond集成,实现云原生BaaS和模块化微服务开发
Dapr 是一个开源的分布式应用运行时,帮助开发者构建松耦合的分布式应用程序,具有良好的可扩展性和可维护性。Rainbond 是一款企业级的云原生应用管理平台,提供了丰富的功能和工具,方便开发者管理和部署应用。
52-微服务技术栈(高级):微服务网关Soul(搭建dubbo-zk应用)
springboot:2.2.2 alibaba.dubbo:2.0.0 zkclinet:0.10 JDK:1.8
50-微服务技术栈(高级):分布式协调服务zookeeper源码篇(Leader选举)
前面学习了Zookeeper相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举。
48-微服务技术栈(高级):分布式协调服务zookeeper源码篇(Watcher机制-3[Zookeeper])
前面已经分析了Watcher机制中的大多数类,本篇对于ZKWatchManager的外部类Zookeeper进行分析。
42-微服务技术栈(高级):分布式搜索引擎ElasticSearch(集群搭建与脑裂问题解决)
单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题。 ● 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard),存储到多个节点 ● 单点故障问题:将分片数据在不同节点备份(replica ) 本节笔者将带领大家完成ES的集群搭建,同时解决集群中出现的脑裂问题。