微服务相关

整体采用SpringCloud作为底部支撑,采用相对较活跃的组件,其中涉及的有 

      Nacos-服务注册、发现与配置中心(期间还用了eureka)

      SpringcloudGateway-网关 

      Sentinel+dashboard-熔断降级,也叫断路器,这个是阿里出品的哨兵,一线互联网公司很多在用

      Zipkin-链路跟踪

      Elasticsearch+kibana-链路跟踪数据持久化以及查询

      SpringbootAdmin-整体资源监控

      Quartz-定时任务集成

      JWT-用户认证,自己实现了一套简单的jwt

      

    

    各组件版本列表

名称版本git/maven参考网址
SpringBoot2.5.1
SpringCloud2020.0.2
SpringCloudAlibaba2021.1
AlibabaNacos(docker)2021.1https://github.com/alibaba/nacoshttps://nacos.io/
SpringcloudGateway2.1.3https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-gateway
Sentinel2.1.1

https://github.com/alibaba/Sentinel

https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-sentinel

 
Zipkin-Slim(docker) latest https://github.com/openzipkin/zipkin
Elasticsearch(docker)6.8.5 https://github.com/elastic/elasticsearch
Elasticsearch-head(node)
kibana(docker)6.8.5
Quartz2.1.9 GitHub - quartz-scheduler/quartz: Code for Quartz Scheduler

    

### 微服务架构相关技术、工具和框架 微服务架构是一种将应用程序设计为一组小型、独立服务的架构风格,这些服务可以独立部署、扩展和维护。为了支持这种架构风格,需要使用一系列技术和工具来解决服务间的通信、治理、监控等问题。以下是与微服务架构相关的常见技术栈和工具[^1]。 #### 1. 服务注册与发现 服务注册与发现是微服务架构中的核心功能之一,用于动态管理服务实例的位置信息。常用工具包括: - **Nacos**:阿里巴巴开源的服务发现和配置管理工具,支持动态服务发现、配置管理和服务健康检查[^3]。 - **Consul**:HashiCorp 提供的服务网格解决方案,支持服务发现、健康检查和分布式配置存储。 - **Eureka**:由 Netflix 开源的服务注册与发现工具,广泛应用于 Spring Cloud 生态系统中。 #### 2. 配置管理 配置管理工具用于集中管理和分发微服务的配置信息,确保一致性并简化运维工作。 - **Spring Cloud Config**:基于 Git 的配置管理工具,适用于 Spring Cloud 应用程序。 - **Vault**:HashiCorp 提供的安全工具,支持密钥管理、加密服务和特权访问管理。 - **Apollo**:携程开源的分布式配置管理中心,支持多环境配置管理和实时更新。 #### 3. 消息队列 消息队列在微服务架构中用于实现异步通信和解耦服务之间的依赖关系。常见的消息队列工具包括: - **Kafka**:高吞吐量的消息队列系统,适用于大数据流处理场景[^2]。 - **RabbitMQ**:功能丰富的消息中间件,支持多种协议和复杂的路由规则。 - **ActiveMQ**:Apache 提供的经典消息队列系统,支持多种传输协议。 - **RocketMQ**:阿里巴巴开源的分布式消息队列,具有高可靠性和高性能特点。 #### 4. API 网关 API 网关作为微服务架构的入口,负责请求路由、负载均衡、认证授权等功能。 - **Zuul**:Netflix 开源的网关工具,支持动态路由和过滤器功能。 - **Spring Cloud Gateway**:基于 Spring 生态的轻量级网关解决方案。 - **Kong**:高性能的开源 API 网关,支持插件化扩展。 #### 5. 分布式追踪与监控 分布式追踪和监控工具用于分析微服务之间的调用链路,帮助快速定位问题。 - **Zipkin**:由 Twitter 开源的分布式追踪系统,支持数据收集和可视化。 - **Jaeger**:CNCF 孵化的分布式追踪工具,支持大规模集群部署。 - **SkyWalking**:国产开源的 APM(应用性能管理)工具,支持服务拓扑图和服务链路监控[^2]。 #### 6. 容器编排与部署 容器技术是微服务部署的重要支撑,能够提高资源利用率和部署效率。 - **Docker**:标准化的应用容器化工具,支持跨平台运行。 - **Kubernetes (K8s)**:强大的容器编排平台,支持自动扩展、负载均衡和服务发现。 #### 7. 数据库与缓存 微服务架构通常采用去中心化的数据库策略,每个服务拥有自己的数据库。 - **MySQL/PostgreSQL**:关系型数据库,适用于事务性强的场景。 - **MongoDB/Cassandra**:NoSQL 数据库,适用于高并发和大数据量场景。 - **Redis/Memcached**:内存缓存系统,用于加速数据读取和会话管理。 ```python # 示例代码:使用 Kafka 发送消息 from kafka import KafkaProducer producer = KafkaProducer(bootstrap_servers='localhost:9092') producer.send('my_topic', b'Hello, Kafka!') producer.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值