架构模式

SpringCloudAlibaba+Nacos

简单说一下选型原因

我们知道有一套微服务叫做Dubbo+Zookeeper,Dubbo是阿里的,但是后来阿里停止了对Dubbo的维护,并把Dubbo共享给了Apache,在这个节骨眼上,SpringCloud趁虚而入,于是,在微服务的领域火了起来,他的一套架构是Netflix公司的支持,包括Eureka注册中心等,但是后来Eureka停止了更新,同时在这个节骨眼上,SpringCloudAlibaba站了出来,用自己的Nacos做注册中心,于时他就火了,当然,从名字就可以看出来,他算是SpringCloud体系的一个,在Spring官网可以直接找到,反正不管怎么滴吧,现在SpringCloudAlibaba+Nacos挺厉害的,在此背景下,我决定了自己搭建一个简单的微服务,网上找了一些,不太满意,死磕官网,得此文章!

安装Nacos

  • 安装Nacos其实很简单,只需去GitHub下载他的压缩包即可https://github.com/alibaba/nacos/releases,这是releases版本的链接,下载完毕之后,解压,在bin目录下运行通过startup.cmd -m standalone进行启动单体模式(不加 -m standalone启动的是集群)
    当你运行之后,会看到如下界面

    然后通过上面的URL可以看到可视化界面,账号和密码都是nacos
    登录之后是如下界面

    至此,Nacos安装完毕,下面开始搭建微服务,并把每个服务注册到该注册中心(Nacos不仅仅是注册中心,还是配置中心,上图可以看到有配置管理)

搭建微服务
这里通过搭建两个服务,一个是nacos-provider另一个是nacos-consumer

首先创建一个springboot项目(如何创建就不细说了)
然后引入spring-cloud-starter-alibaba-nacos-discovery服务发现依赖

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

然后在主启动类上加上@EnableDiscoveryClient注解
然后需要一个配置(这里给出yaml配置)

server:port: 8080
spring:application:name: nacos-provider #服务名cloud:nacos:discovery:server-addr: 127.0.0.1:8848 #nacos注册中心地址

然后就可以写一个业务接口了,即controller

@RestController
public class ProviderController {@GetMapping(value = "/info")public String getInfo() {return "hello world";}
}

启动服务,即可注册到Nacos

接下来再注册一个服务,名字叫nacos-consumer
一样的,创建一个springboot项目,引入依赖

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

主启动类上加上@EnableDiscoveryClient注解
书写配置

server:port: 8081
spring:application:name: nacos-provider #服务名cloud:nacos:discovery:server-addr: 127.0.0.1:8848 #nacos注册中心地址

写一个接口,来调用provider服务

@RestController
public class ConsumerController {@Autowiredprivate LoadBalancerClient loadBalancerClient;@Autowiredprivate RestTemplate restTemplate;/*** 调用springcloud-provide的/config/info接口* @return*/@GetMapping("/echo/info")public String echoConfigInfo(){//Access through the combination of LoadBalanceClient and RestTemplateServiceInstance serviceInstance = loadBalancerClient.choose("nacos-provider");String path = String.format("http://%s:%s/info",serviceInstance.getHost(),serviceInstance.getPort());System.out.println("request path:" +path);return restTemplate.getForObject(path,String.class);}//Instantiate RestTemplate Instance@Beanpublic RestTemplate restTemplate(){return new RestTemplate();}
}

然后启动服务,即可注册

好了,两个服务都成功注册了,然后,通过上面的controller可以进行调用了,这里说明一下,上面用到了两个API,LoadBalancerClientRestTemplate,算是微服务调用的核心吧

可以看到,通过调用consumer服务的/echo/info接口,可以访问到provider服务的/info接口,至此结束!

一步一步带你搭建SpringCloud微服务相关推荐

  1. 快速搭建 SpringCloud 微服务开发环境的脚手架

    快速搭建 SpringCloud 微服务开发环境的脚手架 本文作者:HelloGitHub-秦人 本文适合有 SpringBoot 和 SpringCloud 基础知识的人群,跟着本文可使用和快速搭建 ...

  2. 搭建微服务_快速搭建 SpringCloud 微服务开发环境的脚手架

    本文作者:HelloGitHub-秦人 本文适合有 SpringBoot 和 SpringCloud 基础知识的人群,跟着本文可使用和快速搭建 SpringCloud 项目. HelloGitHub ...

  3. 搭建springcloud微服务下的网关Netfilx Zuul

    原创文章转载请注明来源:https://blog.csdn.net/weixin_41756573/article/details/88689617 1.pom.xml(基于springboot2.0 ...

  4. 手把手搭建springcloud微服务,使用Eureka

    父工程 pom 父工程没啥,只有一个pom要配置 <?xml version="1.0" encoding="UTF-8"?><project ...

  5. SpringCloud微服务项目搭建

    常用链接 我的随笔 我的评论 我的参与 最新评论 我的标签 我的标签 springcloud(1) 随笔分类 编程(34) 随笔档案 2018年9月 (1) 2018年8月 (6) 2018年7月 ( ...

  6. SpringCloud微服务搭建(四 搭建EurekaServer集群)

    在上一章的基础上 在EurekasServer里面添加三个yml: bootstrap-server1.yml: server:port: 8794eureka:instance:hostname: ...

  7. springcloud微服务项目架构搭建第一天

    springcloud微服务项目架构搭建第一天 (一).项目简介 1.准备工作:idea创建springboot模板 2.后台应该涉及的技术(后期可能会有删改) Spring Framework 容器 ...

  8. 2022最新SpringCloud Alibaba入门到精通超详细版文档,教你从0到1搭建一个微服务项目

    随着近年来互联网应用和需求爆发式的增长,快速迭代,高并发,高业务复杂度也是开发人员需要面临的难题.同时,服务器技术也迅速革新,微服务,云计算,容器管理,负载均衡,持续集成等技术的兴起,也改变了最初的开 ...

  9. springboot2新版springcloud微服务,带你了解不一样的springboot2

    sb2.0新版springcloud微服务实战:Eureka+Zuul+Feign/Ribbon+Hystrix Turbine+SpringConfig+sleuth+zipkin springbo ...

最新文章

  1. 看完GitHub官方的2021年度报告,才发现原来全球程序员好像都在卷呐
  2. 深度学习 卷积层与全连接层权重参数个数的计算
  3. Python之调用JS的方式
  4. ABPZero系列教程之拼多多卖家工具
  5. 在.Net项目中使用Redis作为缓存服务
  6. java 反射机制 视频_【视频笔记】Java反射机制笔记
  7. 应对全场景AI框架部署挑战,MindSpore“四招”让你躺平
  8. Pytorch的可视化工具tensorboardX
  9. 【三维路径规划】基于matlab麻雀算法求解无人机三维路径规划问题【含Matlab源码 212期】
  10. 【三维路径规划】基于matlab遗传算法无人机三维路径规划【含Matlab源码 1268期】
  11. SuperMap iServer 重置密码
  12. 那些年 我们一起追过的DIY三大件
  13. 小学计算机教育计划,人教版小学信息技术教学计划(精选4篇)
  14. PHP将商品详情中的尺码表重新进行数据整合并翻译
  15. 星际争霸 2 快捷键
  16. 关于Network ACLs的理解
  17. 在MTK7628平台编译Silicon的zigbee Host程序
  18. tp5设置参数全局过滤
  19. 数据库decimal对应java什么类型_数据库字段类型和Java的对应关系
  20. 华为校招上机Java_2015华为校招上机考试编程Java

热门文章

  1. [2767]翻转排序 sdutOJ
  2. 结构体数组(C++)
  3. Live Writer首段缩进和全角空格设置
  4. 信息熵(Information Entropy)
  5. php安装扩展igbinary
  6. php生成 优惠券 激活码
  7. 必须知道的ADO.NET 数据库连接池
  8. [搬家帖]Linux文件操作
  9. 从上到下打印二叉树的三种题型
  10. Angular JS 增删改查(弹框修改)