[置顶] 【笔记】 springCloud--Alibaba--服务注册和服务发现

1|0源代码地址: https://gitee.com/yangbuyi/bky_yby


2|0接着上一次的nacos初步讲解和安装


3|0任意门:https://www.cnblogs.com/Yangbuyi/p/13479767.html


4|0如果启动失败的话 上一篇也是讲解过的.



5|0本文章开始服务注册和发现


6|0工程准备


1|0创建一个父模块将里面的src删除即可留下.idea和pox.xml文件



<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.3.RELEASE</version> </parent> <!-- 全局版本控制 --> <properties> <springCloud.version>Hoxton.SR7</springCloud.version> <springCloud-alibaba.version>2.1.1.RELEASE</springCloud-alibaba.version> </properties> <dependencyManagement> <dependencies> <!-- springCloud 版本控制 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${springCloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- 阿里 版本库 依赖 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${springCloud-alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>

7|0创建consumer工程模块和provide工程模块(调用者、服务者)



8|01.在consumer模块当中添加依赖


<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!-- 服务发现 nacos --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>

9|02. 手写启动类



/** * @description: 杨不易网站:www.yangbuyi.top * @program: springcloudalibabaparent * @ClassName: AppConsumer * @create: 2020-08-16 20:57 * @author: yangbuyi * @since: JDK1.8 * @AppConsumer: **/ @SpringBootApplication @Slf4j // nacos 服务发现 客户端 @EnableDiscoveryClient public class AppConsumer { public static void main(String[] args) throws UnknownHostException { ConfigurableApplicationContext application = SpringApplication.run(AppConsumer.class, args); Environment env = application.getEnvironment(); String ip = InetAddress.getLocalHost().getHostAddress(); String port = env.getProperty('server.port'); String path = env.getProperty('server.servlet.context-path'); String hj = env.getProperty('spring.profiles.active'); log.info('\n---------------------------------------------------------- ' + 'Application yangbuyiCloud is running! Access URLs: ' + 'Local: http://localhost:' + port + path + '/ ' + '当前配置环境: 当前环境为:' + hj + '/ ' + '----------------------------------------------------------'); } /** * @Description: 杨不易个人网址:http://yangbuyi.top * 功能描述: @LoadBalanced 让rest 拥有负载均衡的能力 * @Param: @RestTemplate http请求服务 * @return: * @Author: TeouBle * @Date: 2020/8/16 20:58 */ @Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } }

10|03.在启动类上添加注解


1|0nacos 服务发现 客户端 @EnableDiscoveryClient


11|04.在配置文件添加添加配置


server: port: 5000 servlet: context-path: /cloud-user spring: application: name: consumer-user cloud: nacos: discovery: #nacos服务的地址 不要加http # 可以写一个地址 集群会自动获取服务 但是为了安全起见还是全部写上 # server-addr: 127.0.0.1:8849,127.0.0.1:8850,127.0.0.1:8851 # 使用nginx反向代理 server-addr: 192.168.43.204:80 register-enabled: true # server-addr: localhost:8850 name: 默认环境

11|1上面看不懂的话也可直接写这样子的


server: port: 5000 servlet: context-path: /cloud-user spring: application: name: user-client # 将当前工程注册到nacos上面 cloud: nacos: discovery: server-addr: localhost:8848 #nacos服务的地址 不要加http

12|05.启动工程后, 在nacos当中查询服务列表



13|0nacos服务没有下载的去观看上一章节的nacos服务安装和错误解决


14|0https://www.cnblogs.com/Yangbuyi/p/13479767.html


15|06.使用相同方式 把provide服务注册到nacos上


15|1创建启动类


package top.yangbuyi; /** * @description: 杨不易网站:www.yangbuyi.top * @program: springcloudalibabaparent * @ClassName: top.yangbuyi.AppConsumer * @create: 2020-08-16 20:57 * @author: yangbuyi * @since: JDK1.8 * @AppConsumer: **/ @SpringBootApplication @Slf4j // nacos 服务发现 客户端 @EnableDiscoveryClient public class AppProvide { public static void main(String[] args) throws UnknownHostException { ConfigurableApplicationContext application = SpringApplication.run(AppProvide.class, args); Environment env = application.getEnvironment(); String ip = InetAddress.getLocalHost().getHostAddress(); String port = env.getProperty('server.port'); String path = env.getProperty('server.servlet.context-path'); String hj = env.getProperty('spring.profiles.active'); log.info('\n---------------------------------------------------------- ' + 'Application yangbuyiCloud is running! Access URLs: ' + 'Local: http://localhost:' + port + path + '/ ' + '当前配置环境: 当前环境为:' + hj + '/ ' + '----------------------------------------------------------'); } /** * @Description: 杨不易个人网址:http://yangbuyi.top * 功能描述: @LoadBalanced 让rest 拥有负载均衡的能力 * @Param: @RestTemplate http请求服务 * @return: * @Author: TeouBle * @Date: 2020/8/16 20:58 */ @Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } }

16|0创建yml配置


server: port: 7000 servlet: context-path: /cloud-yby spring: application: name: provide-goods # 服务名称 服务ID cloud: nacos: discovery: server-addr: localhost:8085 # nacos服务地址 单个服务 name: 默认环境

17|07. 启动两个服务 consumer和 provide 去nacos查看是否有



18|08. 在consumer工程中通过服务发现调用provide 工程


19|0自己对着图片的打一遍 别偷懒




20|0到此即可通过 consumer访问provide工程当中的方法啦


21|09.测试



22|0nacos有问题请评论区联系我


23|0完结 下一章节 nacos集群



__EOF__

本文作者yangzhuxian Love wzy
本文链接https://www.cnblogs.com/yangzhuxian/p/13523196.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   yangzhuxian  阅读(277)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示