【微服务|Nacos】docker启动Nacos,完成注册中心功能

2022年7月10日 266点热度 0人点赞 0条评论

docker启动nacos

docker run --name mynacos -itd -e MODE=standalone -p 8848:8848 -p 9848:9848 -p 9849:9849 nacos/nacos-server:v2.0.3

这里注意,Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。

图片也就是说,如果要使用docker启动nacos,你需要额外暴露两个端口,不然可能就会访问失败哦!

当然,如果你用的云服务器操作上述内容,以阿里云服务器举例,你要在安全组里将相关端口打开。我就是好久不用这些,今天突然一弄,我丢,打不开页面,我还以为官方有更新了呢!!!

新建命名空间

此处无相关描述,因为我相信你一定可以!修改完成之后,我们用新建的账号登录:issa。

如果不会配置,去看我上一篇文章,写的还挺全的,无脑教程。图片

配置用户角色权限

图片

搭建环境

这里不列出所有代码,需要代码搜公众号【步尔斯特】,回复「1024」,即可获取

版本:懂得都懂

 <spring-cloud.version>Hoxton.SR12</spring-cloud.version>
 <!-- spring-cloud-2020.0.0 移除了诸多Netflix组件,这里只是为了更好的应用ribbon -->
 <!-- <spring-cloud.version>2020.0.0</spring-cloud.version> -->
 <spring-boot.version>2.3.12.RELEASE</spring-boot.version>
 <spring-cloud-alibaba.version>2.2.7.RELEASE</spring-cloud-alibaba.version>

配置:

spring:
  application:
    name: service-name
  cloud:
    nacos:
      # docker启动nacos:
      # docker run --name mynacos -itd -e MODE=standalone -p 8848:8848 -p 9848:9848 -p 9849:9849 nacos/nacos-server:v2.0.3
      discovery:
        server-addr: ip:8848
        namespace: 78e10147-ff76-4e56-8b19-2e2bbd39f750
        group: OSSA_GROUP

主要代码:

    @GetMapping("/{id}")
//    @SentinelResource(value = "producerById", fallback = "error")
    public ResponseEntity<ProducerVO> producerById(@PathVariable(value = "id") String id) {

        ProducerVO producerVO = new ProducerVO();
        producerVO.setId(id);
        producerVO.setPort(port + ": " + UUID.randomUUID().toString());
        producerVO.setConfigBody(config);

        return ResponseEntity.ok(producerVO);
    }
/**
 * 生产者
 *
 * @author issa
 **/

@EnableDiscoveryClient
@SpringBootApplication
public class ProducerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ProducerApplication.classargs);
    }

}
    @GetMapping("/{id}")
    public String consumerById(@PathVariable(value = "id") String id) {

//        ResponseEntity<ProducerVO> responseEntity = producerFeign.producerById(id);
        return restTemplate.getForObject("http://ossa-service-producer/producer/" + id, String.class);
    }
/**
 * 消费者
 *
 * @author issavior
 */

//@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.classargs);
    }

    @LoadBalanced
    @Bean
    public RestTemplate restTemplate() {

        return new RestTemplate();
    }
}

启动

两个服务都已经注册上了

图片

测试

消费者调用生产者已经成功

图片

16600【微服务|Nacos】docker启动Nacos,完成注册中心功能

root

这个人很懒,什么都没留下

文章评论