您当前的位置:首页 > 电脑百科 > 程序开发 > 程序员

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

时间:2020-06-21 21:48:46  来源:  作者:

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用于演示,以下是本次示例的架构图:

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

 

当前示例的所有代码都放在了码云上面:
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

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

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



Tags:Spring Cloud   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
目前,Spring Cloud Gateway是仅次于Spring Cloud Netflix的第二个最受欢迎的Spring Cloud项目(就GitHub上的星级而言)。它是作为Spring Cloud系列中Zuul代理的继任者而创建的。...【详细内容】
2021-04-21  Tags: Spring Cloud  点击:(426)  评论:(0)  加入收藏
Eureka 是Spring Cloud Netflix 微服务套件中的一部分,它基于Netflix Eureka做了二次开发,主要负责完成微服务架构中的服务治理功能。Eureka 基础架构三个核心要素1:服务注册...【详细内容】
2021-01-14  Tags: Spring Cloud  点击:(162)  评论:(0)  加入收藏
写在前面要出发周边游(以下简称要出发)是国内知名的主打「周边游」的在线旅行网站,为了降低公司内部各个业务模块的耦合度,提高开发、交付及运维效率,我们在 2017 年就基于 Sprin...【详细内容】
2020-11-27  Tags: Spring Cloud  点击:(156)  评论:(0)  加入收藏
Spring Cloud的开源可分布式物联网(IOT)平台,用于快速开发、部署物联设备接入项目,是一整套物联系统解决方案物联网架构 模块划分,四层架构 驱动层:用于提供标准或者私有协议...【详细内容】
2020-11-03  Tags: Spring Cloud  点击:(431)  评论:(0)  加入收藏
01 事件背景6月25日, Apache 官方安全团队通过邮件公开报告了一个高危漏洞,邮件中介绍了 HTTP/2 拒绝服务漏洞的细节及解决方案。如下图所示:漏洞详情链接:http://mail-archives...【详细内容】
2020-07-09  Tags: Spring Cloud  点击:(113)  评论:(0)  加入收藏
1、Spring Cloud介绍Spring Cloud家族有许多成员:Spring Cloud Config - 配置管理工具包,集中化管理集群配置,目前支持本地存储、Git 以及 Subversion;Spring Cloud Bus - 事件、...【详细内容】
2020-06-21  Tags: Spring Cloud  点击:(64)  评论:(0)  加入收藏
Spring Cloud是一套非常完善的分布式框架,目前很多企业开始用微服务、Spring Cloud的优势是显而易见的。Spring Cloud对于中小型互联网公司来说是一种福音,因为这类公司往往没...【详细内容】
2020-06-12  Tags: Spring Cloud  点击:(112)  评论:(0)  加入收藏
在我搭建基于Spring Cloud的微服务体系应用的时候所需要或者是常用的属性配置文件,还有这些属性的用途,此配置大多数来自互联网,稍作整理,记录再此,以便忘记的时候可以快速的检...【详细内容】
2020-02-25  Tags: Spring Cloud  点击:(47)  评论:(0)  加入收藏
小编2015年进入一家互联网公司开始接触微服务。当时对微服务的概念也是懵懵懂懂。在逐步的探索中,踩了大大小小的坑不计其数。最开始使用的还是Springboot1.4.x的版本。版本...【详细内容】
2019-12-19  Tags: Spring Cloud  点击:(91)  评论:(0)  加入收藏
一、Spring Cloud是什么?能做什么?Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消...【详细内容】
2019-11-20  Tags: Spring Cloud  点击:(91)  评论:(0)  加入收藏
▌简易百科推荐
我 2010 年开始在 Github 上开源自己的代码。在 push 代码之前我根本没想过为什么。只是因为我当时学了 git,而且我又觉得 Github 很方便,可以用来备份自己的代码。而后我就参...【详细内容】
2021-12-28  程序员的喵    Tags:Github   点击:(2)  评论:(0)  加入收藏
JAVA开发工程师(北京)本科 3-5年经验 面议 (招1人)岗位职责:1.负责我行应用系统的设计,完成软件编码工作,负责管理代码设计规范等工作;2.根据应用需求分析说明书,评估需求研发的可行...【详细内容】
2021-12-27  just do丶IT公众号    Tags:国企   点击:(2)  评论:(0)  加入收藏
今天聊聊编程的本质。程序就是数据结构+控制+逻辑,程序员编程工作的本质是翻译,翻译机要来了,程序员怎么办?黑客帝国中的程序黑客帝国4就要上映了,不知道前三部你看懂了么?值得多...【详细内容】
2021-12-17  博士聊IT    Tags:程序员   点击:(9)  评论:(0)  加入收藏
梦醒之后,每个人对于这份职业的未来、互联网行业的未来,以及更重要的,自己的未来都有了更现实的判断 文 | 祝颖丽编辑 | 黄俊杰一个生于 1986 年的人,他所走过的前半生:从出生起,...【详细内容】
2021-12-03    财经杂志  Tags:程序员   点击:(16)  评论:(0)  加入收藏
前些天在头条看到一个八二年的哥们,述说自己找工作屡次被拒的问题,在网上引起了广泛的讨论,这件事给我留下了很深的印象,因为这哥们和我同是程序员,都人到中年,上有老下有小。唯一...【详细内容】
2021-12-01  云南贤哥在深圳    Tags:程序员   点击:(20)  评论:(0)  加入收藏
很多读者都问过一个问题:程序员如何实现高速成长?之前也写过相关的文章,强调的主要是夯实计算机体系基础知识。 再说另一个诀窍:多看经典开源项目,这些项目大多是众多顶尖程序员...【详细内容】
2021-11-30  findyi    Tags:程序员   点击:(15)  评论:(0)  加入收藏
近日,一位45岁的网民在中国政府网留言求职,引发关注。该网民自称是一名软件开发人员,今年45岁,精通各种技术体系,“而我辞职回家半年后再回来寻找工作机会的时候,却发现连个面试...【详细内容】
2021-11-17  郭主任    Tags:程序员   点击:(42)  评论:(0)  加入收藏
即使在安全技术取得进步之后,网络犯罪仍在不断增加。据统计,网络犯罪每分钟给企业造成约 290 万美元的损失。主要是因为新技术不断涌现,难以维护安全。随着网络威胁的增加,网络...【详细内容】
2021-11-04  章大千    Tags:编程语言   点击:(40)  评论:(0)  加入收藏
北漂小伙李强(化名),在北京互联网大厂工作7年,月薪3万,离职回老家开摄影店,亏了200万。李强出生于山西一座名不经传的小城市,互联网专业大学毕业的他,没有听父母的劝言回到家乡考公...【详细内容】
2021-10-29  霸王课  今日头条  Tags:程序员   点击:(53)  评论:(0)  加入收藏
程序员是青春饭,这在国内似乎是公认的。所以很多公司不愿招大龄程序员,很多程序员也“知趣”地及早转型。有的做管理,有的做架构,我还见过改行卖保险的。总之,年龄大了不想敲代码...【详细内容】
2021-10-27  编程的艺术    Tags:   点击:(30)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条