微服务(一)-应用场景、定义、为什么需要微服务、SpringCloud简介

微服务概述

1.1 微服务的应用场景

  java开发基本模式现在分为两大类:企业级应用和互联网项目

1.企业级应用

  一般指一个企业内部使用的网站或服务器程序,例如:医院、金融、商业、军事、教育、政府机关等专业领域。

  项目特征:使用人群特定,不是所有人都需要访问的,所以使用人数较少,对性能没有强烈的要求。一般情况下,业务复杂度比较高。

2.互联网项目

  一般指全国甚至全世界都可以访问的网站或服务器应用,例如:京东、淘宝、饿了么、美团、高德、百度地图.....手机中的App。

  这些网站或服务器的特征:访问人数多,对性能要求比较严格,但是往往业务比较单一,业务流程比较简单。

互联网项目对性能的要求包含如下3方面:

  • 高并发:在某一时刻,很多人访问数据库,可以同时为很多人服务

  • 高可用:什么时候都可以使用,24小时无休息

  • 高性能:能够快速响应

总结:

  • 微服务一般用于互联网项目的情况较多

  • 企业级应用中使用单体项目的较多

1.2 什么是微服务?

  2014年,Martin Fowler(马丁·福勒) 提出了微服务的概念,定义了微服务是由以单一应用程序构成的小服务,自己拥有自己的行程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通信。同时服务会使用最小的规模的集中管理能力,服务可以用不同的编程语言与数据库等组件实现。

1.3 为什么需要微服务?

  简单来说,就是将一个大型的项目拆分成多个小项目,每个小项目负责自己专门的模块,然后再由指定的方法相互调用,最终实现项目的整体功能,像京东、淘宝这样的大型电商,就是在你购物流程中,每个环节都会有不同的微服务在运作。

  • 小餐厅成本低,但是能够接待的客人数量也是比较有限的;

  • 大餐厅成本高,但是能够接待的客人数量是比较多的,而且能够根据实际请求的情况对硬件进行扩展,甚至能够承载像双11那样的高并发请求。

1.4 Spring Cloud 简介

  上面章节讲述的是微服务的概念和好处,但是要想实现微服务的设计架构,实际上是非常复杂的,基本上不可能由我们自己编写,那么要想实现我们自己编写的微服务程序,必须借助提供好的框架。

  Spring Cloud就是一套能够快速开发微服务架构程序的框架集,注意Spring Cloud不是一个框架,而是一系列能够完成微服务项目结构搭建的框架 \ 软件 \ 组件的集合。有人将SpringCloud称之为"Spring全家桶",Spring Cloud包含很多可以完成微服务架构的组件。

主要包含两套:

  • Netflix : 奈非

  • alibaba : 阿里巴巴,国内环境是使用阿里开发微服务的项目越来越多

SpringCloud为了帮助我们顺利的实现微服务项目搭建提供了如下功能:

  • 微服务的注册

  • 微服务的网关

  • 微服务的调用

  • 微服务的安全和权限的管理

  • ......

  •  

 

posted @ 2021-09-06 22:11  Coder_Cui  阅读(1998)  评论(0编辑  收藏  举报