当前位置:首页 > 技术分析 > 正文内容

基本Spring Cloud的微服务架构搭建及应用(一)

ruisui882个月前 (04-30)技术分析13

1、Spring Cloud介绍

Spring Cloud家族有许多成员:

Spring Cloud Config - 配置管理工具包,集中化管理集群配置,目前支持本地存储、Git 以及 Subversion;
Spring Cloud Bus - 事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与 Spring Cloud Config 联合实现热部署;
Spring Cloud Sleuth - 日志收集工具包,封装了 Dapper 和 log-based 追踪以及 Zipkin 和 HTrace 操作,为 SpringCloud 应用实现了一种分布式追踪解决方案;
Spring Cloud Stream - Spring 数据流操作开发包,封装了与 Redis、Rabbit、Kafka 等发送接收消息;
Spring Cloud OAuth2 - 基于 Spring Security 和 OAuth2 的安全工具包,为你的应用程序添加安全控制;
Eureka,服务注册和发现,它提供了一个服务注册中心、服务发现的客户端,还有一个方便的查看所有注册的服务的界面;
Zuul,网关,所有的客户端请求通过这个网关访问后台的服务;
Ribbon,即负载均衡;
Feign,服务客户端,服务之间如果需要相互访问,可以使用RestTemplate,也可以使用Feign客户端访问,它默认会使用Ribbon来实现负载均衡;
Hystrix,监控和断路器;
......

在当前文章中不会对这些组件的单个使用作很详细的介绍,这些资料网上都可以找到,读者可以根据自己的需要去网上查询,这里只是演示如何将其中一些常用的组件组合起来,搭建起一个可以运行的Spring Cloud应用架构。

Spring Cloud的有一些组件并不是都是完美的,有一些国产组件比它做得更好、更符合国人的使用习惯,如阿里用于微服务治理的Sentinel比Hystrix更好用(基于Sentinel的高可用限流系统设计及实现完整版)、推程的Apollo比Spring Cloud Config更适合作配置中心、Skywalking的无侵入式调用链监控比Spring Cloud Sleuth更灵活更方便集成等等,可以根据自己的实际情况选择最合适的。

2、示例架构介绍

当前的示例应用中,不会把所有的组件都用完,只是拣选一些常用几个组件作为示例演示,其中Zuul with Ribbon作为网关、Eureka作为注册与发现中心、Feign为远程调用组件、
spring-cloud-config-serverw作为配置中心并以Git作为配置存储中心,并且编写了两个基于Spring Boot的示例应用application-1和application-2用于演示,以下是本次示例的架构图:



当前示例的所有代码都放在了码云上面:
https://gitee.com/laofeng/spring-cloud,读者可以自己下载下来自己尝试。

3、项目搭建及运行

1、config-service本地的Git缓存目录默认为
/data/spring-cloud-config/repo,如果该目录不存在则需要建立该目录;config-service是从git中去拉取配置的,如果没有现成的则需要先搭建一个gitlab,我建意通过docker搭建,比较方便,以下是一个操作命令:

Docker安装Gitlab

1)拉取镜像:

docker pull gitlab/gitlab-ce

2)启动:

docker run -d -p 443:443 -p 8881:80 -p 222:22 --name gitlab --restart always -v /data/gitlab/config:/etc/gitlab -v /data/gitlab/logs:/var/log/gitlab -v /data/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce

3)通过admin/admin登陆后,再创建用户test_user并设置密码test_user,再通过test_user登陆创建名为spring-cloud-config的项目,再把当前目录spring-cloud-config中的内容复制过去并提交到Git中。

2、将commons工程安装到本地maven仓库中:mvn source:jar install ;

3、项目启动顺序:eureka-service、 config-service、gateway-service、application-1、application-2;

4、通过Eureka查过各服务及应用的启动情况,访问URL:http://127.0.0.1:8761/ ;

5、验证:

访问application-1提供的接口:

 http://127.0.0.1:20250/test/getARandomValue 该接口实际会访问application-2提供的接口
 http://127.0.0.1:20250/test/getValueOfKey1

访问application-2提供的接口:
http://127.0.0.1:20260/test/getARandomValue

访问网关接口:

 http://127.0.0.1:8762/api/test/getValueOfKey1
 http://127.0.0.1:8762/api/test/getARandomValue

如果以上都可以正常访问,则说明应用启动成功。

今天就到此为止,后面会把这几个应用如何搭建的步骤分为不同的文章写出来。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/3704.html

分享给朋友:

“基本Spring Cloud的微服务架构搭建及应用(一)” 的相关文章

Deepin Linux正式引入AI功能,成为第一个正式加入AI潮流的Linux发行版

Deepin Linux是一个基于Debian的Linux发行版,以美观和实用性而闻名。现在为了达到人工智能发展趋势的前沿,Deepin Linux的开发人员宣布,他们已经开始将AI功能集成到桌面环境及其随附的应用程序中。AI集成包含了两种风格——AI驱动的图像编辑插件和AI编码助手。其中图像编辑插...

10个实例小练习,快速入门熟练 Vue3 核心新特性(一)

作者:xuying 全栈修炼转发链接:https://mp.weixin.qq.com/s/_n2seDbbiO5hXQfuUGbUCQ前言Vue3.0 发 beta 版都有一段时间了,正式版也不远了,所以真的要学习一下 Vue3.0 的语法了。本篇文章总共分两部分,望小伙伴们认真阅读。下一篇:10...

面试被逼疯:聊聊Python Import System?

面试官一个小时逼疯面试者:聊聊Python Import System?对于每一位Python开发者来说,import这个关键字是再熟悉不过了,无论是我们引用官方库还是三方库,都可以通过import xxx的形式来导入。可能很多人认为这只是Python的一个最基础的常识之一,似乎没有可以扩展的点了,...

多项修正 尼康D4s发布最新1.10版固件

尼康公司与2014年8月27日发布了D4s的最新固件,固件版本号为C:1.10。这次固件升级,主要解决了一些BUG,并且对拍摄菜单与相机操作做了一定调整。下面是本次新固件的具体信息:尼康发布D4s最新C固件 1.10版对C固件升级到1.10版所作的修改:当选定运动VR模式并换上 AF-S 尼克尔 4...

《暗黑破坏神 2:重制版》PC 版 2.3 版本发布,支持英伟达 DLSS

IT之家 12 月 3 日消息,暴雪为《暗黑破坏神 2:重制版》PC 版发布了更新 2.3 版本,添加了“离线难度缩放”滑块(玩家可以在单人游戏时增加挑战和奖励的级别)、多项辅助功能和用户界面改进,以及英伟达 DLSS 支持。玩法改进:玩家现在可以在离线游戏的选项菜单中使用“游戏难度等级”,它提供与...

前端路由简介以及vue-router实现原理

作者:muwoo 来源:https://zhuanlan.zhihu.com/p/37730038后端路由简介路由这个概念最先是后端出现的。在以前用模板引擎开发页面时,经常会看到这样http://www.xxx.com/login 大致流程可以看成这样:浏览器发出请求服务器监听到80 端口(或443...