一. 为什么使用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服务注册与发现相关推荐

  1. 【Spring Cloud Alibaba 实战 | 总结篇】Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权

    一. 前言 hi,大家好~ 好久没更文了,期间主要致力于项目的功能升级和问题修复中,经过一年时间这里只贴出关键部分代码的打磨,[有来]终于迎来v2.0版本,相较于v1.x版本主要完善了OAuth2认证 ...

  2. Spring Cloud Alibaba配置实例nacos+sentinel+dubbo实行服务注册、配置中心、熔断限流

    通过Spring Cloud Alibaba相关组件nacos+sentinel+dubbo实行服务注册.配置中心.熔断限流等功能 1.本机安装nacos和sentinel-dashboard服务端 ...

  3. 阿里巴巴开源 Spring Cloud Alibaba,加码微服务生态建设

    转载自  阿里巴巴开源 Spring Cloud Alibaba,加码微服务生态建设 本周,Spring Cloud联合创始人Spencer Gibb在Spring官网的博客页面宣布:阿里巴巴开源 S ...

  4. 3.Spring Cloud Alibaba教程:Nacos服务注册与发现

    概要 官网地址:Nacos官网和帮助文档 Nacos安装:Linux安装Nacos1.3.1(还没安装的先看这篇文章安装) Nacos主要作用:服务注册与发现.配置管理 本篇主要介绍的是服务注册与发现 ...

  5. eureka集群只注册一个_一、Spring Cloud Eureka服务注册中心

    Sping boot Eureka是服务中心,管理各种服务功能包括服务的注册.发现.熔断.负载.降级等.Spring Cloud Eureka 是对Netflix公司的Eureka的二次封装. 在du ...

  6. Spring Cloud Alibaba 实战 | 第十二篇: 微服务整合Sentinel的流控、熔断降级,赋能拥有降级功能的Feign新技能熔断,实现熔断降级双剑合璧(JMeter模拟测试)

    文章目录 一. Sentinel概念 1. 什么是Sentinel? 2. Sentinel功能特性 3. Sentinel VS Hystrix 二. Docker部署Sentinel Dashbo ...

  7. Spring Cloud Alibaba(2)---RestTemplate微服务项目

    前言 因为要运用 Spring Cloud Alibaba 开源组件到分布式项目中,所以这里先搭建一个不通过 Spring Cloud只通过 RestTemplate 来让SpringBoot和Myb ...

  8. Spring Cloud Alibaba (一) 之Nacos

    关于Nacos 在微服务概念兴起之后,越来越多的项目使用微服务的架构理念,随着服务节点的逐渐增多,我们需要一个独立的服务或者说组件,对我们的所有微服务节点进行管理.最早还没有SpringCloud的时 ...

  9. Spring Cloud Alibaba 实战(五)Zuul篇

    网关:主要作用认证和鉴权.最合适的解决办法是:网关解决认证问题, 子系统解决授权问题. 1. Zuul 简介 Zuul 微服务网关是为 Spring Cloud Netflix 提供动态路由,监控,弹 ...

  10. Spring Cloud Alibaba - 12 使用Nacos的元数据实现金丝雀发布功能

    文章目录 需求 改造 自定义规则 全局规则配置 配置文件 验证 源码 需求 新功能要上线了 , order-center 存在二个版本 V1(老版本) V2(新版本),product-center也存 ...

最新文章

  1. go 打印结构体对象,结构体指针
  2. 使用MyQ打开车库门时如何接收警报
  3. mysql 中间表的好处_Mysql中使用中间表提高统计查询速度
  4. python调用mysql数据库sql语句过长有问题吗_python操作mysql数据库,一次性执行多条语句不执行...
  5. 使用Pandas 1.1.0进行稳健的2个DataFrames验证
  6. TortoiseGitPlink提示输入密码解决方法
  7. 数据结构之顺序队列的优化
  8. DeFIL.org的资金池规模达168万枚FIL 已借出105万枚FIL
  9. 测试linux mongodb数据库开启,安装配置MongoDB数据库
  10. wepack中loader的分类
  11. C++ 中的深拷贝与浅拷贝
  12. sony android 计算器,NeoCal 全能计算器 V2.0.2
  13. 《生产实习》实习日志——JAVA大数据工程师
  14. 如何提高自己的工作能力 高效工作方法是绝效
  15. lenovo L480 进入bios_rx5700刷bios秒变rx5700xt!rx5700刷rx5700xt bios图文教程
  16. Python中的切片(Slice)操作详解
  17. 关于array_column这个函数
  18. 狂神说-Springcloud笔记
  19. 用Arduino板为另一块Arduino烧写(更新)BootLoader
  20. HashMap存储自定义类型键值: 重写HashCode和equals方法

热门文章

  1. 客气:是礼貌,更是修养 — 《别输在不会表达上》
  2. Java 常用对象-System类
  3. Eclipse开启或取消快速导航栏(toggle breadcrumb)
  4. MVC 添加Area
  5. vijos1777 引水入城
  6. 做有中国特色的项目管理
  7. 游戏筑基开发之学生管理系统数据结构及数据结构解析图(C语言)
  8. OSPFv3中LSA详解(七)——Type4类LSA详解
  9. C++ 从入门到入土(English Version)Section5: Real numbers + bitwise operations
  10. 多目标决策---多目标线性规划的解法