微服务SpringCloud项目架构搭建入门
Spring的微服务框架SpringCloud受到众多公司欢迎,给大家带来一篇框架搭建入门。本次采用的版本是Spring Cloud版本为Finchley.RELEASE。
一、SpringCloud项目简介
spring cloud:
为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。
Spring Boot:
旨在简化创建产品级的 Spring 应用和服务,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用微服务功能(spring cloud是基于springboot的,所以需要开发中对springboot有一定的了解)。
二、SpringCloud子项目介绍
Netflix Eureka:和zookeeper类似,是一个用于服务注册和发现的组件,主要分为EurekaServer和EurekaClient,EurekaServer是服务注册中心,EurekaClient为Eureka的客户端(可以是生产者,也可以是消费者)
Feign:是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。
Spring Cloud Config:配置管理开发工具包,可以让你把配置放到远程服务器,目前支持本地存储、Git以及Subversion。
Spring Cloud Bus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。
Spring Cloud Netflix:针对多种Netflix组件提供的开发工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。
Netflix Hystrix:容错管理工具,旨在通过控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力
Netflix Zuul:边缘服务工具,是提供动态路由,监控,弹性,安全等的边缘服务。
Netflix Archaius:配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。
Spring Cloud for Cloud Foundry:通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台。
Spring Cloud Sleuth:日志收集工具包,封装了Dapper,Zipkin和HTrace操作。
Spring Cloud Data Flow:大数据操作工具,通过命令行方式操作数据流。
Spring Cloud Security:安全工具包,为你的应用程序添加安全控制,主要是指OAuth2。
Spring Cloud Consul:封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。
Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服务注册和发现。
Spring Cloud Stream:数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。
Spring Cloud CLI:基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件。
三、微服务开发要素
1、Codebase:从一个代码库部署到多个环境。
2、Dependencies:使用显式的声明隔离依赖,即模块单独运行,并可以显式管理依赖。
3、Config:在系统外部存储配置信息。
4、Backing Services:把支持性服务看做是资源,支持性服务包括数据库、消息队列、缓冲服务器等。
5、Build, release, run:严格的划分编译、构建、运行阶段,每个阶段由工具进行管理。
6、Processes:应用作为无状态执行。
7、Port binding:经由端口绑定导出服务,优先选择 HTTP API 作为通用的集成框架。
8、Concurrency:并发性使用水平扩展实现,对于web就是水平扩展web应用实现。
9、Disposability:服务可处置性,任何服务可以随意终止或启动。
10、Dev/prod parity:开发和生产环境保持高度一致,一键式部署。
11、Logs:将日志看做是事件流来管理,所有参与的服务均使用该方式处理日志。
12、Admin processes:管理任务作为一次性的过程运行(使用脚本管理服务启动和停止)。
四、SpringCloud项目搭建
具体的项目搭建步骤就不详细介绍了,大家直接去看源码:
微服务SpringCloud项目架构搭建入门的更多相关文章
- 微服务SpringCloud+Docker入门到高级实战(教程详情)
		第一章 课程介绍和学习路线 1.微服务架构SpringCloud课程介绍 简介:课程介绍和课程大纲讲解,讲课风格和重点内容理解技巧 2.技术选型和学后水平 简介:课程所需基础和技术选型讲解,学完课程可 ... 
- 微服务SpringCloud+Docker入门到高级实战(目录)
		第一章 课程介绍和学习路线 1.微服务架构SpringCloud课程介绍 简介:课程介绍和课程大纲讲解,讲课风格和重点内容理解技巧2.技术选型和学后水平 简介:课程所需基础和技术选型讲解,学完课程可以 ... 
- SpringCloud与微服务Ⅲ --- SpringCloud入门概述
		一. 什么是SpringCloud SpringCloud基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetF ... 
- Java生鲜电商平台-深入理解微服务SpringCloud各个组件的关联与架构
		Java生鲜电商平台-深入理解微服务SpringCloud各个组件的关联与架构 概述 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术.不过大多数讲解还停留 ... 
- 「 从0到1学习微服务SpringCloud 」09 补充篇-maven父子模块项目
		系列文章(更新ing): 「 从0到1学习微服务SpringCloud 」06 统一配置中心Spring Cloud Config 「 从0到1学习微服务SpringCloud 」07 RabbitM ... 
- 【分布式微服务企业快速架构】SpringCloud分布式、微服务、云架构快速开发平台源码
		鸿鹄云架构[系统管理平台]是一个大型 企业.分布式.微服务.云架构的JavaEE体系快速研发平台,基于 模块化.微服务化.原子化.热部署的设计思想,使用成熟领先的无商业限制的主流开源技术 (Sprin ... 
- 小D课堂 - 新版本微服务springcloud+Docker教程_6-06 zuul微服务网关集群搭建
		笔记 6.Zuul微服务网关集群搭建 简介:微服务网关Zull集群搭建 1.nginx+lvs+keepalive https://www.cnblogs.com/liuyisai/ ... 
- 小D课堂 - 新版本微服务springcloud+Docker教程_汇总
		小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介 小D课堂 - 新版本微服务springcloud+Docker教程_1_02技术选型 小D课堂 - 新版本微服务s ... 
- 小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介
		笔记 ============================================= SpringCloud课程笔记.txt 第一章 课程介绍和学习路线 1.微服务架构SpringClou ... 
随机推荐
- Python—定时任务(APScheduler实现)
			简介 APScheduler的全称是Advanced Python Scheduler.它是一个轻量级的基于Quartz的 Python 定时任务调度框架.APSche ... 
- 浮点运算与boost.multiprecision
			在C++中,float占4个字节,double占8个字节,均采用 IEEE 754 浮点标准:内部都是以二进制为基础,表述实数,有些实数可以被精确表述,比如0.2,但有些不行,比如0.3.针对这一点, ... 
- http并发访问模型(2)
			目录 http并发 并发访问模型 响应流程 从IO的角度看待响应 从函数的角度看待响应 日志处理 我叫张贺,贪财好色.一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网 ... 
- Jmeter脚本录制攻略
			基于Apache JMeter(5.2.1) 首先在TestPlan里添加一个HTTP代理服务武器: 设置端口,在目标控制器里选择线程组. 在Chrome浏览器里设置代理: 点击启动按钮后,在浏览器登 ... 
- Hibernate session.save()实体类,主键增长问题
			实体类如下: package com.wondersgroup.test.entity; import java.io.Serializable; import javax.persisten ... 
- office2019专业版激活秘钥 激活码
			office2019专业版激活码 激活秘钥 2019年5月更新 [Key]:F4QWT-NMMKH-XPTV9-W9HFB-B4JCQ [剩余次数:900000+] office2019激活 产品秘钥 ... 
- 荧屏弹幕_新增h5requestAnimationFrame实现
			所有的页面逻辑也是比较简单,用原生js实现,封装也是比较简单!要让页面效果更为炫酷,则可去引入相应的css,背景图片自己去img/下下载引入喔! HTML页面 <!doctype html> ... 
- Java 正则表达式_网络爬虫
			首先 需要了解 一些 关于 网络爬虫的 基本知识: 网络爬虫: 所谓的 爬虫 就是一个 应用 程序, 这个 应用 程序 会 获取 网络中的 指定信息(网页 数据). 例如百度: 启动 这个 爬虫 程序 ... 
- C语言和其他语言的区别
			一.嵌入式开发中为什么选择C语言? 首先嵌入式是在已有的硬件基础上,移植操作系统,而现在操作系统的内核都是用C实现的 二.为什么用C语言开发操作系统内核? C语言有三大特点(优点): ①C语言具有出色 ... 
- 程序员修神之路--redis做分布式锁可能不那么简单
			菜菜哥,复联四上映了,要不要一起去看看? 又想骗我电影票,对不对? 呵呵,想去看了叫我呀 看来你工作不饱和呀 哪有,这两天我刚基于redis写了一个分布式锁,很简单 不管你基于什么做分布式锁,你觉得很 ... 
