1. 为什么叫Nacos :

前四个字母分别是Naming 和 Configuration 的前两个字母,最后的s为Service。

Nacos 就是注册中心 + 配置中心的组合


  • Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDK、OpenAPI、或一个独立的Agent TODO注册 Service 后,服务消费者可以使用DNS TODO 或HTTP&API查找和发现服务。

  • Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。Nacos 支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查。 对于复杂的云环境和网络拓扑环境中(如 VPC、边缘网络等)服务的健康检查,Nacos 提供了 agent 上报模式和服务端主动检测2种健康检查模式。Nacos 还提供了统一的健康检查仪表盘,帮助您根据健康状态管理服务的可用性及流量。java项目www.fhadmin.org


    在这里插入图片描述

安装并运行nacos

在docker上安装nacos

拉取nacos镜像:

docker pull nacos/nacos-server

运行nacos:

docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server

在浏览器输入:http://ip地址:8848/nacos/
账号和密码都是nacos。

在这里插入图片描述


在这里插入图片描述

Nacos作为服务注册中心演示

  1. 新建模块cloudalibaba-provider-payment9001
  2. pom
<dependencies>    <!--SpringCloud Alibaba nacos-->    <dependency>        <groupId>com.alibaba.cloud</groupId>        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>    </dependency>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-web</artifactId>    </dependency>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-actuator</artifactId>    </dependency>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-devtools</artifactId>        <scope>runtime</scope>        <optional>true</optional>    </dependency>    <dependency>        <groupId>org.projectlombok</groupId>        <artifactId>lombok</artifactId>        <optional>true</optional>    </dependency>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-test</artifactId>        <scope>test</scope>    </dependency></dependencies>
  1. yml
server:  port: 9001spring:  application:    name: nacos-payment-provider  cloud:    nacos:      discovery:        server-addr: 120.92.164.250:8848  #配置的Nacos地址(本机的写localhost:8848,服务器的写IP地址)management:  endpoints:    web:      exposure:        include: '*'
  1. 主启动类
//java项目www.fhadmin.org@EnableDiscoveryClient@SpringBootApplicationpublic class PaymentMain9001 {    public static void main(String[] args) {        SpringApplication.run(PaymentMain9001.class, args);    }}
  1. 新建controller包,包下新建PaymentController
//java项目www.fhadmin.org@RestControllerpublic class PaymentController {    @Value("${server.port}")    private String serverPort;    @GetMapping("/payment/nacos/{id}")    public String getPayment(@PathVariable("id") Integer id){        return "nacos registry, serverPort: " + serverPort + "\t id: " + id;    }}
  1. 启动9001

在这里插入图片描述

消费者 (整合Feign)

  1. 新建 cloudalibaba-consumer-nacos-order83
  2. pom
<dependencies>        <!--SpringCloud Alibaba nacos-->        <dependency>            <groupId>com.alibaba.cloud</groupId>            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>        </dependency>        <!-- 引用自己定义的api通用包,可以使用Payment支付Entity -->        <dependency>            <groupId>com.angenin.springcloud</groupId>            <artifactId>cloud-api-commons</artifactId>            <version>${project.version}</version>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-actuator</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-devtools</artifactId>            <scope>runtime</scope>            <optional>true</optional>        </dependency>        <dependency>            <groupId>org.projectlombok</groupId>            <artifactId>lombok</artifactId>            <optional>true</optional>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>        <!-- openfeign -->        <dependency>            <groupId>org.springframework.cloud</groupId>            <artifactId>spring-cloud-starter-openfeign</artifactId>        </dependency>    </dependencies>
  1. 建yml
server:  port: 83spring:  application:    name: nacos-order-consumer  cloud:    nacos:      discovery:        server-addr: 120.92.164.250:8848  #配置的Nacos地址(本机的写localhost:8848,服务器的写IP地址)#消费者要访问的微服务名称(成功注册进nacos的服务提供者)service-url:  nacos-user-service: http://nacos-payment-provider
  1. 主启动类
@EnableDiscoveryClient@EnableFeignClients@SpringBootApplicationpublic class OrderNacosMain83 {    public static void main(String[] args) {        SpringApplication.run(OrderNacosMain83.class, args);    }}
  1. 新建 feign包 ,包下新增接口 PaymentFeignService
@Component@FeignClient(value = "nacos-payment-provider")public interface PaymentFeignService {    @GetMapping("/payment/nacos/{id}")    public String getPayment(@PathVariable("id") Integer id);}
  1. 新建controller
@RestControllerpublic class OrderNacosController {    @Resource    private PaymentFeignService paymentFeignService;    @GetMapping("/consumer/payment/feign/nacos/{id}")    public String paymentInfo2(@PathVariable("id") Integer id){        return paymentFeignService.getPayment(id);    }}
  1. 启动



©著作权归作者所有:来自51CTO博客作者fhspringcloud的原创作品,如需转载,请注明出处,否则将追究法律责任

每一份赞赏源于懂得

赞赏

0人进行了赞赏支持

更多相关文章

  1. Go语言RPC学习记录
  2. 云服务器安全吗?云服务器有哪些优势?
  3. Curtis-Wright公司推出面向高速嵌入式雷达设计的“轻量级集成”
  4. CentOS 服务器使用命令对图片进行压缩以及图片格式转换
  5. 进程间通信
  6. 程序员被拖欠工资,怒将项目开源!居然登上GitHub TOP1。
  7. 五舟服务器出厂nvme阵列配置
  8. 前端小白学习web缓存笔记
  9. 主辅及智能DNS实现与MySQL5.7.32编译安装

随机推荐

  1. c语言提供的合法的数据类型关键字是什么?
  2. 对c语言的认识和想法是什么
  3. c语言console.WriteLine什么意思?
  4. c语言中要求对变量作强制定义的主要理由
  5. c语言大小写字母怎么转化?
  6. dev c++怎么用
  7. c语言中do while语句怎么使用
  8. c语言取余符号是什么
  9. C语言中system()函数怎么用?
  10. c语言strlen函数用法是什么