(二)注册服务提供者
在完成了服务注册中心的搭建之后,接下来我们尝试将一个既有的 Spring Boot 应用加 入 Emeka 的服务治理体系中去。可以使用上一章中实现的快速入门工程来进行改造, 将其作为一个微服务应用向服务 注册中心发布自己。 首先, 修改 pom.xml, 增加 Spring Cloud Eureka 模块的依赖, 具体代 码如下所示:
<modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency><dependency><groupId>org.springframework.retry</groupId><artifactId>spring-retry</artifactId></dependency><dependency><groupId>org.springframework.session</groupId><artifactId>spring-session-core</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
接着, 改造/hello 请求处理接口, 通过注入 DiscoveryClient对象, 在日志中打印出服务的相关内容。
@RestController
public class HelloController { private final Logger logger = Logger.getLogger(getClass());@Autowired private DiscoveryClient client;@RequestMapping(value = "/hello", method= RequestMethod.GET) public String index() { Service Instance instance = client.getLocalServiceinstance(); logger.info("/hello, host:" + instance.getHost() + ", service id:" +instance.getServiceid());return "Hello World";}
}
然后, 在主类中通过加上 @EnableDiscoveryClient 注解, 激活 Eureka 中的 DiscoveryClient 实现(自动化配置, 创建 DiscoveryClient 接口针对 Eureka 客户 端的 EurekaDiscoveryClient 实例), 才能实现上述 Controller 中对服务信息的输出。
@EnableDiscoveryClient
@SpringBootApplication
public class HelloApplication { public static void main(String[] args) {SpringApplication.run(HelloApplication.class, args);}
}
最后 ,我们需要在 application.yml配置文件中,通 过 spring. application.name属性来为 服 务命名,比如命名 为 hello-service。 再通过 eureka.client. serviceUrl.defaultZone属性来指定服务注册中心的地址, 这里 我们指定为之前构建的服务注册中心地址, 完整配置如下所示:
spring.application.name=hello-service
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
下面我们分别启 动服务注册中心以及这里改造后的hello-service 服务。 在hello-service服务控制台中,Tomcat启动之后,com.netflix.中scovery.DiscoveryClient 对象打印了该服务的注册信息 ,表示服务注册成功。
而此时在服务注册中心的控制台中,可以看到类似下面的输出,名为hello-service 的服务被注册成功了。
此版本比较旧只做学习参考
(二)注册服务提供者相关推荐
- Spring Cloud Eureka 入门 (二)服务提供者详解
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! "优秀不是过 ...
- Spring Cloud Eureka(二)注册一个服务的提供者
Spring Cloud Eureka(二)注册一个服务的提供者 注册一个服务的提供者 在上一篇中,当启动项目并访问localhost:1111时,发现该注册中心还没有注册任何服务.所以现在来搞一个服 ...
- [Django]SE项目回忆录(二)-注册/登录功能的实现及细节
该项目中提供了注册和登录两部分功能,功能描述如下: 注册: 允许任何用户进行学生身份的注册. 教师用户预先已经保存在数据库中,不允许以游客身份注册新的教师用户. 注册时需要填写的信息包括: - 用户名 ...
- uniapp实战(二) -- 注册小程序,UniApp设置
微信小程序的管理在微信公众平台进行,微信公众平台 点击右上角立即注册进行注册 然后选择小程序,注册小程序需要使用邮箱,一个邮箱只能绑定一个小程序 填写完成后进行邮箱激活,然后输入个人信息进行注册. 以 ...
- spring cloud 学习之 服务注册和发现(Eureka)
一:服务注册和发现(Eureka) 1:采用Eureka作为服务注册和发现组件 2:Eureka 项目中 主要在启动类加上 注解@EnableEurekaServer @SpringBootAppli ...
- eureka java_spring cloud 入门系列二:使用Eureka 进行服务治理
服务治理可以说是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册和发现. Spring Cloud Eureka是Spring Cloud Netflix 微服务套件的一部分 ...
- 【JEECG Dubbo专题】Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(二)
Dubbo与Zookeeper.Spring整合使用 Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spri ...
- SpringCloud的服务注册中心(三) - 进一步了解 Eureka
一.服务治理参与者 服务注册中心: eureka-server 服务提供者:HELLO-SERVICE 服务消费者 :HELLO-CONSUMER 很多时候,客户端既是服务提供者又是服务消费者,-&g ...
- SpringCloud--Eureka 注册中心原理及其搭建
一. Eureka简介 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringC ...
最新文章
- 有关多核一致性的理解和思考
- php变量与数组相互转换的方法(extract与compact
- 初试牛刀---css中的小细节
- 辗转相除求最大公约数
- 分析FLV文件分析和解析器的开源代码
- [html] 如何让pre标签中的元素自动换行?
- org.apache.ibatis.reflection.ReflectionException: There is no getter for property named XXX
- 书店POS机--细化迭代2--测试
- 小米捐赠5亿启动“小米青年学者”项目 5年支持100所高校
- apache性能调优
- Window 10 单机配置MYSQL主从同步
- linux制作光盘镜像文件
- Web页面打印及GridView导出到Excel
- Unity笔记之切换鼠标图标样式、PSD格式文件导入Unity
- 开关电源补偿环路设计(2):实践部分-例题
- kali 镜像下载(免费下载)
- 设计模式——观察者(监听者,订阅)模式||线程安全||c++详解
- Access to XMLHttpRequest at ‘file:///D:/xx/xxx.json‘ from origin ‘null‘ has been blocked by CORS问题解决
- 51信用卡 Android 架构演进实践
- centos 7-aarch64如何替换yum源
热门文章
- python线程安全的计数器_Python多线程同步Lock、RLock、Semaphore、Event实例
- zsh of kali
- 无法打开物理文件 XXX.mdf,操作系统错误 5.5(拒绝访问) 的解决办法
- 数据类型总结(干货)
- 【bzoj】 1412: [ZJOI2009]狼和羊的故事
- codevs4203山区建小学
- 【html】【19】高级篇--大事件时间轴
- 数据按时间拆开分批处理示例
- fork()调用使子进程先于父进程被调度
- Entity Framework 4.1 : 贪婪加载和延迟加载