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

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

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

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

工程准备

创建一个父模块将里面的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>

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

1.在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>

2. 手写启动类

/**
* @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----------------------------------------------------------\n\t" +
"Application yangbuyiCloud is running! Access URLs:\n\t" +
"Local: \t\thttp://localhost:" + port + path + "/\n\t" +
"当前配置环境: \t\t当前环境为:" + hj + "/\n\t" +
"----------------------------------------------------------");
} /**
* @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();
} }

3.在启动类上添加注解

nacos 服务发现 客户端 @EnableDiscoveryClient

4.在配置文件添加添加配置

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: 默认环境

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

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

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

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

https://www.cnblogs.com/Yangbuyi/p/13479767.html

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

创建启动类

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----------------------------------------------------------\n\t" +
"Application yangbuyiCloud is running! Access URLs:\n\t" +
"Local: \t\thttp://localhost:" + port + path + "/\n\t" +
"当前配置环境: \t\t当前环境为:" + hj + "/\n\t" +
"----------------------------------------------------------");
} /**
* @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();
} }

创建yml配置

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

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

8. 在consumer工程中通过服务发现调用provide 工程

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

9.测试

nacos有问题请评论区联系我

完结 下一章节 nacos集群

【笔记】 springCloud--Alibaba--服务注册和服务发现的更多相关文章

  1. SpringCloud+Consul 服务注册与服务发现

    SpringCloud+Consul 服务注册与服务发现 1. 服务注册: 在Spring.factories有一段: # Discovery Client Configuration org.spr ...

  2. SpringCloud系列(一):Eureka 服务注册与服务发现

    上一篇,我们介绍了服务注册中心,光有服务注册中心没有用,我们得发服务注册上去,得从它那边获取服务.下面我们注册一个服务到服务注册中心上去. 我们创建一个 hello-service 的 spring ...

  3. SpringCloud之eureka服务注册和服务发现

    服务注册中心 :eureka-server 作用:服务注册中心提供服务注册功能 服务提供方:eureka-client 作用:注册服务到服务注册中心 服务注册中心 :eureka-server 创建 ...

  4. SpringCloud实战之初级入门(二)— 服务注册与服务调用

    目录 1.环境介绍 2.服务提供 2.1 创建工程 2.2 修改配置文件 2.3 修改启动文件 2.5 亲测注意事项 3.服务调用 3.1 创建工程 3.2 修改配置文件 3.3 修改启动文件 3.4 ...

  5. consul服务注册与服务发现的巨坑

    最近使用consul作为项目的服务注册与服务发现的基础功能.在塔建集群使用中遇到一些坑,下面一个个的记录下来. consul集群多node consul集群的node也就是我们所说的consul实例. ...

  6. 【转】用 Consul 来做服务注册与服务发现

    原文:https://segmentfault.com/a/1190000018731395?utm_source=tag-newest ------------------------------- ...

  7. Go微服务框架go-kratos实战04:kratos中服务注册和服务发现的使用

    一.简介 关于服务注册和服务发现介绍,我前面的文章有介绍过 - 服务注册和发现的文章. 作为服务中心的软件有很多,比如 etcd,consul,nacos,zookeeper 等都可以作为服务中心. ...

  8. dubbo2.7.X版本带来的服务注册和服务调用方式改变

    参考地址:https://www.cnblogs.com/alisystemsoftware/p/13064620.html 注册中心数据结构格式改变(service:接口服务,application ...

  9. SpringCloud服务注册与服务发现之Eureka

    Eureka是SpringCloud Netflix的子模块之一,用于云端的服务发现,服务定位,实现云端中间层服务发现和故障转移.服务注册与发现对于微服务系统来说十分的重要,有了服务注册与发现,就省去 ...

随机推荐

  1. 分布式锁(2) ----- 基于redis的分布式锁

    分布式锁系列文章 分布式锁(1) ----- 介绍和基于数据库的分布式锁 分布式锁(2) ----- 基于redis的分布式锁 分布式锁(3) ----- 基于zookeeper的分布式锁 代码:ht ...

  2. css的一些小技巧。修改input样式

    在第一次正式写项目的时候,遇到了几个布局的小技巧.记录一下. 我们常常会遇到图片和文字对齐的一种样式.比如 这样的样式,我们写的时候有时候会出现不对齐的情况.我们有俩种方法 一种就是flex的布局,还 ...

  3. 3分钟看懂Python后端必须知道的Django的信号机制!

    概念 django自带一套信号机制来帮助我们在框架的不同位置之间传递信息.也就是说,当某一事件发生时,信号系统可以允许一个或多个发送者(senders)将通知或信号(signals)发送给一组接受者( ...

  4. 大一寒假我在一个oj网站只刷了这些题从此入门了绝大部分通用算法

    如果你想入门算法,那么我这篇文章也许可以帮到你. 先说点题外话.这是在一个不冷不热的寒假,照理来说寒假应该很冷,但这个寒假是真的舒服.这样舒服的寒假学习似乎是一件不可能的事情,所以我继续我的游戏生涯, ...

  5. android手机号和密码输入框的一个范例

    https://blog.csdn.net/androidmsky/article/details/49870823

  6. 关闭,centos yum的自动更新

    今天我虚拟机提示我满了,,,打开磁盘分析器一看,yum的更新目录满了,本地虚拟跟生产环境的版本完全一致,所以我也不打算更新,找一下命令,得先安装yum-cron ,然后再禁止更新 [root@loca ...

  7. Python修改元组

    Python修改元组:元组中的元素值是不允许修改的,当创建好的时候就是固定不变的.所谓的修改其实是指创建一个新的元组,只是该元组可能是比原来的元组多一个元素或者少一个元素,然后使用新创建好的元组代替原 ...

  8. windows:跨进程读数据

    外挂.木马.病毒等可能需要读取其他进程的数据,windows提供了OpenProcess.ReadProcessMemory等函数.但越是大型的软件,防护做的越好,大概率会做驱动保护,比如hook S ...

  9. 账本APP服务器端开发

    账本APP开发 好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航 上一篇文章我们聊 ...

  10. 快速构建一个springboot项目(一)

     前言: springcloud是新一代的微服务框架而springboot作为springcloud的基础,很有必要对springboot深入学习一下. springboot能做什么? (1)spri ...