Nacos安装与介绍

工具:nacos
黑马程序员提供教学视频以及资料

Nacos简介

Nacos是阿里的一个开源产品,他是针对微服务架构中的服务发现、配置管理、服务治理的综合型解决方案。
官方介绍:
Nacos致力于帮助您发现、
配置和管理微服务。Nacos提供了一组简单易用的特性级,帮助您实现动态服务发现、服务配置管理、服务及流量管理。
Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的现代应用架构的服务基础设施。
官网地址:https://nacos.io

Nacos特性(四大功能)
1、 服务发现与服务健康检查
Nacos使服务更容易注册,并通过DNS或HTP接口发现其他服务,Nacos还提功服务的实时健康检查,以防止向不健康的主机或服务实例发送请求。
2、 动态配置管理
动态配置管理服务允许您在所有环境中以集中和动态的方式管理所有服务的配置。Nacos消除了在更新配置时重新不是应用程序,这时配置的更改更加高效和灵活。
3、 动态DNS服务
Nacos提供基于DNS协议的服务发现能力,旨在支持异构语言的服务发现,支持将注册在Nacos上的服务以域名的方式暴露端点,让第三方应用方便的查阅及发现。
4、 服务和元数据管理
Nacos能让你从微服务平台建设的视觉管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略。

安装Nacos Server

环境准备
首先确保有Java环境,并且配置Maven环境
1、64 bit OS,支持Linux/Unix/Mac/Windows,推荐使用Linux/Unix/Mac
2、64 bit JDK1.8+
3、Maven 3.2X+

一、上GitHub下载源码,下载地址:https://github.com/alibaba/nacos.git
在这里插入图片描述

二、下载安装包。下载地址: https://github.com/alibaba/nacos/releases网上下载nacos-server-1.1.3或者以上的版本
2021年7月28日为止,已经更新到了2.0.3版本
在这里插入图片描述

启动服务器,nacos默认端口是8848,需要保证端口没有被其他进程占用。
Linux/Unix/Mac启动命令sh startup.sh -m standalone
这个如果报错的话,运行bash startup.sh -m standalone
Standalone:单机模式运行,非集群模式
Windows启动命令cmd startup.cmd
直接双击startup.cmd运行文件。
在这里插入图片描述

启动成功后,访问地址:http://127.0.0.1:8848/nacos
在这里插入图片描述

登录名称跟密码都是nacos。以上就是简介与安装内容,下面是例子。

MySQL数据库支持
使用mysql数据库作为nacos数据存储。因为nacos会默认使用自己的存储方式进行存储,为了方便,使用mysql。注意:没有mysql的安装mysql,安装完mysql后可以安装一个Navicat导航猫中间软件进行操作。
1、 新建数据库
在这里插入图片描述

2、 找到下载路径,nacos下的config有mysql文件。运行,生成表
在这里插入图片描述

3、 连接文件
在这里插入图片描述

# 数据源的模式用mysql
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=sa123

4、重启nacos
在这里插入图片描述

RESTful服务发现

1、 测试环境
通过springcloud Alibaba实现测试环境。
(1)、服务发现客户端从服务发现中心获取服务列表
(2)、服务消费方通过负载均衡获取服务地址
在上文中提到的nacos-discovery父工程中添加依赖
Pom

<!--alibaba.cloud-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>2.2.5.RELEASE</version>
</dependency>
<!--cloud-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>Hoxton.RELEASE</version>
</dependency>

在provider和consumer上
pom文件添加依赖

<!--服务发现的客户端  1、将自己的地址注册到服务发现中心
  2、从服务发现中心获取服务列表  starter-alibaba-nacos-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>

application.xml

spring:
  application:
    name: nacos-restful-provider  #服务名
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848  #服务发现中心地址

运行主启动类,运行nacos,访问路径:http://192.168.183.61:8848/nacos
在这里插入图片描述

在consumer上
控制器RestConsumerController

//指定服务名
String serviceId = "nacos-restful-provider";
//通过负载均衡发蔫地址,六层是从服务发现中心拿nacos-restful-provider服务的列表,通过负载均衡算法获取一个地址
@Autowired
LoadBalancerClient loadBalancerClient;

@GetMapping(value = "/service1")
public String service1(){
    //远程调用
    RestTemplate restTemplate = new RestTemplate();
    //发现一个地址
    ServiceInstance serviceInstance = loadBalancerClient.choose(serviceId);
    //获取一个 http:// 开头的地址,包括IP和端口
    URI uri=serviceInstance.getUri();
    String result = restTemplate.getForObject(uri + "/service", String.class);
    return "Consumer invoke" + result;
}

启动consumer启动类。访问路径:http://localhost:56010/service1

负载均衡

负载均衡:将用户请求(流量)通过一定的策略,分摊在多个服务实例上执行,他是系统处理高并发、缓解网络压力和进行服务端扩容的重要手段之一。它分为服务端负载均衡和客户端负载均衡。

服务器端负载均衡(Nginx):**在这里插入图片描述

在负载均衡器中维护一个可用的服务实例清单,当客户请求来临时,负载均衡服务器按照某种配置好的规则(负载均衡算法)从可用服务实力清单中选取其一去处理客户端的请求。这就是服务端负载均衡。
例子:Nginx,通过Nginx进行负载均衡,客户端发送请求至Nginx,Nginx通过负载均衡算法,在多个服务器之间选择一个进行访问。即在服务器端再进行负载均衡算法分配。

客户端负载均衡(ribbon)
上边使用的LoadBalancerClient就是一个客户端负载均衡器,具体使用的是Ribbon客户端负载均衡器。Ribbon再发送请求前通过负载均衡算法选择一个服务实例,然后进行访问,这是客户端负载均衡。即在客户端就进行负载均衡的分配。
Ribbon是一个客户端负载均衡器,它的责任是从一组实力列表中挑选合适的实例,如何挑选?取决于负载均衡策略。
Ribbon核心组件Rule是负载均衡策略的接口,他有如下示例,仅做了解:
(1)、RoundBobinRule(默认):轮询,即按一定的顺序轮换获取实例地址。
(2)、RandomRule:随机,即以随机的方式获取实例的地址。
(3)、AvailabilityFilteringRule:会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,以及并发的连接数量超过阈值的服务,然后对剩余的服务列表按轮询策略进行访问;
(4)、WeigedResponseTimeRule:根据平均响应时间计算所有服务的权重,响应时间越快,服务权重越大,被选中的几率越高;
刚启动时,如果统计信息不足,则使用RoundRonbinRule策略,等统计信息足够时,会切换到WeigedResponseTimeRule
(5)、RetryRule:先按照RoundRobinRule的策略获取芙蕖,如果获取服务失败,则在指定时间内会重试,获取可用的服务
(6)、BESTAvailableRule:会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务
(7)、ZoneAvoidanceRule:默认规则,复合判断server所在区域的性能和server的可用性选择服务器。

再部署一个provider进程。
在这里插入图片描述

接着点击复制,改服务名称,再改端口号
在这里插入图片描述

就是通过启动参数的配置给启动进程赋值,也就是给application.yml文件里的端口号赋值。
接着启动这两个provider进程。启动之后不断刷新可以看出;两个进程后台的打印是轮询的。

若不想采用轮询的方法进行,也可以配置采用其他的方法。
在consumer的application.yml配置文件上,
在这里插入图片描述

再刷新,再观察是否是随机。

总结:
1、 服务提供方将自己注册到服务注册中心
2、 服务消费方从注册中心获取服务地址
3、 通过客户端负载均衡器进行远程调用
如果报错的话,降版本号,至于降到哪个版本号,可以搜java_支付宝微信第三方聚合支付平台项目实战开发

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Docker Compose安装Nacos,首先需要确保已经安装了Docker和Docker Compose。如果还未安装,请按照Centos7.X安装Docker及Docker Compose的教程进行安装。如果已经安装了,请按照以下步骤进行安装: 1. 在Linux系统中打开终端,使用以下命令下载并安装Docker Compose: ``` sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ``` 这将下载最新版本的Docker Compose并将其安装到/usr/local/bin目录下。 2. 确保已经安装了Docker和Docker Compose后,可以使用以下命令克隆Nacos的Docker Compose配置文件: ``` git clone https://github.com/nacos-group/nacos-docker.git ``` 这将克隆Nacos的Docker Compose配置文件到当前目录。 3. 进入克隆的nacos-docker目录: ``` cd nacos-docker ``` 4. 使用以下命令启动Nacos容器: ``` sudo docker-compose up -d ``` 这将启动Nacos容器,并在后台运行。 5. 等待一段时间,Nacos容器将会启动完成。可以使用以下命令查看容器的运行状态: ``` sudo docker-compose ps ``` 如果看到nacos_server容器的状态为Up,表示Nacos已经成功安装并运行。 请注意,以上步骤只介绍了基于Docker Compose的单机版本安装。如果需要其他类型的安装,请参考Nacos官方文档中的更多安装方式。\[3\] #### 引用[.reference_title] - *1* *3* [基于docker-compose安装nacos](https://blog.csdn.net/qq_39834037/article/details/111225430)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [使用Docker Compose快速部署整套Nacos集群](https://blog.csdn.net/m0_37924754/article/details/131241702)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值