SpringCloud

浏览该分类下的所有文章

微服务入门(SpringCloud Alibaba)

本文以 Spring Cloud Alibaba 为例,演示了微服务项目的搭建流程。首先创建 Maven 父工程 cloud2021,统一管理 Spring Boot、Spring Cloud、Alibaba 以及 MySQL、Druid、MyBatis 等依赖,并通过 dependencyManagement 锁定版本。随后在父工程下新增支付服务模块 cloud‑provider‑payment8001,编写子模块 pom 引入公共 api 包及 Web、Actuator、MyBatis、Druid 等必要依赖;在 application.yml 中配置服务端口、Spring 应用名、Druid 数据源及 MyBatis 扫描路径;最后提供启动类 PaymentMain8001。全文展示了父子模块结构、依赖声明、资源配置及启动入口的完整实现,为新手快速搭建 Spring Cloud Alibaba 微服务提供了可复制的模板。

浅谈分布式唯一ID生成方案

分布式唯一ID需全局唯一、有序、高可用且不泄露信息。文中比较了UUID、数据库自增、Redis计数、Zookeeper节点版和Snowflake(64位结构、趋势递增但受时钟回拨影响)。随后介绍号段模式及美团Leaf、滴滴Tinyid、微信序列号等实现,降低DB压力并提升容错。最后阐述Snowflake改进(多时间线、Leaf‑snowflake、百度UidGenerator),处理时钟回拨,兼顾唯一与有序。

微服务接口设计原则

微服务通过原子、独立、去中心化的方式实现业务拆分,接口设计需兼顾高可用、高性能和易维护。关键原则包括:降级兜底、过载保护与流量限流、快速失败与超时、无状态与最少依赖、简洁可靠、分散与隔离、幂等和故障自愈;在分布式环境下根据 CAP 定理在一致性和可用性之间权衡,采用 BASE 理论实现基本可用、软状态和最终一致性。性能上尽量使用无锁数据结构和单线程模型,避免锁竞争。遵循这些原则可构建可靠、弹性、可扩展的微服务接口。