什么是微服务,微服务简介

目录

  • 什么是微服务

    • 单体系统

      • 1、项目过于臃肿
      • 2、资源难以隔离
      • 3、扩展瓶颈模块受限
    • 微服务
      • 1、独立部署、灵活扩展
      • 2、资源隔离
      • 1、架构设计复杂
      • 2、 管理复杂

@


什么是微服务

今天简单了解一下微服务,在看微服务前,先了解一下传统的单机系统。

单体系统

所有的业务子模块都集中在一个系统中,优点是便于管理,但是规模变大的时候,缺点就很明显了。

缺点:

1、项目过于臃肿

当产品规模越来越大,各种的大大小小模块都塞在一个项目中,必然会使整个项目变的臃肿,让开发者难以维护。

2、资源难以隔离

系统的各个功能模块都依赖于同样的数据库、内存等资源、一旦某个功能模块对资源处理不当,即可能影响整个系统。

3、扩展瓶颈模块受限

当系统的访问量越来越大的时候,单体系统可以进行水平扩展,部署多台机器。

但是这种扩展并不灵活,假如我们的性能瓶颈在支付上,只希望对支付模块进行水平扩展,单体系统是无法做到的。

微服务

微服务,是近年来流行起来的一种架构思想,将单个的应用拆分成一套小型服务,每种应用都是一个独立的进程,通过轻量级机制(通常为http资源api)进行通信。
这些服务围绕业务功能构建,由于进程的独立性,这些小型服务可以使用不同的编程语言、数据存储技术。

微服务的优点

1、独立部署、灵活扩展

单体架构是以整个系统作为单位部署,而微服务则可以作为一个独立的组件单独部署。
举个例子,我们都知道每年双11的爆发访问量,而且基本会集中在凌晨。
那么假如系统瓶颈在于支付模块,需要300台机器,其次是订单只需要200台,用户只需要100台机器,那么我们采用微服务的话就可以进行如下部署。同时docker的流行,也为微服务器提供了有效的容器。

2、资源隔离

微服务的一个重要设计原则就是每一个微服务拥有独立的数据源,假如订单服务想读取用户服务的数据库,那么只能通过操作用户服务的接口完成。
同时,docker容器也做好了资源的有效隔离。

相比于传统架构,微服务架构更强调的是系统按业务边界做细粒度的拆分和部署。

那么微服务架构有哪些缺点呢:

1、架构设计复杂

微服务需要把原有的系统拆分成多个独立工程,同时需要保证不同服务之间的数据一致性,引入了分布式事务和异步补偿机制,大大增加了设计和开发的难度。

2、 管理复杂

微服务拆分过细可能会出现添加一个小功能需要改动好几个工程的情况,随着服务数量的增加,管理的复杂性也会随之增加。

所以说架构设计没有什么绝对的,主要还是看场景,如果不在大厂的话,一般很难遇到复杂的微服务架构吧。

原文地址:https://www.cnblogs.com/ailumiyana/p/12045547.html

时间: 2024-08-28 03:53:26

什么是微服务,微服务简介的相关文章

微服务框架-SpringCloud简介

前面一篇文章谈到微服务基础框架,而Netflix的多个开源组件一起正好可以提供完整的分布式微服务基础架构环境,而对于Spring Cloud正是对Netflix的多个开源组件进一步的封装而成,同时又实现了和云端平台,和Spring Boot开发框架很好的集成. Spring Cloud是一个相对比较新的微服务框架,今年(2016)才推出1.0的release版本. 虽然Spring Cloud时间最短, 但是相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案.

微服务架构模式简介

转自 http://blog.jobbole.com/96948/ 在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Microservice架构模式设计及搭建一个具有良好扩展性并可持续开发的系统.除此之外,该书还将基于该模式的系统演化流程与Continuous Delivery等当前甚为流行的开发流程结合在了一起,使得Microservice架构模式看起来非常具

【转】微服务架构模式简介

在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Microservice架构模式设计及搭建一个具有良好扩展性并可持续开发的系统.除此之外,该书还将基于该模式的系统演化流程与Continuous Delivery等当前甚为流行的开发流程结合在了一起,使得Microservice架构模式看起来非常具有吸引力.基于这些原因,该架构模式迅速被业界所熟知,并在多个产品中被

Spring Cloud构建微服务架构服务注册与发现

Spring Cloud简介Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等操作提供了一种简单的开发方式. Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Config.Spring Cloud Netflix.Spring Cloud0 CloudFoundry.S

Spring Cloud微服务架构—服务注册与发现

Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等操作提供了一种简单的开发方式. Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Config.Spring Cloud Netflix.Spring Cloud0 CloudFoundry.

java版b2b2c社交电商Spring Cloud构建微服务架构-服务注册与发现

Spring Cloud简介Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等操作提供了一种简单的开发方式. Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Config.Spring Cloud Netflix.Spring Cloud0 CloudFoundry.S

跟着小程来学微服务--微服务思想

前言 一直对微服务非常感兴趣,因为公司的架构改造正好有机会能够接触微服务,买来一些书,请教了很多微服务大牛同时自己也做了很多总结,写成了80页ppt,算是我对微服务的一个认识吧,微服务本身不同的人有不同的理解,而我就从我自己的角度来谈谈微服务是什么. 目前市面上的不少书或者不少相关文章写的都是框架的使用,或者架构的介绍,其实对于刚入门不久的同学来说很容易造成微服务就是一堆框架和组件的堆砌,于是今天我将从理论和实践的角度来说说微服务. 现代互联网的方向是当企业发展到一定规模后,一定是大规模.云计算

初见微服务之服务注册与发现

什么是服务注册与发现 微服务将传统的"巨石"应用拆分成一个一个的组件应用,每个组件应用提供特定的服务,可以是一个,也可以是多个,并且组件所含服务应该是可以动态扩展的,随着时间推移.系统进化,可任意拆分.合并. 组件化应用和颗粒化的服务,遍布在系统的各个角落,由不同的项目成员进行维护,微服务的核心是化整为零.各司其职,这就要求开发人员不得操作其业务或服务范围以外的数据模型等资源,只能通过接口的访问,使用某一服务. 由于服务的跨度很大(公司很大的情况下).数量很多(数以百计甚至更多),为保

微服务的服务拆分

一.服务拆分的三个维度 三个维度拆分后,微服务的架构图就如下图所示: API GATEWAY服务网关: 身份认证.权限管理.服务动态路由.数据的聚合(比如房产详情页就有详情.评论.推荐,这些都属于不同的服务,这些我们就需要在服务网关中去做) Service Register:注册中心 服务的注册与发现 注册与发现:如果是在单体架构中,添加一个实例,一般是在前端反向代理中如Nginx中添加一个实例服务器ip端口. 而在微服务中这种方式就很难满足多服务的架构,一方面频繁的修改Nginx配置文件极易出

聊聊微服务的服务注册与发现

摘要: 一个好的服务注册发现中间件,应该是能完整地满足服务开发和治理的基础功能,然后才是性能和高可用.如果没有想清楚前面的功能,再高的可用性和性能都是浮云.最后,安全也同样重要.下面将从 服务注册.服务发现.容灾和高可用三个大方面来回答这些问题的主流做法. 引言 聊起微服务的服务注册与发现,很多人立马就会脱口而出 zk.etcd.consul.eureka 这些组件,进而聊到 CAP 如何取舍,性能如何,高可用和容灾是怎么实现的. 在这之前,站在组件使用者的角度,我想先问这么几个问题: 注册的