两个独立的项目通过nacos连接的全过程其实就是微服务

首先下载一个nacos服务器

(这里有个大大的坑,nacos和springboot的版本问题,要保持一一对应)
这里我用的是
代码片.

<groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>

 <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>0.9.0.RELEASE</version>

<!--nacos是1.0.0-->

下载nacos的地址:https://github.com/alibaba/nacos/releases
进去之后是选这个tags
在这里插入图片描述
接下来就是选版本了

在这里插入图片描述
进去之后朝下翻下载zip就行了
在这里插入图片描述
下载好,解压,这个不用安装解压就行
启动可以双击startup.cmd就启动了,(但是我的就起不来,我用的命令行启动的 startup.cmd -m standalone)
在这里插入图片描述
进去之后输入命令就起来了(有可能会遇到一个问题大概意思就是需要jdk ,这个得去环境变量设置一下JAVA_HOME, 一般学java第一步就是设置这,不会自行百度)
在这里插入图片描述
接下来就可以去浏览器访问了localhost:8848/nacos
账号密码都是nacos
在这里插入图片描述

服务现在就弄好了,接下来就是配置问题了
这里说明一下,无论是提供者还是消费者配置一样的在,这里我就描述一遍

第一步导依赖

代码片.

 <!--nacos的依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>0.9.0.RELEASE</version>
        </dependency>

第二步去配置
代码片.

spring
  application:
    name: nacos-provider

  cloud:
    nacos:
      discovery:
       # namespace: 7968f11f-799a-4668-acb4-fb73e4bf8e74
        server-addr: 127.0.0.1:8848
        #这个命名空间是怎么都找不到服务的情况下加的,加了之后能找到了,这点我很迷惑,如果你也有和我一样是情况可以试试

第三步搁启动类加注解@EnableDiscoveryClient

代码片.

@SpringBootApplication
@EnableDiscoveryClient
public class FirstApplication {

    public static void main(String[] args) {
        SpringApplication.run(FirstApplication.class, args);
    }

}

有一点特殊的,这是搁消费者的启动类里面加的restTemplate,他是spring提供的发各种http请求的工具,这样消费者才能调用提供者的接口

因为bean的注入只能放在配置类里,启动类也是配置类,所以放这里面了

代码片.

@SpringBootApplication
@EnableDiscoveryClient
//@EnableFeignClients
public class MytwoApplication {

    public static void main(String[] args) {
        SpringApplication.run(MytwoApplication.class, args);
    }
    @LoadBalanced//开启负载均衡,如果有两个服务一样的名,就会根据nacos的方法自行匹配访问哪个服务的接口
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }


}

基本配置完成之后启动服务就能在nacos客户端看见了
在这里插入图片描述

接下来就是服务提供者的方法,其实就是正常的controller层的方法
代码片.

@RestController
public class ProviderController {


    @RequestMapping(value = "/hi", method = RequestMethod.GET)
    public String sayHi() {
        return "hello ,我是提供者";
    }

}

然后就是消费者要去调用提供者的接口

代码片.

@RestController
public class ConsumerController {

    private final RestTemplate restTemplate;

 
    @Autowired
    public ConsumerController(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    @RequestMapping(value = "/getHi", method = RequestMethod.GET)
    public String echo() {
        return "我是消费者"+ ",后面是我调用提供者的结果 " + restTemplate.getForObject("http://nacos-provider/hi", String.class);
    }
  
}

下面就是单独访问自己的项目了,我的消费者的端口是8081
因为我源代码多了点东西所以图有点不符
![在这里插入图片描述](https://img-blog.csdnimg.cn/a5393f9eaab54a18a5ebe0e1eba9dc7f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6aWV6aSuMjIy,size_20,color_FFFFFF,t_70,g_se,x_16
说明,虽然作为了服务的提供者,但是不影响原来的接口被其他浏览器访问,互不影响。
总结以下我遇到的坑,配置nacos最先注意的是版本问题,版本不兼容就会报错,还难找,第二就是配置三步走的问题,少了某一步也会报错,不注意的也难找(重灾区就是配置文件里面)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值