微服务spring-cloud 学习第一天
了解微服务
微服务架构风格是一种将单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,
服务间通信采用轻量级通信机制(通常使用HTTP)。这些服务围绕业务能力构建并且可通过自动部署机制
独立部署。这些服务公用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技
术。
微服务总结
- 每个微服务可独立运行在自己的进程中。
- 一系列独立运行的微服务构建了整个系统。
- 每个服务独立开发,只关注自己的业务。
- 微服务通过轻量级的通信机制,RESTfulApi。
- 可以使用不同的语言。
- 全自动的部署机制。
微服务优点
- 易于开发和维护,一个微服务只关注特定的功能。
- 单个微服务启动时间快速。
- 局部容易修改容易部署,某个模块出了问题只需要发布当前服务就行。单体应用是需要发布整个应用。
- 技术不受限制,例如:某个模块需要使用MySql数据库,某些模块需要使用Oracle数据库
- 可根据需求,实现细粒度的扩展。例如:某个服务遇到瓶颈可增加内存或者增加节点等
微服务缺点
- 运维成本增加。单体应用只需要保证一个应用正常就行,微服务需要保障多个甚至几十上百个。
- 分布式固定的复杂性,网络延迟、系统容错等情况。
- 接口调整成本高,如果某个接口修改了入参或者返回的类型,那么所有调用该接口的都需要修改。(可使用Json)
微服务设计原则
- 单一职责原则
单一职责原则指的是一个单元(类、方法或者服务等)只应关注整个系统功能中单独、有界限的一部分。单一职责原则可以帮助我们更优雅的开发、更敏捷的交付。 - 服务自治原则
服务自治原则是指每个微服务应具备独立的业务能力、依赖于运行环境。在微服务架构中,服务是独立的单元,应该与其他服务高度解耦。每个服务从开发、测试、构建、部署,都应当独立完成。 - 轻量级通信机制
微服务之间应该通过轻量级的通信机制进行交互。常用协议有REST、AMQP、STOMP(STOMP,Streaming Text Orientated Message Protocol,是流文本定向消息协议,是一种为MOM(Message Oriented Middleware,面向消息的中间件)设计的简单文本协议。其中最流行的STOMP消息代理是Apache ActiveMQ。)、MQTT等. - 微服务粒度
微服务的粒度是难点,也常常是争论的焦点。应当合理的去划分微服务粒度,而不是一味的把服务做小。代码量的多少不能作为微服务的依据。因为微服务本身的业务复杂度不同,代码量也会不同。
微服务架构
目前市面上有SpringCloud 和dubbo等,后面笔者会写着两种。
微服务spring-cloud 学习第一天的更多相关文章
- 微服务 | Spring Cloud(一):从单体SSM 到 Spring Cloud
系列文章目录 微服务 | Spring Cloud(一):从单体SSM 到 Spring Cloud 目录 系列文章目录 前言 单体式架构 微服务架构 优点 缺点 服务发现与弹性扩展 参考 前言 在微 ...
- 搭建高可用服务注册中心-Spring Cloud学习第一天(非原创)
文章大纲 一.Spring Cloud基础知识介绍二.创建单一的服务注册中心三.创建一个服务提供者四.搭建高可用服务注册中心五.项目源码与参考资料下载六.参考文章 一.Spring Cloud基础 ...
- 微服务Spring Cloud与Kubernetes比较
转 http://www.tuicool.com/articles/VnMf2y3 Spring Cloud或Kubernetes都宣称它们是开发运行微服务的最好环境,哪个更好?答案是两个都是,但他们 ...
- 微服务&spring cloud架构系列汇总
为了方便查找,把微服务&微服务架构之spring cloud架构系列文章按时间正序整理了一下,记录如下: 1. 微服务架构之spring cloud 介绍 2. 微服务架构之spring ...
- SpringCloud---消息驱动的微服务---Spring Cloud Stream
1.概述 1.1 Spring Cloud Stream:用来 为微服务应用 构建 消息驱动能力的框架: 可基于SpringBoot来创建独立.可用于生产的Spring应用程序: 使用Sp ...
- Spring Cloud学习(一):Eureka服务注册与发现
1.Eureka是什么 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的. Eureka ...
- Spring Cloud 学习 之 Spring Cloud Eureka(源码分析)
Spring Cloud 学习 之 Spring Cloud Eureka(源码分析) Spring Boot版本:2.1.4.RELEASE Spring Cloud版本:Greenwich.SR1 ...
- Spring Cloud学习(一)
Spring Cloud是什么? Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总线.负载 ...
- go微服务框架kratos学习笔记八 (kratos的依赖注入)
目录 go微服务框架kratos学习笔记八(kratos的依赖注入) 什么是依赖注入 google wire kratos中的wire Providers injector(注入器) Binding ...
- go微服务框架kratos学习笔记十(熔断器)
目录 go微服务框架kratos学习笔记十(熔断器) 什么是熔断 熔断器逻辑 kratos Breaker kratos 熔断逻辑 kratos熔断器使用说明 bladmaster client br ...
随机推荐
- LeetCode 622. Design Circular Queue
原题链接在这里:https://leetcode.com/problems/design-circular-queue/ 题目: Design your implementation of the c ...
- 回溯法 | 旅行商问题(TSP问题)
学习链接: 回溯法解旅行商问题(TSP).贪心算法:旅行商问题(TSP) 今天早上做了无数个梦,然后被紧紧地吸附在床上.挣扎一番后爬起来,已经是9点了.然后我开始研究旅行商问题. 在一个无向图中找到一 ...
- CSS3中box-sizing属性的作用以及应用场景
盒模型box-sizing: 取值 1.content-box 默认值,标准盒模型,设置宽度为内容宽度,实际宽度为左右边距加上左右边框加上左右填充再加上内容宽度 2.border-box 设置宽度等于 ...
- LaTeX表格紧跟文字 (不影响下方文本对齐)
很多博客会让你用下面这行替换\\begin{table}和\\end{table},但是这样替换以后,表格下方所有文字都变成了居中对齐,section格式也都失效了. \makeatletter\de ...
- 什么是SQL Server2019大数据群集?
从SQL Server 2019(15.x)开始,SQL Server大数据群集允许您部署在Kubernetes上运行的SQL Server,Spark和HDFS容器的可伸缩群集.这些组件并排运行,使 ...
- cocos:C++ 导出到lua, genbindings.py修改
cocos:C++ 导出到lua, genbindings.py修改 1. 准备 把tools目录下的cocos2dx_extension.ini, genbindings.py, userconf. ...
- Spring Boot 排除自动配置的 4 种方法,关键时刻很有用!
Spring Boot 提供的自动配置非常强大,某些情况下,自动配置的功能可能不符合我们的需求,需要我们自定义配置,这个时候就需要排除/禁用 Spring Boot 某些类的自动化配置了. 比如:数据 ...
- Java的策略和保护域
参考文章: (1)java之jvm学习笔记十(策略和保护域) https://blog.csdn.net/yfqnihao/article/details/8271415
- Docker安装及简单使用(Ubuntu)
### Ubuntu18下docker安装 * step 1: 安装必要的一些系统工具 sudo apt-get update sudo apt-get -y install apt-transpor ...
- SpringBoot 应用篇之从 0 到 1 实现一个自定义 Bean 注册器
191213-SpringBoot 应用篇之从 0 到 1 实现一个自定义 Bean 注册器 我们知道在 spring 中可以通过@Component,@Service, @Repository 装饰 ...