SpringCloud01

微服务架构

  1. 微服务是一种架构模式,或者说是一种架构风格,提倡将单一的应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程内,服务之间相互协调,互相配置,为用户提供最终的价值。服务之间采用轻量级的通信机制互相沟通(HTTP、RPC),每个服务都围绕着具体的业务进行构建,并且能够被独立的部署到生产环境中,另外,应尽量避免统一的,集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言,工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储(每个服务模块是一个独立的进程,可以有自己独立的数据库,甚至可以不同的服务使用不同的语言进行实现,因为他们的本质式通信)

微服务与微服务架构

  1. 微服务:具体到某个业务功能模块的一个应用服务
  2. 微服务架构:一种架构模式如上所述

微服务的优缺点

  1. 优点
    1. 单一职责
    2. 服务功能内聚,足够小,代码容易理解,能够聚焦到指定的业务功能
    3. 开发简单,效率高,可能一个团队就专精于一个服务模块开发
    4. 服务是松耦合的,是有功能意义的服务,开发阶段或部署阶段都是独立的
    5. 微服务的服务模块可以使用不同的语言进行开发
    6. 能够灵活的进行服务模块集成与部署,集成工具Jenkins,Hudson,bamboo
    7. 微服务模块更易于开发人员的理解,能够专注于自己的业务功能
    8. 微服务只是业务逻辑代码(后端),不涉及前端页面
    9. 每个服务都可以有自己的数据库也可以有统一的数据库
  2. 缺点
    1. 开发的时候需要处理分布式诞生的问题(分布式的四个问题)
    2. 服务模块过多,运维压力增大
    3. 服务间通信成本
    4. 数据一致性
    5. 系统部署依赖
    6. 系统集成测试
    7. 性能监控

微服务技术栈

微服务条目 落地技术
服务开发 SpringBoot、Spring、SpringMVC
服务配置与管理 NetFlix公司的Arcchaius、阿里的Diamond等
服务注册与发现 Eureka、Consul、Zookeeper
服务调用 Rest、RPC、gRPC
服务熔断器 Hystrix、Envoy
负载均衡 Ribbon、Nginx
服务接口调用 Feign
消息队列 Kafka、RabbitMQ、ActiveMQ
服务配置中心管理 SpringCloudConfig、Chef
服务路由(API网关) Zuul
服务监控 Zabbix、Brave、Dapper
服务部署 Docker、OpenStack、Kubernetes
数据流操作开发包 SpringCloud Stream(封装与Redis、Rabbit、Kafka等发送接收消息)
事件消息总线 SpringCloud Bus
posted @ 2021-10-19 20:35  争取做百分之一  阅读(27)  评论(0)    收藏  举报