博客
关于我
springcloud
阅读量:746 次
发布时间:2019-03-23

本文共 1954 字,大约阅读时间需要 6 分钟。

微服务架构优化

随着项目的发展,选择合适的架构至关重要。本文将介绍单体架构与微服务架构的优缺点,并涵盖微服务框架的常用工具如Eureka、Nacos、Zuul等的应用场景。


单体架构

优点:开发简单,操作流程明确,维护成本低。

  • 适合小型项目或单一业务功能模块。-yecto高并发或复杂业务时,只需简单扩展即可满足需求。

缺点

  • 随着业务复杂化,不断扩展更难以维护。
  • 数据量大时,系统性能逐渐下降。

微服务架构优化

单体架构难以应对复杂业务和高并发请求,微服务架构提供了更高的可扩展性。以下是优化点总结:

横向扩展

  • 通过添加更多服务器实现负载均衡,解决性能瓶颈。
  • 服务间耦合度降低,更容易维护和扩展。

技术支持

  • 数据库拆分:每个微服务独立拥有数据库,减少锁竞争。
  • 缓存技术:提升性能,减少延迟。

适用场景

  • 大型企业项目。
  • 高流量、高并发的互联网应用。
  • 用户量大型项目,如政务系统、社交平台。

微服务框架选择

选择合适的框架决定了项目的成功或失败。以下是Eureka、Nacos、Consul等常用框架的对比:

参数 Eureka Nacos Consul
CAP理论支持 全部支持 全部支持 全部支持
自我保护机制 Closed by Default Closed by Default
创建方式 内部项目 外部程序 外部程序
版本控制 有限支持 支持版本迭代 支持版本迭代
Spring集成支持 支持 支持 不支持

Eureka服务注册中心

Eureka是微服务架构中重要的组件,用于服务发现和注册。以下是学习Eureka的关键点:

核心功能

  • 提供服务地址记录。
  • 动态管理微服务实例。

技术特点

-基于CAP理论。-支持自我保护机制,防止不可用的服务器占用资源。

常用配置

-Wei配置文件:

eureka:  instance:    appname: 服务名    hostname: 127.0.0.1  client:    service-url:      defaultZone: http://127.0.0.1:8761/eureka

高可用搭建

  • 启用两台或更多Eureka服务器。
  • 客户端配置多个集群地址。
  • 服务间互相注册,保证高可用性。

OpenFeign简介

OpenFeign是基于Netflix Feign实现的Spring客户端,支持声明式Web服务调用。

特点

  • 简化HTTP客户端开发。
  • 集成Ribbon和Hystrix,无需手动配置负载均衡和容错策略。
  • 支持-health检查,实现健康μει代理。

常用注解

@SpringBootApplication@EnableEurekaClient@EnableFeignClientspublic class OrderSystemApplication    public static void main(String[] args) {        SpringApplication.run(OrderSystemApplication.class, args);    }

Hystrix容错与限流

Hystrix防止服务雪崩效应,控制服务熔断和超时。

基本概念

  • 断路器:定期检测服务状态,避免长时间不可用。
  • 总请求量:通过熔断阈值限制故障请求频率。

开启Hystrix

@SpringBootApplication@EnableCircuitBreakerpublic class HystrixTestApplication {    public static void main(String[] args) {        SpringApplication.run(HystrixTestApplication.class, args);    }}

Sentinel流量管理

Sentinel提供丰富的流量控制功能,支持限流、熔断、降级等场景。

核心功能

  • 动态配置限流规则。
  • 实时监控流量状态。
  • 支持多种场景,如热点防护。

高级功能

  • 灰度发布:按比例开关新功能。
  • 延迟排队:控制请求进入队列,减少系统压力。

Zuul网关服务

Zuul作为边缘网关,负责动态路由和流量管理。

核心功能

  • 路由转发:智能根据路径划分服务。
  • 异常处理:支持自定义过滤器。
  • 权限控制:可定义接口权限。

常用配置

# routing规则zuul:  routes:    /api/*:/service-api

总结

微服务架构与单体架构的选择取决于项目需求和目标。微服务架构适合复杂业务和高并发环境,需要结合Eureka、Nacos、Zuul等工具进行优化和配置。选择合适的框架和工具,可以显著提升项目的可扩展性和稳定性。

转载地址:http://bdpzk.baihongyu.com/

你可能感兴趣的文章
Python数据分析入门(十九):绘制散点图
查看>>
Callable中call方法和Runnable中run方法的区别
查看>>
Linux yum提示Loaded plugins错误的解决方法
查看>>
Netty的体系结构及使用
查看>>
xshell解决文本粘贴格式错误
查看>>
什么是证券型代币?
查看>>
Android中获取并设置屏幕亮度
查看>>
MVVM_Template
查看>>
网络+图片加载框架(英文版)
查看>>
Python imageio方法示例
查看>>
Possible missing firmware
查看>>
JAVA BigInteger和BigDecimal类常用方式
查看>>
深度学习框架 各种模型下载集合 -- models list
查看>>
six.move 的作用
查看>>
错误:'BasicLSTMCell' object has no attribute '_kernel'
查看>>
机器学习全教程
查看>>
idea在连接mysql数据库时区错误
查看>>
2021-05-14
查看>>
Kali-linux:nmap命令
查看>>
工程经济—建设工程定额
查看>>