Nacos组件

nacos

nacos是什么?

Nacos 是阿里巴巴的新开源项目,其核心定位是 “一个更易于帮助构建云原生应用的集注册中心与配置中心于一体的管理平台”。

前面四个字母分别表示 Naming(注册) 和 Configuration(配置) 的前两个字母, 最后一个s 为 Service(服务)

即注册中心与配置中心于一体的管理平台

安装

linux上安装nacos

下载地址:https://github.com/alibaba/nacos/tags

解压即安装

[root@localhost ~]# cd /usr/upload  #跳转到upload目录
[root@localhost upload]# rz #上传压缩包
[root@localhost upload]# tar -zxvf nacos-server-1.4.1.tar.gz -C /usr/local	#解压即安装

启动:

[root@localhost local]# cd nacos/bin/
[root@localhost bin]# ./startup.sh -m standalone #非集群模式启动
... ...
nacos is starting with standalone
nacos is starting,you can check the /usr/java/nacos/logs/start.out

关闭:

[root@localhost bin]# ./shutdown.sh
The nacosServer(3543) is running...
Send shutdown request to nacosServer(3543) OK
[root@localhost bin]

测试

浏览器访问:http://(安装nacos的端口):8848/nacos,默认用户名/密码为: nacos/nacos

注册中心

为什么使用注册中心?

@RestController
@RequestMapping(value = "/consumer")
public class ConsumerController {
   
	
	//访问Rest服务的客户端
	@Autowired
	private RestTemplate restTemplate;

	@RequestMapping(value="/getUserById/{id}")
	public User getUserById(@PathVariable Integer id){
   
		//调用服务,地址写死了,只能访问一台服务器,无法实现负载均衡,后期修改困难
		String url = "http://127.0.0.1:9090/provider/getUserById/"+id;
		return restTemplate.getForObject(url, User.class);
	}
}

解决:1.地址硬编码 2.不能负载均衡

注册中心主要有三部分组成:

Ø Nacos-Server:注册中心

​ 提供服务的注册和发现。

Ø Nacos-Provider:服务提供方

​ 把自身的服务实例注册到 Nacos Server 中

Ø Nacos-Consumer:服务调用方

​ 通过 Nacos Server 获取服务列表,消费服务。

里面有什么?

存储服务.ip端口

使用步骤

首先引入nacos依赖

<!--nacos客户端-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

其次配置nacos

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.255.132:8848 #nacos服务的地址
  application:
    name: nacos-provider #向注册中心注册的名字

最后在启动类上开启服务

使用@EnableDiscoveryClient注解

@SpringBootApplication
@EnableDiscoveryClient//向注册中心注册该服务,并可以获取其他服务的调用地址
public class ProviderApp {
   

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

使用:

先往IOC容器中放入一个Restful风格的工具类

@Configuration
public class ConfigBean {
   

    /**
     * 发送rest请求的工具类
     * @return
     */
    @Bean
    public RestTemplate restTemplate(){
   
        return new RestTemplate();
    }
}

在服务消费端编写一个controller类

@RestController
@RequestMapping("/consumer")
public 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值