网站首页 > 开源技术 正文
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
如果以上都可以正常访问,则说明应用启动成功。
今天就到此为止,后面会把这几个应用如何搭建的步骤分为不同的文章写出来。
猜你喜欢
- 2025-05-08 代码质量扫描工具SonarQube原理及环境搭建
- 2025-05-08 小心!你的这些习惯和粗心,可能正在泄露信息!丨提示
- 2025-05-08 一步步搭建openwrt编译环境并编译ddserver源码
- 2025-05-08 远程办公、巡逻机器人、口罩识别……离不开一群“研发技术宅”
- 2025-05-08 树莓派可以DIY有趣的小制作(自己做树莓派)
- 2025-05-08 Git使用指南 | 教你轻松学会Git(git用法教程)
- 2025-05-08 UE5官方推荐!大型项目版本控制用Perforce还是SVN?
- 2025-05-08 戴尔服务器T410三块硬盘RAID5数据恢复成功案例
- 2025-05-08 为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 2025-05-08 Java开发者推荐的10种常用工具(java开发者推荐的10种常用工具是什么)
你 发表评论:
欢迎- 05-08Peking Opera Featuring National Treasure Min Fanglei Premiers in Changsha
- 05-08安卓版Opera Mini浏览器更新,增强大屏设备支持
- 05-08Opera 36.0开发者版本发布:个性化新闻+简化菜单
- 05-08Vitas发布20周年专辑《OPERA20》首支单曲
- 05-08Android 版 Opera 89 带来了大量标签页改进
- 05-08基本Spring Cloud的微服务架构搭建及应用(一)
- 05-08代码质量扫描工具SonarQube原理及环境搭建
- 05-08小心!你的这些习惯和粗心,可能正在泄露信息!丨提示
- 最近发表
-
- Peking Opera Featuring National Treasure Min Fanglei Premiers in Changsha
- 安卓版Opera Mini浏览器更新,增强大屏设备支持
- Opera 36.0开发者版本发布:个性化新闻+简化菜单
- Vitas发布20周年专辑《OPERA20》首支单曲
- Android 版 Opera 89 带来了大量标签页改进
- 基本Spring Cloud的微服务架构搭建及应用(一)
- 代码质量扫描工具SonarQube原理及环境搭建
- 小心!你的这些习惯和粗心,可能正在泄露信息!丨提示
- 一步步搭建openwrt编译环境并编译ddserver源码
- 远程办公、巡逻机器人、口罩识别……离不开一群“研发技术宅”
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)