Spring Cloud(2):构建微服务 - Spring Boot

微服务的特点及构建遵循的原则

约束:微服务遵循UNIX理念,即应用程序是服务的集合,每个服务只做一件事,并做好一件事。

松耦合:基于微服务的应用程序是小型服务的集合,服务之间使用HTTP和REST通过非特定实现的接口彼此交互。只要服务接口未改变,微服务内部可以更加自由地被修改。

抽象:微服务完全拥有自己的数据结构和数据源,微服务所拥有的数据只能由该服务修改。

独立:每个微服务可以独立地编译和部署。

服务粒度

开始的时候可以让微服务涉及的范围更广一些,然后将其重构到更小的服务。

重点关注服务如何相互交互。

随着对问题域的理解不断增长,服务的职责将随着时间的推移而改变。

服务粒度过粗, 则会表现为:服务承担了过多的职责, 会餐跨大量表来管理数据, 测试用例将变得过多。

服务粒度过细, 则会表现为:微服务像兔子一样繁殖, 服务彼此严重依赖, 成为简单CRUD服务的集合。

微服务构建的最佳实践

代码库:每个微服务及服务器信息都应该处于版本控制中, 并且有自己独立的代码存储库。

依赖:通过构建工具(e.g. Maven)明确声明依赖项。

配置:将应用程序配置(特别是特定于环境的配置)与代码分开存储。

后端服务:通过网络与数据库或消息系统进行通信。

构建,发布和运行:保持应用程序构建,发布和运行完全分开,已构建的服务是不可改变的。

进程:微服务应该始终是无状态的,它们可以在任何超时时被杀死和替换,而不用担心一个服务实例的丢失而导致数据丢失。

端口绑定:可运行的微服务要包含一个运行时引擎(不需要单独的web服务器),服务应该在命令行上自行启动,并通过公开的HTTP端口立即访问。

并发:在需求量增大时,要启动更多的微服务实例水平伸缩。

可任意处置:可以根据需要任意启动和停止。

开发环境与生产环境等同:最小化服务运行的所有环境之间的差距。

日志:使用工具记录日志,直观查看日志。

管理进程:使用通用脚本对服务执行管理任务。

构建一个Hello World微服务

本例使用Spring-Boot-Web构建,并使用Maven Docker插件,更方便的创建镜像。

https://github.com/lyz170/spring-cloud-demo/tree/master/spring-cloud-service-helloworld

原文地址:https://www.cnblogs.com/storml/p/9583504.html

时间: 2024-10-09 10:53:36

Spring Cloud(2):构建微服务 - Spring Boot的相关文章

实战:基于spring cloud + docker构建微服务

本系列记录学习 spring-cloud-microservice-example的实战过程,并对利用spring cloud + docker 构建端到端的微服务架构技术进行解析. 0.安装前的准备,下列软件需要安装. Maven 3 Java 8 Docker Docker Compose 我的环境 Ubuntu 16.04 Java openjdk 1.8.0 Docker 18.03.1-ce docker-compose 1.8.0 1.克隆或复制工程 $ docker clone h

《Spring Cloud与Docker微服务架构实战》配套代码

不才写了本使用Spring Cloud玩转微服务架构的书,书名是<Spring Cloud与Docker微服务架构实战> - 周立,已于2017-01-12交稿.不少朋友想先看看源码,现将代码放出. 本次放出的代码: 共计70+个DEMO 覆盖Eureka.Ribbon.Feign.Hystrix.Zuul.Spring Cloud Config.Spring Cloud Bus.Spring Cloud Sleuth.Docker.Docker Compose等. 1-11章代码地址: ht

从 Spring Cloud 看一个微服务框架的「五脏六腑」

原文:https://webfe.kujiale.com/spring-could-heart/ Spring Cloud 是一个基于 Spring Boot 实现的微服务框架,它包含了实现微服务架构所需的各种组件. 注:Spring Boot 简单理解就是简化 Spring 项目的搭建.配置.组合的框架.因为与构建微服务本身没有直接关系,所以本文不对 Spring Boot 进行展开.另外本文有一些例子涉及到 Spring 和 Spring Boot,建议先了解一下 Spring 和 Spri

Spring Cloud入门 (6) - 微服务与消息驱动

1.Spring Cloud Stream 介绍 Spring Cloud Stream 是一个用于构建消息驱动微服务的框架.使用Stream 框架,我们不必关心如何连接各个消息代理中间件,也不必关系如何进行消息的发送与接收,只需要简单的进行配置就可以实现这些功能. 2.消息代理中间件 Spring Cloud Stream 的绑定器提供了 RabbitMQ 与 Kafka 两个消息代理中间件的实现 3.安装 RabbitMQ 我这里直接使用 docker 安装,记得要安装 management

SpringCloud(9)使用Spring Cloud OAuth2保护微服务系统

一.简介 OAth2是一个标准的授权协议. 在认证与授权的过程中,主要包含以下3种角色. 服务提供方 Authorization Server. 资源持有者 Resource Server. 客户端 Client. OAuth2的认证流程如图所示,具体如下. (1)用户(资源持有者)打开客户端 ,客户端询问用户授权. (2)用户同意授权. (3)客户端向授权服务器申请授权. (4)授权服务器对客户端进行认证,也包括用户信息的认证,认证成功后授权给予令牌. (5)客户端获取令牌后,携带令牌向资源服

用Spring Cloud OAuth2保护微服务系统

一.简介# OAth2是一个标准的授权协议. 在认证与授权的过程中,主要包含以下3种角色. 服务提供方 Authorization Server. 资源持有者 Resource Server. 客户端 Client. OAuth2的认证流程如图所示,具体如下. (1)用户(资源持有者)打开客户端 ,客户端询问用户授权. (2)用户同意授权. (3)客户端向授权服务器申请授权. (4)授权服务器对客户端进行认证,也包括用户信息的认证,认证成功后授权给予令牌. (5)客户端获取令牌后,携带令牌向资源

Spring Cloud Alibaba 新一代微服务解决方案

本篇是「跟我学 Spring Cloud Alibaba」系列的第一篇, 每期文章会在公众号「架构进化论」进行首发更新,欢迎关注. 1.Spring Cloud Alibaba 是什么 Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案,是阿里巴巴开源中间件与 Spring Cloud 体系的融合. 马老师左手双十一,右手阿里开源组件,不仅占据了程序员的购物车,还要攻占大家的开发工具. 先说说 Spring Cloud 提起微服务,不得不提 Spring Clou

spring cloud(一):微服务架构开篇

在公司使用spring cloud快一年了,项目也上线了,同时在线用户到达有几十万,公司之前用的是传统项目部署,业务放在一起,导致系统庞大,难以维护;采用spring cloud之后,一个业务对应一个独立的模块,也就是我们所说的微服务,开发人员维护起来就没那么困难,同时系统启动较快,下面就讲解下项目用到的技术框架: Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总线.负载均衡.断路器.数

Spring Cloud——什么是微服务?

一.什么是微服务架构? 1.系统拆分 2.服务各自独立运行.独立部署 3.服务之间基于HTTP的Restful API通信协作 二.为什么选择Spring Cloud? 1.基于Spring Boot实现的微服务架构工具. 2.组成 Config:配置中心,支持git存储配置,实现应用配置外部化,客户端动态修改配置信息 Eureka:服务的注册与发现 Hystrix:容错管理组件,实现服务间降级和熔断 Ribbon:实现客户端负载均衡 Feign:基于Ribbon和Hystrix的声明式服务调用