【笔记】 springCloud--Alibaba--服务注册和服务发现
阅读原文时间:2021年05月25日阅读:1

接着上一次的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集群

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章