加载中

SpringCloud

文章分类

浏览该分类下的所有文章

3 篇文章 1

微服务入门(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(本地生成、长度长、可能泄露信息)、数据库自增(实现简单但依赖DB)、Redis INCR、Zookeeper节点版本以及Snowflake算法(64位结构、支持高并发但受时钟回拨影响)。为降低DB压力,业界采用号段模式,如美团Leaf‑segment、滴滴Tinyid、微信序列号,通过批量号段缓存实现高效、容错。Snowflake的变种有Leaf‑snowflake、百度UidGenerator、基于多时间线的改进,分别通过工作机器ID分配、RingBuffer预生成或多时间线来解决时钟回拨和吞吐瓶颈。全文评估了各方案的优缺点并给出实践选型思路。

微服务接口设计原则

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