idea打开springcloud项目注解爆红_SpringCloud基础(2)Provider和Consumer

本文介绍了如何在Idea中创建SpringCloud项目,包括Provider和Consumer的配置,讲解了如何避免注解报红问题,以及设置负载均衡。通过创建新的Provider并观察注册中心,展示了SpringCloud的基础工作原理,帮助读者理解分布式系统的基本概念。
摘要由CSDN通过智能技术生成

上一篇文章我们说了注册中心怎么写

小宇:SpringCloud基础(1)​zhuanlan.zhihu.com
zhihu-card-default.svg

现在说一下Provider和Consumer的写法

先写Provider

b9cfc4f8e2fef72996bb734b894c3566.png

在idea里新建一个项目 之前的注册中心不用关!!! 因为最后这些东西是要同时开着的

选中Eureka Discovery 这里特别说一下 因为这个是一个小demo就不连数据库玩了

如果有需要的话数据库链接什么的是在这里实现的 勾选SQL里的Mysql和Mybatis就可以了

然后写法就是和正常的Springboot一样

打开我们的配置文件

dedd64bf7faba80b523e54991721a55c.png

port设置我们的端口 注意别和注册中心一样 不然会冲突

然后第二行和注册中心的一模一样 之前我们注册中心使用的就是这个url

第三行是给我们provider起一个名字 我就简写成pdr了

1dc2a574bb096254acf34dbeafd5c454.png

然后打开我们的启动类 加上这行注解 @EnableDiscoveryClient

表明这个会注册进注册中心

如果要使用这个项目 在pom文件中导入依赖

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

然后在启动类同级建立文件夹 再建立一个class

并在class头部加入@RestController注解

d265dc7ee2a99f3c8ccab96970f0bc39.png

如果之后想让他显示出些东西

3585bb55444d3f7184bb263b1cc9238f.png

和正常的Controller一样的写法

然后我们的Provider就写完了

启动我们刚写完的Provider

6eb8dc42b9078de40d89d2007a28672c.png

可以看到我们的Provider已经成功注册了

4ebd9e6c7047bcfc9bdae97f21954a43.png

建立Consumer同上 选择这个依赖 然后建立我们的Consumer项目

737e6f3326dbb29c1af700cebd7f4d68.png

建立好后写我们的配置文件

最后一行 是我们的负载均衡 在这里写一下 用的 Ribbon

之后进入我们的启动类

a9ed4eb5e0e54ee92782cce56e919088.png

加入这两个注解 但是 加完后会发现EnableFeignClients是红色的

这是因为SpringCloud2.0之后 Feign换地方了

然后为了让我们项目启动后不会自动停止 加上web的依赖

所以我们在pom文件下添加依赖

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

然后EnableFeignClients的红色就会消失了

在我们启动类的同级目录下

建立两个文件夹

Controller和service

在service下建立接口 controller建立class

在接口中加上如下注解

7799f697e2f4ed9ba227470b59559fa0.png

fb072f7ab8db12719ccf609f0cfb1ae8.png

这个注解的name值就是我们注册中心Provider(提供者)注册的名字

Consumer(消费者)根据这个名字去找提供者

5c64922e525cdd939dd8f88c35e07bc6.png

把提供者相应的controller头部复制过来然后改成接口 就像这样 这里我们这里加一个接受参数

为了测试我们的负载均衡 之前的那个Provider也是为了测试负载均衡所以加上一个传入参数

然后写我们的controller类

a42728b032755346644390a6f031790e.png

头部声明 然后和正常controller一样

然后启动我们的项目

cd04539a82ce5b3b9ac1e298b8bf6ba2.png

刷新我们的注册中心页面 发现我们的CUM也成功的注册进来了

现在我们开启的项目有三个 注册中心 提供者 消费者 、

注意 这三个项目都在启动ing! 没有停止的

为了能直观的看到我们的测试结果

对我们的pdr做一些修改 注意是修改Provider下的 然后重新启动项目

cf522e45ba41456f6a1dce332adb4f32.png

然后访问这个URL

b60e0e09eb4db3a00f064aefa567b5ef.png

9c337830d7e98f27f60195c320a249ac.png

看 这是我们运行的结果 现在 再弄一个一模一样的Provider

记得在配置文件里改端口号

3bf9448afb0cac198637b257d094f257.png

这是我们新Provider的配置文件

启动后刷新我们的注册中心页面可以看到

c22a108af7c0b630957760701b7facd9.png

有两个PDR了

再次访问

b8d40aed609f9be9f34f3d3a4630c556.png

e9a8dbd535da388a43188fa56ae20018.png

看两个PDR的控制台 他们输出的logger日志

循环20次的任务被分给了他们两个去处理

----------------分割

这是最基础的小demo搭建 测试已经同时开启了四个项目了 两个PDR一个CUM一个注册中心

如果以上都做出来了

那么就能理解一些分布式了吧?

多次的请求交给不同的PDR(Provider-提供者)去处理 在一个PDR不够用时可以创建多个PDR

一个CUM(Consumer-消费者)不够用可以创建多个CUM

一个PDR挂了还有更多的PDR顶上 一个CUM还有更多的CUM顶上

一个注册中心挂了还有更多的注册中心顶上

大家能看到这个应该也了解不少springcloud了

所以如果demo做出来了 大家应该可以更加深入的理解springcloud了

其他的组件zuul(网关)config什么的 大体也都是这个个注册流程

如果有需要的话 都可以建立后加入注册中心连接在一起

就是很多很多很多的项目了

所以 这时 我们就需要docker了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值