zoukankan      html  css  js  c++  java
  • 【微服务】微服务概述

    什么是微服务

    使用一套小服务来开发单个应用的方式,每个服务运行在独立的进程里,一般采用轻量级的通讯机制互联,并且它们可以通过自动化的方式部署。

    微服务的特征

    1、单一职责
    2、轻量级通讯
    3、隔离性
    4、业务数据的独立性(有自己的数据)
    5、技术多样性

    微服务诞生的背景

    1、互联网行业的快速发展
    2、敏捷开发,精溢方法深入人心
    3、容器技术的成熟--使微服务的落地成为可能

    微服务的优势

    1、独立性
    2、敏捷性
    3、技术栈灵活
    4、高效团队

    微服务的不足

    1、额外的工作
    需要确认如何拆分业务,微服务的拆分粒度
    2、数据一致性
    3、沟通成本

    微服务引入的问题及解决方案

    微服务如何通讯

    1、从通讯模式角度考虑:
    一对一?一对多?
    同步?异步?

    2、从通讯协议角度考虑
    REST API
    RPC
    MQ

    如何选择RPC框架?
    1、I/O、线程调试模型
    2、序列化方式(JSON/二进制)
    3、多语言支持
    4、服务治理

    常用RPC框架:Dubbo/Dubbox(当当)/Thrift(A)/Motan(新浪微博)/gRPC(谷歌)

    微服务如何发现彼此

    传统服务的发现

    微服务的发现:
    1、客户端的发现

    2、服务端的发现

    微服务怎样部署、更新、扩容

    服务编排:部署、更新、扩容
    流行的服务编排工具:Mesos/Docker Swarm/Kubernetes

    Spring Boot、Spring Cloud与微服务

    Spring Boot与微服务

    Spring Boot的使命:化繁为简
    Spring Boot核心功能:独立运行、内嵌Web服务器、简化配置、准生产的应用监控

    Spring Boot与微服务的关系:Java的润滑剂

    Spring Cloud与微服务

    Spring Cloud的使命:简化Java的分布式系统

    一系列框架的集合
    简化java的分布式系统
    Spring Boot 封装

    Java的微服务
    侧重功能,侧重开发

    Spring Cloud核心组件
    Netflix Eureka
    Netflix Ribbon
    Netflix Hystrix
    Netflix Zuul
    Spring Cloud Config

    Spring Boot vs Spring Cloud

    Spring Boot 意在简化,是一种开发、配置风格
    Spring Cloud意在简化分布式,是功能的集合,风格统一

  • 相关阅读:
    GZIPInputStream 流未关闭引起的内存泄漏问题
    Java ExcutorService优雅关闭方式
    redis pipline
    LeetCode 30与所有单词相关联的字串
    Scala不使用null 而使用Option,None,Some的好处
    记录: 一次解决整型溢出攻击(使用scala,隐式转换)
    Scala 封装可break和continue的foreach循环
    记录: 百度webuploader 分片文件上传java服务器端(spring mvc)示例的优化
    HBase shell 中的十六进制数值表示
    关于getSystemResource, getResource 的总结
  • 原文地址:https://www.cnblogs.com/z00377750/p/9404739.html
Copyright © 2011-2022 走看看