微服务简略概述

微服务概述

之前马丁的文章

微服务优缺点

微服务优点:

  • 单一职责
  • 服务内聚,足够小,代码容易理解,聚焦单一业务功能需求
  • 松耦合,开发阶段部署阶段都是独立的
  • 能使用不同的语言开发,因为基于轻量级通信
  • 易于第三方集成,微服务容易灵活部署,持续集成工具:jenkins、Hudson、bamboo
  • 容易理解修改维护
  • 只是业务逻辑代码
  • 每个微服务都有自己的存储能力,可用有自己的数据库,或使用统一数据库

缺点:

  • 要处理分布式系统的复杂性
  • 多服务运维难
  • 系统部署依赖
  • 服务间通信成本
  • 数据一致性
  • 系统集成测试
  • 性能监控。。。

微服务技术栈:

  • 服务开发
    • spring
    • springMVC
    • springBoot
  • 服务配置与管理
    • NetFlix公司的Archaius
    • 阿里的Diamond
  • 服务注册与发现
    • Eureka
    • Consul
    • ZooKeeper
  • 服务调用
    • Rest
    • RPC
    • gRPC
  • 服务熔断
    • Hystrix
    • Envoy等
  • 负载均衡
    • Ribbon
    • Nginx等
  • 服务接口调用
    • Feign等
  • 消息队列
    • Kafka
    • RabbitMQ
    • ActiveMQ等
  • 服务配置中心管理
    • SpringCloudConfig
    • Chef等
  • 服务路由(API网关)
    • Zuul等
  • 服务监控
    • Zabbix
    • Nagios
    • Metrics
    • Specatator等
  • 全链路追踪
    • Zipkin
    • Brave
    • Dapper等
  • 服务部署
    • Docker
    • OpenStack
    • Kubernetes等
  • 数据流操作开发包
    • SpringCloudStream(封装Redis,Rebbit,Kafka等发送接收消息)
  • 事件消息总线
    • SpringCloud Bus

SpringCloud和SpringBoot关系

  • SpringBoot专注于开发单个个体微服务,打成jar包
  • SpringCloud将SpringBoot开发的单体服务整合起来
    • 为服务之间提供配置管理、服务发现、断路由、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务
    • SpringCloud无法离开SpringBoot
    • SpringCloud关注全局的服务治理框架

Dubbo和SpringCloud技术选型

image-20200925092025329

现在开发流程

  • CDN加速器
  • 负载均衡可能有很多层,LVS 、Nginx,负载均衡可水平拆分,多个Lvs多个Nignx
  • 服务一般以集群的样子,Nginx在负载一个个的服务器Tomcat
  • 服务要跟文件系统打交道,分布式文件系统 ,xxxDFS,文件服务器要对分布式文件系统读写,所以是双向箭头
  • Tomcat要去注册中心获取服务
  • 获取服务需要有服务提供者,dubbo-admin注册服务到注册中心
  • 服务者后面可能有多个数据库,数据库容量不足可能水平拆分,要实现读写分离可能要垂直拆分,读和写分成两部分数据库进行工作
  • 读写分离之间需要数据同步,MyCat做数据同步,保证数据的一致性
  • 读数据要水平扩展,写数据需要垂直扩展
  • 服务提供者连接数据库需要一些缓存机制,将数据放入非关系型数据库Redis,以K-V键值对的形式,Redis还能做集群
  • 搜索引擎来优化 ElasticSerach
  • 提供者到缓存还需要消息中间件,队列机制,异步机制,消息在排队等着,处理完成就将消息返回

image-20200925094722897

Dubbo中间停滞了一段时间,SpringCloud更加的完善,SpringCloud牺牲了服务调用的性能,避免了原生RPC带来的问题,而且Rest比RPC更加灵活,服务提供者和消费者之间一纸契约,不存在代码级别的强依赖,在微服务环境下更加合适

SpringCloud做大最大兼容性,保证了稳定性,但是Dubbo的自由度更高,但是需要更高的技术人员

如何自学:

Spring Cloud Netflix

https://www.springcloud.cc/spring-cloud-config.html

springcloud中文社区

[springCloud中文网站](

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值