Spring Cloud微服务升级总结

news/2024/7/8 13:09:32

一.应用系统的架构历史

[Image tex](http://blog.springcloud.cn/images/sc-lx/system.png)

二.什么是微服务?

2.1 微服务概述

  • 起源:微服务的概念源于 2014 年 3 月 Martin Fowler 所写的一篇文章“Microservices”。文中内容提到:微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。
  • 通信方式:每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API)。
  • 微服务的常规定义:微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务。
  • 把原来的一个完整的进程服务,拆分成两个或两个以上的进程服务,且互相之间存在调用关系,与原先单一的进程服务相比,就是“微服务”。(微服务是一个比较级的概念,而不是单一的概念)

2.2 微服务架构的优势

  • 可扩展性:在增加业务功能时,单一应用架构需要在原先架构的代码基础上做比较大的调整,而微服务架构只需要增加新的微服务节点,并调整与之有关联的微服务节点即可。在增加业务响应能力时,单一架构需要进行整体扩容,而微服务架构仅需要扩容响应能力不足的微服务节点。
  • 容错性:在系统发生故障时,单一应用架构需要进行整个系统的修复,涉及到代码的变更和应用的启停,而微服务架构仅仅需要针对有问题的服务进行代码的变更和服务的启停。其他服务可通过重试、熔断等机制实现应用层面的容错。
  • 技术选型灵活:微服务架构下,每个微服务节点可以根据完成需求功能的不同,自由选择最适合的技术栈,即使对单一的微服务节点进行重构,成本也非常低。
  • 开发运维效率更高:每个微服务节点都是一个单一进程,都专注于单一功能,并通过定义良好的接口清晰表述服务边界。由于体积小、复杂度低,每个微服务可由一个小规模团队或者个人完全掌控,易于保持高可维护性和开发效率。
  • Spring Cloud作为今年最流行的微服务开发框架,不是采用了Spring Cloud框架就实现了微服务架构,具备了微服务架构的优势。正确的理解是使用Spring Cloud框架开发微服务架构的系统,使系统具备微服务架构的优势(Spring Cloud就像工具,还需要“做”的过程)。

三.Spring Boot/Cloud

3.1 什么是Spring Boot?

Spring Boot框架是由Pivotal团队提供的全新框架,其设计目的是用来简化基于Spring应用的初始搭建以及开发过程。SpringBoot框架使用了特定的方式来进行应用系统的配置,从而使开发人 员不再需要耗费大量精力去定义模板化的配置文件。

3.2 什么是Spring Cloud?

Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务注册,服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。

3.3 微服务,Spring Boot,Spring Cloud三者之间的关系

  • 思想:微服务是一种架构的理念,提出了微服务的设计原则,从理论为具体的技术落地提供了指导思想。
  • 脚手架:Spring Boot是一套快速配置脚手架,可以基于Spring Boot快速开发单个微服务。
  • 多个组件的集合:Spring Cloud是一个基于Spring Boot实现的服务治理工具包;Spring Boot专注于快速、方便集成的单个微服务个体;Spring Cloud关注全局的服务治理框架。

3.4 Everything is jar, Everything is http

Spring Boot通过@SpringBootApplication注解标识为Spring Boot应用程序。所有的应用都通过jar包方式编译,部署和运行.

@SpringBootApplication
public class Application {
       private static final Logger LOGGER = LoggerFactory.getLogger(Application.class);  
       public static void main(String[] args) {     
           SpringApplication.run(Application.class, args);       
           LOGGER.info(”启动成功!");
       }

http://www.niftyadmin.cn/n/3910595.html

相关文章

Unicable技术在卫星接收方案设计中的应用

Unicable技术在卫星接收方案设计中的应用 日期:2012-5-17 8:28:28 阅读: 来源:沈永明 对于Unicable技术的介绍交章,最初发表在中国电力出版社2010年4月出版、笔者编著《数字高清电视接收DIY》一书的第8章。现根据国外的最新的接收器材&#x…

UX最佳演练:交互驱动连接

我们开展了最佳用户体验演练的系列活动,其涵盖了模式和格式塔理论是如何帮助我们设计便于用户理解的界面。如今,我们要涉及如何处理这些模式背后的行为:俗称交互设计 。 首先我们要明白的是:良好的互动是由良好的人际关系驱动的&a…

centos7安装redmine3.4

centos7安装redmine3.4 转贴:https://www.cnblogs.com/panwenbin-logs/p/10174525.html

如何让Firefox清除它记下的网站登录名和密码

本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/xiandedanteng/p/7647876.html,如需转载请自行联系原作者

linux编译安装gcc5.3.0

** linux编译安装gcc5.3.0 ** 一、使用yum安装gcc 对于配备了yum的Linux发行版而言,安装gcc编译器就变得so easy。我们只需要分别执行如下命令即可: #安装gcc、c编译器以及内核文件 yum -y install gcc gcc-c kernel-devel 二、自行安装 1、下载G…

详解Linux系统安装Mantis的全过程

详解Linux系统安装Mantis的全过程 (适合Centos 7;在Centos 6上会遇到安装数据库问题,会折腾一下。) 一、安装Apache 1.安装Apache yum install httpd 2.设置服务器开机自动启动Apache systemctl enable httpd.service 若要验…

Windows Vista下的Rootkit攻防

文章同时发表在:[url]http://netsecurity.51cto.com/art/200708/52554.htm[/url] Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息,Rootkit一般都和木马、后门等其他恶意程序结合使用。Rootk…

js中浮点数加减法异常(字符拼接,误差)的解决策略

2019独角兽企业重金招聘Python工程师标准>>> 1.变量加减法常见异常 在写html中的js时,进行变量的加减法经常会遇到的两种异常问题(表格中还包含了一般解决策略): 常见异常举例原因一般解决策略变量相加按照字符串方式相加10101010系统在加减时有时默认将变量识别为字…