新手学习微服务SpringCloud项目架构搭建方法
这篇文章主要介绍了新手学习微服务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项目搭建
具体的项目搭建步骤就不详细介绍了,大家直接去看源码:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: Linux上安装mysql数据库