微服务架构学习

微服务架构

1.什么是微服务架构?

微服务框架当下很火,那到底什么是微服务呢?为什么会火呢?

我们传统的应用程序是一个项目,在一个进程里面运行的。这样就会导致各个业务逻辑模块耦合性高,有时代码调整时,牵一发而动全身。传统的项目大部分采用单体式开发,如下图所示:

如上图所示,单体式开发弊端显而易见。我们改动订单模块时,仓储、物流、用户模块也可能会受到影响。

业务推动技术的发展,技术应用于业务。由此,诞生了我们的微服务架构。

微服务架构的定义:是一种程序设计风格,把各种业务分离成单独的服务,在独立进程中运行。这样就可以降低各模块之间的耦合性。

2.微服务的通信方式

微服务把各模块独立分离出来,那么各个模块之间需要进行通信时,通过什么方式通信呢?

微服务的各个模块是单独的一个进程,我们要实现他们之间的通信,只能通过跨进程通信方式。

跨进程通信主要方式有:基于第三方共享存储(如:队列、数据库)、网络协议通信(webservice/WCF/WebApi等)、Remoting(RPC),其中网络协议通信用的最多

3.微服务注册与发现-consul

微服务要求我们任何服务都要集群(提供多个进程处理,避免单一进程挂死带来影响)

集群的好处:提升承载能力、避免单一故障、动态伸缩。

提到集群,很多人会想到用Nginx来集群,如下图所示:

虽然Nginx可以实现服务集群,但是Nginx不能实现动态新增服务实例、同时由于服务可能会挂死,所以必须要经常检查服务的健康状况,这个Nginx也做不到,这就产生了我们的consul。

consul可以动态进行服务的注册与删除,是微服务必须的。

原文地址:https://www.cnblogs.com/zxwDont/p/11496701.html

时间: 2024-11-09 05:59:47

微服务架构学习的相关文章

微服务架构学习(1)

Gartner认为,未来企业都将是IT企业 分而治之的哲学是微服务的理论基础 把大问题分解为容易解决的小问题. 凡事都有利弊,细分为微服务后,势必带来部署,测试,信息集成难度的提高. 微服务和微应用的关系,为服务是一个技术概念,做好微服务要先做好微应用,是一个业务逻辑的问题. 站在SOA(面向服务架构 service oriented architecture )的肩膀上践行微服务 微服务不是一个全新的架构,更不是一个包治百病的架构. SOA注重系统之间通过服务互联互通的规范,对服务如何实现并不

基于Spring Boot和Spring Cloud实现微服务架构学习(四)

Spring Cloud介绍 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等操作提供了一种简单的开发方式. Spring Cloud与Dubbo对比 提到Dubbo,我想顺便提下ESB,目前央视新华社也在用ESB来做任务编排,这里先比较下Dubbo和ESB: ESB(企业数据总线),一般采用集中式转发请求,适合大量异构系统集成,侧重任务

基于Spring Boot和Spring Cloud实现微服务架构学习

Spring Cloud介绍 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等操作提供了一种简单的开发方式. Spring Cloud与Dubbo对比 提到Dubbo,我想顺便提下ESB,目前央视新华社也在用ESB来做任务编排,这里先比较下Dubbo和ESB: ESB(企业数据总线),一般采用集中式转发请求,适合大量异构系统集成,侧重任务

SpingCloud微服务架构学习(二)之Actuator监控

我们那我们之前编写的服务提供者为例,为项目添加如下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 然后启动项目,访问:http://localhost:8080/actuator/health:返回结果: {"stat

微服务框架学习收录链接(包括服务搭建中用到mybatis-plus等)

1.基于Spring Boot和Spring Cloud实现微服务架构学习(一)-Spring框架介绍 https://blog.csdn.net/zeb_perfect/article/details/51945350 2.Spring Cloud生态圈简介 https://blog.csdn.net/rickiyeat/article/details/59172258 3.标题:Spring Boot 快速搭建微服务框架详细教程 http://www.jb51.net/article/123

成小胖学习微服务架构&#183;基础篇

看到最近“微服务架构”这个概念这么火,作为一个积极上进的程序猿,成小胖忍不住想要学习学习.而架构师老王(不是隔壁老王)最近刚好在做公司基础服务的微服务化研究和落地,对此深有研究. 于是成小胖马上屁颠屁颠的跑过去向老王请教:“王哥,我看微服务架构这么火,我也想学,您给我讲讲啥是微服务架构呗?” 老王笑了笑说:“要想知道什么是微服务架构,你得先知道什么系统架构设计.” 成小胖的理想是成为一名架构师,平时积累了不少知识,因此对“系统架构设计”这个概念还是很熟悉的,因此他马上就给出了答案[1]: 系统架

软件架构设计学习总结(22):软件架构——分层架构、事件驱动架构、微内核架构、微服务架构、基于空间的架构

分层架构 (Layered Architecture) 分层架构是最常见的架构,也被称为n层架构.多年以来,许多企业和公司都在他们的项目中使用这种架构,它已经几乎成为事实标准,因此被大多数架构师.开发者和软件设计者所熟知.比如MVC. 分层架构的一个特性就是 关注分离(separation of concerns) .在层中的组件只负责本层的逻辑.组件的划分很容易让它们实现自己的角色和职责,也比较容易地开发,测试管理和维护. 我们需要这样的冗余,即使业务层没有处理业务规则,也要通过业务层来调用数

《基于微服务架构的在线学习系统设计与实现》第三章 文献随笔(四)

一.基本信息 标题:基于微服务架构的在线学习系统设计与实现 时间:2019 来源:微服务架构 关键字:在线学习系统:微服务架构:spring cloud框架:API网关 二.研究内容 1.研究背景 基于对国内外的各学习网站的体验与分析,结合软件工程的需求分析方法,综合大学生的学习习惯以及学习方法对系统进行的功能性需求分析以及非功能性需求分析. 2.在线学习系统的需求分析   (1)功能需求分析 学生用户需求分析: 网站注册.用户登录.个人信息管理.课程列表.课程公告.课程评分.课程收藏.课程讨论

从零开始学习微服务架构(二)

作为一名IT从业者,懈怠是一件奢侈的事情,因为在IT圈,原地踏步就等于退步. 上一篇中,我们已经笼统介绍了一下微服务,以及我在项目中是如何从传统单体模式向微服务演变的.本章我们深入探讨一下微服务的核心内容. 乱花渐欲迷人眼 当我刚刚开始接触微服务的时候,我听到了许多名次:"微服务"."SOA"."spring boot"."spring cloud"."docker".面对这么多名词,一脑袋蒙圈-现在我们来