Spring Cloud系列(二):服务提供者
上一篇介绍了注册中心,这一篇介绍如何把服务注册到注册中心。
一、创建服务提供者
我们依然使用上一篇的项目,在其中创建一个spring boot模块,填好必要的信息,依赖需要选择Spring Web和Eureka Discovery Client,创建完成后主要的依赖如下:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
二、添加配置
在application.properties文件中添加以下配置
server.port=8770
spring.application.name=service-provider
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
三、提供服务
为了方便,我们直接在启动类添加一个提供服务的方法
@SpringBootApplication
@EnableEurekaClient
@RestController
public class ServiceProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceProviderApplication.class, args);
}
@RequestMapping("/callServiceProvider")
public String callServiceProvider(@RequestParam("uid") String uid) {
return "用户" + uid + "调用了此服务";
}
}
通过@EnableEurekaClient开启服务注册,而其他的写法和在spring boot中添加一个api接口是一样的,因为spring cloud就是使用REST的方式对外提供服务的。
四、启动
4.1、单节点注册中心
先启动单节点的注册中心(使用的配置文件是application.properties),再启动服务提供者,都启动成功后,在浏览器访问http://localhost:8761/,可以看到,在注册中心已经有一个服务提供者了,而名称就是在配置文件中spring.application.name的值
4.2、注册中心集群
如果使用注册中心集群,那么就把eureka.client.serviceUrl.defaultZone的值改为http://eureka-1:8761/eureka/,然后分别启动上一篇中提到的Eureka集群的三个节点,再启动服务提供者,这时访问http://eureka-1:8761/
这时可以看到SERVICE-PROVIDER服务已经在其中,再访问http://eureka-2:8762/或者http://eureka-3:8763/还是可以看到SERVICE-PROVIDER服务,这是因为当一个服务注册到注册中心集群的任意一个节点,这个节点都会把这个消息发送给其它节点,这样当有服务消费者要来注册中心寻找服务的时候,无论是在哪个注册中心节点都能保证找到服务,这也是集群的意义所在。
五、总结
以上就是服务注册的过程,在实际中,服务提供者不可能只有一个,这时注册的方法还是一样的,当注册了多个服务提供者,同样可以在注册中心的后台看到所有注册了的服务。
下一篇将介绍服务的消费。
源码已经上传到github:https://github.com/spareyaya/spring-cloud-demo/tree/master/chapter2
Spring Cloud系列(二):服务提供者的更多相关文章
- Spring Cloud系列(二) 介绍
Spring Cloud系列(一) 介绍 Spring Cloud是基于Spring Boot实现的微服务架构开发工具.它为微服务架构中涉及的配置管理.服务治理.断路器.智能路由.微代理.控制总线.全 ...
- Spring Cloud 系列之 Consul 注册中心(二)
本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Consul 注册中心(一) 本篇文章讲解 Consul 集群环境的搭建. Consul 集群 上图是一个简单的 Co ...
- Spring Cloud 系列之 Gateway 服务网关(二)
本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Gateway 服务网关(一) 本篇文章讲解 Gateway 网关的多种路由规则.动态路由规则(配合服务发现的路由规则 ...
- Spring Cloud 系列之 Sleuth 链路追踪(二)
本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Sleuth 链路追踪(一) 本篇文章讲解 Sleuth 基于 Zipkin 存储链路追踪数据至 MySQL,Elas ...
- Spring Cloud 系列之 Stream 消息驱动(二)
本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Stream 消息驱动(一) 本篇文章讲解 Stream 如何实现消息分组和消息分区. 消息分组 如果有多个消息消费者 ...
- Spring Cloud 系列之 Config 配置中心(二)
本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Config 配置中心(一) 本篇文章讲解 Config 如何实现配置中心自动刷新. 配置中心自动刷新 点击链接观看: ...
- Spring Cloud 系列之 Apollo 配置中心(二)
本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Apollo 配置中心(一) 本篇文章讲解 Apollo 部门管理.用户管理.配置管理.集群管理. 点击链接观看:Ap ...
- Spring Cloud 系列之 Alibaba Nacos 注册中心(二)
本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Alibaba Nacos 注册中心(一) 本篇文章讲解 Nacos 注册中心集群环境搭建. Nacos 集群环境搭建 ...
- Spring Cloud(二):服务注册与发现 Eureka【Finchley 版】
Spring Cloud(二):服务注册与发现 Eureka[Finchley 版] 发表于 2018-04-15 | 更新于 2018-05-07 | 上一篇主要介绍了相关理论,这一篇开始我们 ...
- spring cloud系列教程第六篇-Eureka集群版
spring cloud系列教程第六篇-Eureka集群版 本文主要内容: 本文来源:本文由凯哥Java(kaigejava)发布在博客园博客的.转载请注明 1:Eureka执行步骤理解 2:集群原理 ...
随机推荐
- 深入浅出带你玩转sqlilabs(四)-updatexml(),floor(),extractvalue()报错注入
SQL各种参数类型下的注入测试 数字型-sqlilabs less2 前面文章已演示过 字符型-sqlilabs less1 前面文章已演示过 搜索型-自写测试 如: www.test.com/ind ...
- 将文件服务器及域控制器从2003迁移至Windows Server 2008 R2
(一)背景环境: 当前,多数小企业仍然使用windows server2003 系统做域控制器及文件服务器,由于windows server 2003在多年使用之后变得卡顿,且存在异常的系统错误及诟病 ...
- Windows服务与会话的理解
服务 Windows NT操作系统是基于客户/服务器模式的(C/S).将操作系统中最基本的部分放到内核中,而把操作系统的绝大多数部分都放到微内核外面的一组服务器(进程)中实现.如对进程管理的进程管理服 ...
- react+antd 使用脚手架动态修改主题色
最近做了一个需求,后台管理系统添加一个可以动态修改ant-design主题色.查询了大多数的文章,发现基本都是抄来抄去,而且文章记录的也一点也不详细.刚刚把这个功能做完了,顺便记录一下如何去修改主题色 ...
- 项目展示$\alpha$
项目 内容 课程:北航-2020-春-软件工程 博客园班级博客 要求 强制转会与项目展示 我们在这个课程的目标是 提升团队管理及合作能力,开发一项满意的工程项目 这个作业在哪个具体方面帮助我们实现目标 ...
- 结对项目:求交点pro
[2020 BUAA 软件工程]结对项目作业 项目 内容 课程:北航2020春软件工程 博客园班级博客 作业:阅读并撰写博客回答问题 结对项目作业 我在这个课程的目标是 积累两人结对编程过程中的经验 ...
- Form-OCR & CSDNAPP初体验
项目 内容 课程:北航2020春软件工程 博客园班级博客 作业:阅读并撰写博客回答问题 软件案例分析 我在这个课程的目标是 全面地评价一个软件 这个作业在哪个具体方面帮助我实现目标 明确软件开发过程中 ...
- [bug] Maven:No valid Maven installation found.maven
原因 从别处复制来的项目,maven路径没有改过来 参考 https://blog.csdn.net/qq_40846086/article/details/81252736
- [bug] JavaScript:Uncaught SyntaxError: missing ) after argument list
function拼写错误
- [bug] IDEA springboot项目 访问静态资源 html页面 报404
原因 复制的静态资源目录没有编译 解决 检查target目录中,是否有static目录,若没有,重新右键项目install即可 若还不能解决,尝试浏览器缓存和IDEA编译设置,详见参考链接 参考 ht ...