gateway nacos注册服务_第二篇 Spring Cloud Alibaba实战(一)Nacos服务注册与发现
一. 为什么使用spring cloud alibaba
很多人可能会问,有了spring cloud这个微服务的框架,为什么又要使用spring cloud alibaba这个框架了?最重要的原因在于spring cloud中的几乎所有的组件都使用Netflix公司的产品,然后在其基础上做了一层封装。然而Netflix的服务发现组件Eureka已经停止更新,在使用的时候发现过其一个细小的Bug;而其他的众多组件也会陆续停止维护。所以急需其他的一些替代产品,也就是spring cloud alibaba,目前正处于蓬勃发展的态式。
二. 安装注册中心Nacos
nacos是阿里巴巴研发的一个集注册中心与配置中心于一体的管理平台,使用其非常的简单。
下载nacos
https://github.com/alibaba/nacos/releases
我下载的是1.3.2版本,如下图所示:
1、Windows系统直接解压,找到bin目录,双击startup.cmd启动。如果出现一闪而退,请参照以下方法解决:
(1)、编辑startup.cmd,把里面的MODE修改一下,保存后重新启动(我就是使用该方法解决了问题),参考下图:
(2)、检查jdk是否为jdk8 64bit,并配置环境变量,且环境变量必须为JAVA_HOME
(3)、检查maven,并配置环境变量
2、Linux系统也要安装好jdk环境和maven环境,执行mvn -version出现下面内容则成功:
然后到nacos/bin目录下执行该命令启动
sh startup.sh -m standalone
nacos默认端口是8848,http://ip:8848/nacos访问,输入账号密码:nacos nacos即可。
三、将服务部署到nacos
整合springcloud和springcloud alibaba,注意版本号要对应。
第一步,加依赖
org.springframework.cloud spring-cloud-dependencies Greenwich.SR1pomimportorg.springframework.cloud spring-cloud-alibaba-dependencies 0.9.0.RELEASEpomimportorg.springframework.cloud spring-cloud-starter-alibaba-nacos-discovery
第二步,加注解(这个新版省略了注解)
第三步,写配置,在yml文件中加入nacos配置
spring: cloud: nacos: discovery: #指定nacos server的地址 server-addr: localhost:8848 #指定服务名称 application: name: user-center
此时刷新nacos访问页面,将会看到服务已经注册上了。
四、测试
需求:为内容服务引入用户服务中的用户信息。
方案:采用RestTemplate方式来调取用户中心接口,通过DiscoveryClient获取nacos上的用户中心实例。
1、用户服务提供一个查询用户信息接口
@RestController@RequestMapping("/users")public class UserController { @Resource private UserService userService; @GetMapping("/{id}") public User findById(@PathVariable Integer id){ return this.userService.findById(id); }}
2、内容中心接口
@RestController@RequestMapping("/shares")public class ShareController { @Resource private ShareService shareService; @GetMapping("/{id}") public ShareDTO findById(@PathVariable Integer id) { return this.shareService.findById(id); }}@Servicepublic class ShareService { @Resource private ShareMapper shareMapper; @Resource private RestTemplate restTemplate; @Resource private DiscoveryClient discoveryClient; public ShareDTO findById(Integer id) { Share share = this.shareMapper.selectByPrimaryKey(id); Integer userId = share.getUserId(); //用户中心的所有实例信息 List instances = discoveryClient.getInstances("user-center"); String targetUrl = instances .stream() .map(instance -> instance.getUri().toString() + "/users/{id}") .findFirst() .orElseThrow(() -> new IllegalArgumentException("当前没有实例对象")); //根据userId查询用户信息 UserDTO userDTO = this.restTemplate.getForObject(targetUrl, UserDTO.class, userId); ShareDTO shareDTO = new ShareDTO(); BeanUtils.copyProperties(share, shareDTO); shareDTO.setWxNickname(userDTO.getWxNickname()); return shareDTO; }}
请求结果如下图展示:author字段是来自用户服务的
OK,nacos入门就到这里,下一篇我们来学习ribbon负载均衡哦。
有问题欢迎小伙伴留言。
gateway nacos注册服务_第二篇 Spring Cloud Alibaba实战(一)Nacos服务注册与发现相关推荐
- 【Spring Cloud Alibaba 实战 | 总结篇】Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权
一. 前言 hi,大家好~ 好久没更文了,期间主要致力于项目的功能升级和问题修复中,经过一年时间这里只贴出关键部分代码的打磨,[有来]终于迎来v2.0版本,相较于v1.x版本主要完善了OAuth2认证 ...
- Spring Cloud Alibaba配置实例nacos+sentinel+dubbo实行服务注册、配置中心、熔断限流
通过Spring Cloud Alibaba相关组件nacos+sentinel+dubbo实行服务注册.配置中心.熔断限流等功能 1.本机安装nacos和sentinel-dashboard服务端 ...
- 阿里巴巴开源 Spring Cloud Alibaba,加码微服务生态建设
转载自 阿里巴巴开源 Spring Cloud Alibaba,加码微服务生态建设 本周,Spring Cloud联合创始人Spencer Gibb在Spring官网的博客页面宣布:阿里巴巴开源 S ...
- 3.Spring Cloud Alibaba教程:Nacos服务注册与发现
概要 官网地址:Nacos官网和帮助文档 Nacos安装:Linux安装Nacos1.3.1(还没安装的先看这篇文章安装) Nacos主要作用:服务注册与发现.配置管理 本篇主要介绍的是服务注册与发现 ...
- eureka集群只注册一个_一、Spring Cloud Eureka服务注册中心
Sping boot Eureka是服务中心,管理各种服务功能包括服务的注册.发现.熔断.负载.降级等.Spring Cloud Eureka 是对Netflix公司的Eureka的二次封装. 在du ...
- Spring Cloud Alibaba 实战 | 第十二篇: 微服务整合Sentinel的流控、熔断降级,赋能拥有降级功能的Feign新技能熔断,实现熔断降级双剑合璧(JMeter模拟测试)
文章目录 一. Sentinel概念 1. 什么是Sentinel? 2. Sentinel功能特性 3. Sentinel VS Hystrix 二. Docker部署Sentinel Dashbo ...
- Spring Cloud Alibaba(2)---RestTemplate微服务项目
前言 因为要运用 Spring Cloud Alibaba 开源组件到分布式项目中,所以这里先搭建一个不通过 Spring Cloud只通过 RestTemplate 来让SpringBoot和Myb ...
- Spring Cloud Alibaba (一) 之Nacos
关于Nacos 在微服务概念兴起之后,越来越多的项目使用微服务的架构理念,随着服务节点的逐渐增多,我们需要一个独立的服务或者说组件,对我们的所有微服务节点进行管理.最早还没有SpringCloud的时 ...
- Spring Cloud Alibaba 实战(五)Zuul篇
网关:主要作用认证和鉴权.最合适的解决办法是:网关解决认证问题, 子系统解决授权问题. 1. Zuul 简介 Zuul 微服务网关是为 Spring Cloud Netflix 提供动态路由,监控,弹 ...
- Spring Cloud Alibaba - 12 使用Nacos的元数据实现金丝雀发布功能
文章目录 需求 改造 自定义规则 全局规则配置 配置文件 验证 源码 需求 新功能要上线了 , order-center 存在二个版本 V1(老版本) V2(新版本),product-center也存 ...
最新文章
- go 打印结构体对象,结构体指针
- 使用MyQ打开车库门时如何接收警报
- mysql 中间表的好处_Mysql中使用中间表提高统计查询速度
- python调用mysql数据库sql语句过长有问题吗_python操作mysql数据库,一次性执行多条语句不执行...
- 使用Pandas 1.1.0进行稳健的2个DataFrames验证
- TortoiseGitPlink提示输入密码解决方法
- 数据结构之顺序队列的优化
- DeFIL.org的资金池规模达168万枚FIL 已借出105万枚FIL
- 测试linux mongodb数据库开启,安装配置MongoDB数据库
- wepack中loader的分类
- C++ 中的深拷贝与浅拷贝
- sony android 计算器,NeoCal 全能计算器 V2.0.2
- 《生产实习》实习日志——JAVA大数据工程师
- 如何提高自己的工作能力 高效工作方法是绝效
- lenovo L480 进入bios_rx5700刷bios秒变rx5700xt!rx5700刷rx5700xt bios图文教程
- Python中的切片(Slice)操作详解
- 关于array_column这个函数
- 狂神说-Springcloud笔记
- 用Arduino板为另一块Arduino烧写(更新)BootLoader
- HashMap存储自定义类型键值: 重写HashCode和equals方法