javassm框架项目实例_Spring Cloud微服务项目完整示例,含注册中心,网关,断路器等等...

Spring Cloud微服务项目完整示例

目的是为了演示基于Spring Cloud微服务框架,搭建一个接近业务实际场景的项目,只实现了后端项目,前端可以使用VUE或者其他框架。

后端框架包括注册中心 Eureka、配置中心Spring Cloud Config、API网关Zuul、客户端负载均衡Ribbon、断路器Hystrix,同时还包括2个后端业务服务,一个用户服务sc-user-service,另一个是数据服务 sc-data-service。

技术架构图

用户从浏览器发起请求,经过浏览器,请求到达Nginx,打开前端页面,由前端页面发起请求后端服务,当请求到达后端Nginx后,Nginx对网关层进行负载,因为网关也需要做HA。

此时网关Gateway 接收到请求后,根据请求路径进行动态路由,根据服务发现是User Service 中的服务,则从Ribbon 中选择一台 User Service的实例进行调用,由User Service 返回数据,如果此时User Service 需要使用Data Service的数据,则选择一台Data Service的实例进行调用,然后数据给前端,流程结束。

c42cd7b56ff04b5a813bd28d920ee666

具体实现

项目结构如下所示,从module名称,即可理解每个项目的作用了。

其中common是一个公共基础包,方便给后台服务引用。

89c9e9831d504b4985a42aaf0a224266

运行微服务应用

按顺序启动 eureka、zuul-server、data-service、user-service,另外的hystrix-dashboard和config-server 是可行的module。

如下图所示,可以看到每个应用的运行端口号。

f6677e1fe3fc4701aa2fa9e48fef44b1

访问 eureka UI,查看服务注册情况。

http://localhost:8761/

每个服务都正常注册到 eureka 注册中心了。

04cffac131ee4923ba106afb4ca859d5

通过网关,访问如下URL,获取context user 信息:

http://localhost:7777/sc-user-service/getContextUserId

返回如下结果:

{"exceptionType":"cn.springcloud.book.common.exception.BaseException

# springcloud-zone #### 项目介绍 项目为学习用途搭建,主要包括以下模块: springcloud-register:服务注册中心 (eureka-server),提供服务注册与发现功能。 springcloud-config:远程配置中心,分为git与native两个版本,为producer提供远程配置。 springcloud-connect:数据连接中心,包DB、Redis、MQ、Mail等组件的配置入口,只需其他模块在pom中添加依赖并提供相关配置即可快速接入。 springcloud-producer:服务提供者,包具体的业务逻辑实现等。 springcloud-consumer:服务消费者,从eureka server中获取producer提供的服务springcloud-gateway网关接口,暴露给调用方调用,包负载均衡、重试、熔断等功能。 springcloud-zipkin:链路跟踪工具,监控并就持久化微服务集群中调用链路的通畅情况,采用rabbitmq异步传输、elasticsearch负责持久化的方式集成。 #### 软件架构 1、JDK:jdk-8u181-windows-x64。 2、MAVEN:apache-maven-3.5.4 3、IDE:spring-tool-suite-3.9.3.RELEASE-e4.7.3-win32-x86_64 4、springboot:1.5.10.RELEASE。 5、springcloud:Edgware.SR2版本 #### 安装教程 需要提前安装如下程序: 1、ActiveMQ。 2、RabbitMQ。 3、Redis 4、Elasticsearch。 5、Elasticsearch-head。 6、MYSQL(执行springcloud-producer目录src/main/resources/templates/datasource.text中的建表语句) #### 使用说明 项目运行顺序: 1、 springcloud-register, 2、 springcloud-config-native或者springcloud-config-git: 启动git远程配置中心需要修改springcloud-producer项目的bootstrap.yml配置文件,并将配置配件上传到git上。 3、springcloud-zipkin。 4、 springcloud-producer。 5、springcloud-consumer。 6、springcloud-gateway. 注: 在测试gateway负载均衡时可以启动单个项目的多个实例,具体方式如下: 1、项目启动类右键run as->run configurations..,打开配置框。 2、java application右键new,打开新建窗口。 3、顶部tab选中Main,在name中填写启动类名称,project中填写项目名称,main class中填写启动类详细路径+类名。 4、顶部tab选中Arguments,在VM arguments中填写-Dserver.port=端口号,比如-Dserver.port=8080 5、点击run即可以配置的端口号启动多个项目实例了。 #### 参与贡献 ningchongqing
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值