上一篇:深夜看了张一鸣的微博,让我越想越后怕

来源:cnblogs.com/three-fighter/p/13485459.html

# 什么是微服务

架构演进

架构的发展历程是从单体式架构,到分布式架构,到SOA架构,再到微服务架构。

  • 单体架构:未做任何拆分的Java Web程序

  • 分布式架构:按照业务垂直划分,每个业务都是单体架构,通过API互相调用。

  • SOA架构:SOA是一种面向服务的架构。其应用程序的不同组件通过网络上的通信协议向其它组件提供服务或消费服务,所以也是分布式架构的一种。

微服务架构

微服务架构在某种程度上是SOA架构的进一步的发展。

微服务目前并没有比较官方的定义。微服务 Microservices 之父,马丁.福勒,对微服务大概的概述如下:

就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise definition of this architectural style ) 。

但通常在其而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。

服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API ) 。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。

另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务。可以使用不同的语言来编写服务,也可以使用不同的数据存储。

微服务解决方案

目前最流行的两种微服务解决方案是SpringCloud和Dubbo。

# SpringCloud概览

什么是SpringCloud

Spring Cloud 作为 Java 言的微服务框架,它依赖于 Spring Boot ,有快速开发、持续交付和容易部署等特点。Spring Cloud 的组件非常多,涉及微服务的方方面面,井在开源社区 Spring、Netflix Pivotal 两大公司的推动下越来越完善。

SpringCloud是一系列组件的有机集合。

SpringCloud主要组件

Eureka

Netflix Eureka 是由 Netflix 开源的一款基于 REST 的服务发现组件,包括 Eureka Server 及 Eureka Client。

Ribbon

Ribbon Netflix 公司开源的一个负载均衡的组件。

Feign

Feign是是一个声明式的Web Service客户端。

Hystrix

Hystrix是Netstflix 公司开源的一个项目,它提供了熔断器功能,能够阻止分布式系统中出现联动故障。

Zuul

Zuul 是由 Netflix 孵化的一个致力于“网关 “解决方案的开源组件。

Gateway

Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0、 Spring Boot 2.0 和 Project Reactor 等技术开发的网关, Spring Cloud Gateway 旨在为微服务架构提供简单、 有效且统一的 API 路由管理方式。

Config

Spring Cloud 中提供了分布式配置中 Spring Cloud Config ,为外部配置提供了客户端和服务器端的支持。

 Bus

使用 Spring Cloud Bus, 可以非常容易地搭建起消息总线。

OAuth2

Sprin Cloud 构建的微服务系统中可以使用 Spring Cloud OAuth2 来保护微服务系统。

Sleuth

Spring Cloud Sleuth是Spring Cloud 个组件,它的主要功能是在分布式系统中提供服务链路追踪的解决方案。

# 总结

本文中对架构的演进及Spring Cloud 构建微服务的基本组件进行了概览。

感谢您的阅读,也欢迎您发表关于这篇文章的任何建议,关注我,技术不迷茫!小编到你上高速。

· END ·

最后,关注公众号互联网架构师,在后台回复:2T,可以获取我整理的 Java 系列面试题和答案,非常齐全。

正文结束

推荐阅读 ↓↓↓

1.不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事

2.如何才能成为优秀的架构师?

3.从零开始搭建创业公司后台技术栈

4.程序员一般可以从什么平台接私活?

5.37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...

6.IntelliJ IDEA 2019.3 首个最新访问版本发布,新特性抢先看

7.漫画:程序员相亲图鉴,笑屎我了~

8.15张图看懂瞎忙和高效的区别!

一个人学习、工作很迷茫?

点击「阅读原文」加入我们的小圈子!

图解 SpringCloud 体系!相关推荐

  1. 19张图带你梳理SpringCloud体系中的重要技术点!

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料!来源:https://cnblogs.com/three-fi ...

  2. 19张图带你梳理SpringCloud体系中的重要知识点!

    作者: 三分恶 cnblogs.com/three-fighter/p/13485459.html 1.什么是微服务 1.1.架构演进 架构的发展历程是从单体式架构,到分布式架构,到SOA架构,再到微 ...

  3. Dubbo 如何成为连接异构微服务体系的最佳服务开发框架

    来自:阿里巴巴中间件 Photo @ Ilya Orehov 文 |刘军 从编程开发的角度来说,Apache Dubbo (以下简称 Dubbo)首先是一款 RPC 服务框架,它最大的优势在于提供了面 ...

  4. SpringCloud接入EDAS——服务发现篇

    旁白 很久没有写技术文章了,最近不是写水文就是写小说.说到底,还是最近很少研究技术的缘故,已经到了江郎才尽的地步了. 不过,LZ无意间看到自己团队的小伙伴写的一些文章,觉得还是不错的,于是便动了心思, ...

  5. springcloud(二):注册中心Eureka

    Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现.也是springcloud体系中最重要最核心的组 ...

  6. springCloud - 第13篇 - 服务监控 集群模式 Hystrix-turbine

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 在springcloud 体系中,可以用 hystrix-dashboard  实时监控服务的 ...

  7. springCloud - 第10篇 - 服务间调用追踪 (zipkin 的使用)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一. 在微服务系统中,不同应用服务可能会有各种不同的相互调用 . springcloud 集成了 z ...

  8. SpringCloud微服务:基于Nacos组件,整合Dubbo框架

    源码地址:GitHub·点这里 || GitEE·点这里 一.基础组件简介 1.Dubbo框架 Dubbo服务化治理的核心框架,之前几年在国内被广泛使用,后续由于微服务的架构的崛起,更多的公司转向微服 ...

  9. springcloud是如何进行服务治理的

    本文来说下springcloud微服务框架是如何进行服务治理的 文章目录 概述 技术架构实现 服务注册与发现:Eureka集群 实践经验 统一接入网关:Zuul Zuul1 or Zuul2,同步or ...

  10. 基于SpringCloud的微服务架构演变史?

    系统架构演变概述 在公司业务初创时期,面对的主要问题是如何将一个想法变成实际的软件实现,在这个时候整个软件系统的架构并没有搞得那么复杂,为了快速迭代,整个软件系统就是由"App+后台服务&q ...

最新文章

  1. 网络专业人士笔记(1~4章)
  2. Windows建立目录软连接
  3. python 在互联网应用是如此强大
  4. Oracle使用startup与startup force启动的区别
  5. python 列表,数组,矩阵两两转换tolist()
  6. 【LeetCode】205 Isomorphic Strings (c++实现)
  7. cnpack代码输入助手失效的解决办法
  8. 软件工程 阶段测试三
  9. 企业服务器固态硬盘寿命,SSD固态硬盘使用寿命短?_企业存储技术与评测-中关村在线...
  10. 2022超级好用的接口自动化测试框架:基于python+requests+pytest+allure实现
  11. 完整且详细的单链表代码
  12. 安装ChormeOS
  13. PLC学习笔记(一):概述
  14. iphone11各机型对比_iPhone 11系列配置规格对比 快来看看哪款最适合你
  15. python基于cv2实现给一张图片增加边框
  16. 如何自学软件测试呢?软件测试工程师的职位要求
  17. 远程时间同步在分布式测控与实时仿真系统应用
  18. 2019大一寒假作业:校园一卡通信息管理系统
  19. 制作WinCE平台下Pocket PC安装程序
  20. mysql绘制er图菱形表示什么意思_E-R图表示的是什么?

热门文章

  1. Puppet 实验十三 Foreman 基础使用
  2. 1.Hbase集群安装配置(一主三从)
  3. Dynamsoft WebAssembly条形码SDK预览
  4. iOS-@inerface的11条规范写法
  5. scss转换成css,hotcss
  6. 【树莓派】在树莓派的Android系统中安装APK应用
  7. 想要做好SEO优化,你必须懂得SEO的核心因素
  8. 文件浏览器及数码相框 -2.3.2-freetype_arm-1
  9. PCM音频设备的操作(转)
  10. jQuery学习: 实现select multiple左右添加和删除功能