Nacos服务注册中心

下载与安装:

1、Nacos下载:

可在浏览器直接输入如下地址:

https://github.com/alibaba/nacos/releases

选择对应版本,直接下载,

2、解压Nacos

初始化配置:

第一步:找到/conf/nacos-mysql.sql文件里的sql脚本,然后登陆mysql,然后基于脚本文件中的描述创建数据库(名字nacos_config,编码方式utf8mb4),并执行脚本文件,脚本执行成功会创建一些表,如图所示:

说明:在执行此文件时,要求mysql的版本大于5.7版本(MariaDB最好10.5.11),否则会出现如下错误

第二步:打开/conf/application.properties里打开默认配置,并基于你当前环境配置要连接的数据库,连接数据库时使用的用户名和密码(假如前面有"#"要将其去掉):

服务器启动与访问

启动nacos:

在bin目录下面启动(cmd)

Linux/Unix/Mac启动命令(standalone代表着单机模式运行,非集群模式): ./startup.sh -m standalone

Windows启动命令(standalone代表着单机模式运行,非集群模式): startup.cmd -m standalone

说明:

1)执行执行令时要么配置环境变量,要么直接在nacos/bin目录下去执行.

2)nacos启动时需要本地环境变量中配置了JAVA_HOME(对应jdk的安装目录),

访问Nacos服务

(浏览器):http://localhost:8848/nacos

用户名/密码:nacos / nacos

服务注册与调用

创建Maven父级工程(01-sca)

依赖:

<properties>
        <spring.cloud>Hoxton.SR8</spring.cloud>
        <spring.cloud.alibaba>2.2.5.RELEASE</spring.cloud.alibaba>
    </properties>
    <!--依赖版本管理-->
    <dependencyManagement>
        <dependencies>
            <!--spring cloud 依赖,此依赖需要springboot的支持,
            此依赖中定义了spring cloud微服务规范-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring.cloud}</version>
                <!--import表示此工程下的子工程可以直接引用这个依赖中版本-->
                <scope>import</scope>
                <!--当scope为import时,这里的类型必须为pom类型-->
                <type>pom</type>
            </dependency>
            <!--spring cloud alibaba 依赖,此依赖依赖于 spring cloud,
            当前依赖中是基于微服务规范做了具体实现-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring.cloud.alibaba}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>

其中的版本可参考如下网址(涉及到一个兼容性问题,不能随意指定其版本): 

https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

说明:父工程资源初始化完成以后,将src目录删除,因为父工程只负责依赖管理.

生产者服务创建及注册 (sca-provider)

第一步:创建服务提供者继承parent工程

第二步:添加项目依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
</dependencies>

第三步:创建并修改配置文件application.yml(或者application.properties),实现服务注册

server:
   port: 8081
spring:
  application:
    name: sca-provider
  cloud:
    nacos:
      server-addr: localhost:8848

第四步:创建启动类,并定义处理请求的控制层对象和方法

package com.cy;

@SpringBootApplication
public class ScaProviderApplication {
    public static void main(String[] args) {
        SpringApplication.run(ScaProviderApplication.class, args);
    }
@Value("${server.port}")
private String server;
    @RestController
    public class ProviderController {
        @GetMapping(value = "/provider/echo/{msg}")
        public String doEcho(@PathVariable String msg) {
            return server+"say:Hello Nacos Discovery " + msg;
        }
    }
}

第五步:启动启动类,然后刷先nacos服务,检测是否服务注册成功

第六步:打开浏览器,输入http://localhost:8081/provider/echo/msa,然后进行访问。

消费者服务发现及调用(sca-consumer)

第一步:创建服务消费者继承parent工程

第二步:添加项目依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
</dependencies>

第三步:修改配置文件application.yml

server:
  port: 8090
spring:
  application:
    name: sca-consumer
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #从哪里去查找服务

第四步:创建启动类并实现服务消费

package com.cy;
@SpringBootApplication
public class ScaConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ScaConsumerApplication.class,args);
    }
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
    @RestController
    public class ConsumerController{

        @Value("${spring.application.name}")
        private String appName;
        @Autowired
        private RestTemplate restTemplate;
        @GetMapping("/consumer/doRestEcho1")
        public String doRestEcho01(){
            String url = "http://localhost:8081/provider/echo/"+appName;
            System.out.println("request url:"+url);
           return restTemplate.getForObject(url, String.class);
        }
    }
}

第五步:启动消费者服务,并在浏览器输入http://localhost:8090/consumer/doRestEcho1地址进行访问

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值