

中秋佳节,来玩一波 SpringCloudAlibaba 之 Nacos 服务提供与消费实战
source link: https://www.skypyb.com/2019/09/uncategorized/1065/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

中秋佳节,来玩一波 SpringCloudAlibaba 之 Nacos 服务提供与消费实战
中秋佳节当天,人在异乡,无法和家人团聚,既然如此 不如提升一波自己的姿势水平,免得浪费这假期大好光阴。
说道微服务,现在可不流行Netfilx那一套了, 现在都9102年9月了,Spring Cloud Aliabba都已经孵化完毕,再加上Netfilx将他旗下的项目通通打入冷宫,现在在不学习SpringCloudAlibaba体系就赶不上时代的潮流了。 Netfilx那套体系我都搭过demo 写过博客,各种配置啊注意点啊都挺详细的,感兴趣的可以翻我以前的文章。
https://github.com/alibaba/spring-cloud-alibaba 这是 SpringCloudAlibaba 的项目 git。
这篇文章主要是开个SpringCloudAliabba篇的头,正式开始SpringCloudAlibaba的学习。
废话不多说,进入正题。
今天就从微服务最重要的地方开始,当然,也只能从这个地方开始。
那就是服务治理。
在 Spring Cloud Netflix 使用的是Eureka,而SpringCloudAlibaba 给我们提供的就是Nacos。
而且,Nacos比Eureka 更加强大,他还可以用来当配置中心。
这里我就简单的先完成他基本的职责:服务注册与发现。
首先nacos和Eureka有点不同。
他这个应用。不是我们自己写的,Eureka这个东西他需要我们自己创建一个应用。然后在编写代码,然后再将项目打包,在启动。
Nacos这个东西他和Zipkin有点像,是那种直接下载下来运行就完事了的。
我这儿用Docker来运行一个单机的 Nacos 镜像添加到8848端口(默认端口),当然,集群是肯定可以集群的,我这先不玩。
对了,不知道为啥我用网易的docker镜像地址下载会卡住,之后换了alibaba的来下就没问题了。
nacos登陆地址:http://ip:8848/nacos 默认账号密码是nacos/nacos
开启Nacos服务完毕后,就要开始写服务提供者和服务消费者了。
其实这俩都差不多,反正注册进服务治理中心了,A可以调用B的服务,自然B也可以调用A的服务,导入的配置也一样,我这就以服务消费者来举例子,避免贴两份基本相同的代码了。
我这使用的是最新的版本,要用就用最新的,不然没意思。我之前写的Netflix项目也是使用的最新的,当时用的是SpringCloud F版第三版
现在这个项目用的是SpringCloud G版第三版,SpringBoot 2.1.8.RELEASE
先创个依赖项目进行最基本的统一依赖管理
这个项目集成了SpringBoot 然后导入了SpringCloud的依赖和SpringCloudAlibaba的依赖。
依赖项目写完之后就是正式开工编写服务。
这个服务就直接继承我刚刚写的依赖项目就可以了。
然后在其中,引入web、actuator、test几个SpringBoot依赖。当然还有必不可少的SpringCloudAlibaba Nacos 依赖。
这个启动类用了个 @EnableDiscoveryClient 这个注解,该注解是SpringCloud内置的,Nacos实现了这个注解,导入了Nacos的依赖的话就代表要注册进Nacos里边。
这样的好处就是以后要是换个新的服务治理中心,代码都不用改就可以轻易的更换,完美符合里式替换原则
既然能注册进去了,那接着还是老规矩,来个RestTemplate进行远程服务的调用,@LoadBalanced代表负载均衡,这些东西我以前的文章都有讲过啊,这儿就不详细说了。
这里就是编写一个控制层,来进行接口对外暴露,内部就是使用RestTemplate+LoadBalancerClient 来进行负载均衡的调用其他服务。
当然,yml是肯定要写的。
对了,这个management.endpoints 下边端点一定得打开。
因为 SpringCloudAlibaba 的 Nacos 在实现的时候提供了一个 EndPoint, EndPoint 的访问地址为 http://ip:port/actuator/nacos-discovery。
这玩意和服务注册发现息息相关,要是Nacos访问不了这个端点,那你就注册不了。
其实到这就差不多了,服务已经可以注册进Nacos里了,然后微服务之间的互相调用也是没有问题的,负载均衡也可以实现。
都没啥好说的,只要学会SpringCloud的思想,组件从一套换成另一套也就几十分钟的时间。
Recommend
-
31
今天为大家准备了 20 本新书,具体抽奖规则见文末 本书是一本 TypeScript 进阶实践指南,通过 9 个实用项目,详细讲解如何使用 TypeScript 3.0 和不同的 JavaScript...
-
8
HSN团队齐祝您中秋佳节快乐~
-
11
SpringCloudAlibaba注册中心与配置中心之利器Nacos实战与源码分析(上)
-
7
我们使用前面《SpringCloudAlibaba注册中心与配置中心之利器Nacos实战与源码分析(中)》的两个微服务示例,分别是库存微服务和订单微服务,基于Nacos注册中心和配置中心的使用,前面Nacos我们已基于dock-compose方式部署,我们增加配置数据,这里我们暂时也不...
-
3
SpringCloudAlibaba注册中心与配置中心之利器Nacos实战与源码分析(下) ...
-
8
SpringCloudAlibaba分布式流量控制组件Sentinel实战与源码分析(上) ...
-
7
基于threejs中秋佳节之际带你遨游星空? 精选 原创 海上生明月,天涯共此时。又是一年中秋时...
-
6
使用 css 代码画一只玉兔,迎中秋佳节 9月 10, 2022 发表于: HTML & CSS.
-
11
中秋怎么过?露营走一波 中秋 / 假期 /
-
7
大家好,这篇文章跟大家聊下 SpringCloudAlibaba 中的微服务组件 Nacos。Nacos 既能做注册中心,又能做配置中心,这篇文章主要来聊下做配置中心时 client 端的一些设计,主要从源码层面进行分析,相信看完这篇文章你对 Nacos client 端的工作原理应该有比较深刻的了...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK