文章目录

  • 前言
  • 一、什么是微服务
  • 二、怎么搭建微服务项目
    • 1.Spring Cloud
    • 2.Spring Cloud的内容
  • 三、注册中心Nacos
    • 1.什么是Nacos
    • 2.Nacos的下载
    • 3.Nacos的启动
    • 4.使用IDEA启动Nacos
  • 四、将项目注册到Nacos
    • Nacos心跳机制
  • 总结

前言

在当今java开发业界中,基本规律如下

  • 如果开发的是企业级应用,使用单体架构的情况比较多
  • 如果开发的是互联网应用,使用微服务架构的情况比较多

提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是微服务

微服务的概念是由Martin Fowler(马丁·福勒)在2014年提出的。
微服务是由以单一应用程序构成的小服务,自己拥有自己的行程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通信。同时服务会使用最小的规模的集中管理能力,服务可以用不同的编程语言与数据库等组件实现。

简单来说,微服务就是将一个大型项目的各个业务代码,拆分成多个互不相干的小项目,而这些小项目专心的完成自己的功能,而且可以调用别的小项目的方法,从而完成整体功能

京东\淘宝这样的大型互联网应用程序,基本每个操作都是一个单独的微服务在支持:

  • 登录服务器
  • 搜索服务器
  • 商品信息服务器
  • 购物车服务器
  • 订单服务器
  • 支付服务器
  • 物流服务器

二、怎么搭建微服务项目

1.Spring Cloud

SpringCloud是由Spring提供的一套能够快速搭建微服务架构程序的框架集

框架集表示SpringCloud不是一个框架,而是很多框架的统称

SpringCloud就是为了搭建微服务架构项目出现的

有人将SpringCloud称之为"Spring全家桶",广义上指代Spring的所有产品

2.Spring Cloud的内容

内容的提供者

  • Spring自己编写的框架或软件
  • Netflix(奈非):早期提供了全套的微服务架构解决方案
  • alibaba(阿里巴巴):新版本的SpringCloudAlibaba正在迅速占领市场(推荐使用)

功能上分类

  • 微服务的注册中心
  • 微服务间的调用
  • 微服务的分布式事务
  • 微服务的限流
  • 微服务的网关

三、注册中心Nacos

1.什么是Nacos

Nacos是Spring Cloud Alibaba提供的一个软件

这个软件主要具有注册中心和配置中心(后面讲解)的功能

我们先学习它注册中心的功能

微服务中所有项目都必须注册到注册中心才能成为微服务的一部分

注册中心和企业中的人力资源管理部门有相似

当前微服务项目中所有的模块,在启动前,必须添加注册到Nacos的配置

所谓注册,就是将自己的信息,提交到Nacos来保存

2.Nacos的下载

https://github.com/alibaba/nacos/releases/download/1.4.3/nacos-server-1.4.3.zip

国外网站,下载困难可以多试几次

3.Nacos的启动

因为Nacos是java开发的

我们要启动Nacos必须保证当前系统配置了java环境变量

简单来说就是要环境变量中,有JAVA_HOME的配置,指向安装jdk的路径

确定了支持java后,就可以启动Nacos了

将压缩包解压(注意不要有中文路径或空格)

打开解压得到的文件夹后打开bin目录会有如下内容

cmd结尾的文件是windows版本的

sh结尾的文件是linux和mac版本的

startup是启动文件,shutdown是停止文件

Windows下启动Nacos不能直接双击cmd文件

需要在dos窗口运行

在当前资源管理器地址栏输入cmd

D:\tools\nacos\bin>startup.cmd -m standalone

startup.cmd:windows启动nacos的命令文件

-m 表示要设置启动参数

standalone:翻译为标准的孤独的,意思是正常的使用单机模式启动

运行成功默认占用8848端口,并且在代码中提示

打开浏览器输入地址

http://localhost:8848/nacos

如果是首次访问,会出现这个界面

登录系统

用户名:nacos

密码:nacos

登录之后可以进入后台列表

不能关闭启动nacos的dos窗口

我们要让我们编写的项目注册到Nacos,才能真正是微服务项目

4.使用IDEA启动Nacos

之前我们启动Nacos都是使用dos命令行,启动过程比较复杂,命令比较长

Idea实际上支持我们更加方便的启动Nacos
步骤1:

步骤2:

步骤3:
Script path: 配置Windows启动文件路径
Script options: 配置命令 -m standalone
配置成功之后
Nacos就会出现在idea的启动选项中了

四、将项目注册到Nacos

一个项目要想称为微服务项目体系的一部分,必须将当前项目的信息注册到Nacos,我们要添加一些配置,实现business(我自己创建的项目)模块启动时注册到Nacos的效果

首先business模块pom文件中添加依赖

<!--  支持项目注册到Nacos注册中心的依赖 discovery发现(服务的发现)  -->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

我们在创建好的application-dev.yml中编写对nacos注册的配置信息

spring:application:#  为当前项目起名,这个名字会被Nacos记录并使用name: nacos-businesscloud:nacos:discovery:# 配置Nacos所在的位置,用于注册时提交信息server-addr: localhost:8848

启动一下nacos ,启动之后,重启business模块,如果启动也正常,就应该将当前项目的信息提交给Nacos

在Nacos的服务管理->服务列表中,能看到nacos-business的名称

Nacos心跳机制

心跳:周期性表示自己健康的机制

Nacos内部注册的服务都会有一个心跳机制

心跳机制的目的,是每个服务和Nacos保持沟通和交换信息的机制

默认情况下,服务启动后每隔5秒会向Nacos发送一个"心跳包",这个心跳包中包含了当前服务的基本信息

Nacos接收到这个心跳包,首先检查当前服务在不在注册列表中,如果不在按新服务的业务进行注册,如果在,表示当前这个服务是健康状态

如果一个服务连续3次心跳(默认15秒)没有和Nacos进行信息的交互,就会将当前服务标记为不健康的状态

如果一个服务连续6次心跳(默认30秒)没有和Nacos进行信息的交互,Nacos会将这个服务从注册列表中剔除

这些时间都是可以通过配置修改的

实例类型分类

实际上Nacos的服务类型还有分类

  • 临时实例(默认)
  • 持久化实例(永久实例)

默认每个服务都是临时实例

如果想标记一个服务为永久实例

cloud:nacos:discovery:# ephemeral设置当前项目启动时注册到nacos的类型 true(默认):临时实例 false:永久实例ephemeral: false

持久化实例启动时向nacos注册,nacos会对这个实例进行持久化处理

心跳包的规则和临时实例一致,只是不会将该服务从列表中剔除

一般情况下,我们创建的服务都是临时实例

只有项目的主干业务才会设置为永久实例

总结

提示:这里对文章进行总结:

今天先介绍微服务的概念和如何搭建微服务项目,并且通过注册项目来理解如何创建真正的微服务项目。

Spring Cloud之微服务概述相关推荐

  1. SpringCloud 微服务入门-Spring Cloud 与微服务概述

    导语   首先要了解的是微服务是一种架构风格,跟SOA类似.而Spring Cloud 则是实现这种架构风格的一种技术栈.类似于实现SOA架构风格,用到的具体的技术栈就是ESB.博主也在之前的博客中分 ...

  2. 防止内卷和被潜规则,Spring Cloud Alibaba微服务架构实战派(上下册)|35岁程序员那些事

    目录 1 写书缘由 2 本书上册核心内容 2.1 Spring Cloud Alibaba基础实战 2.1.1 主要内容 2.1.2 MyBatis-Plus实现多租户架构的核心原理 2.2 分布式服 ...

  3. 搭建基于Spring Cloud的微服务应用

    原文链接 在2017云栖大会-上海峰会上阿里云技术专家李斌做了题为<搭建基于spring Cloud的微服务应用>的分享.随着时代的发展,用户对于应用服务的要求越来越高,单体应用已经无法满 ...

  4. 《深入理解Spring Cloud与微服务构建》出版啦!

    作者简介 方志朋,毕业于武汉理工大学,CSDN博客专家,专注于微服务.大数据等领域,乐于分享,爱好开源,活跃于各大开源社区.著有<史上最简单的Spring Cloud教程>,累计访问量超过 ...

  5. Spring Cloud构建微服务架构:分布式服务跟踪(整合zipkin)【Dalston版】

    通过上一篇<分布式服务跟踪(整合logstash)>,我们虽然已经能够利用ELK平台提供的收集.存储.搜索等强大功能,对跟踪信息的管理和使用已经变得非常便利.但是,在ELK平台中的数据分析 ...

  6. Spring Cloud构建微服务架构:分布式服务跟踪(整合logstash)【Dalston版】

    通过之前的<入门示例>,我们已经为两个由SpringCloud构建的微服务项目 trace-1和 trace-2引入了Spring Cloud Sleuth的基础模块 spring-clo ...

  7. Spring Cloud构建微服务架构:分布式服务跟踪(跟踪原理)

    通过上一篇<分布式服务跟踪(入门)>的例子,我们已经通过Spring Cloud Sleuth往微服务应用中添加了实现分布式跟踪具备的基本要素.下面通过本文来详细说说实现分布式服务跟踪的一 ...

  8. Spring Cloud构建微服务架构:服务容错保护(Hystrix断路器)

    断路器 断路器模式源于Martin Fowler的Circuit Breaker一文."断路器"本身是一种开关装置,用于在电路上保护线路过载,当线路中有电器发生短路时," ...

  9. 基于Spring Boot和Spring Cloud实现微服务架构学习--转

    原文地址:http://blog.csdn.net/enweitech/article/details/52582918 看了几周spring相关框架的书籍和官方demo,是时候开始总结下这中间的学习 ...

最新文章

  1. C++基本要点复习--------coursera程序设计实习(PKU)的lecture notes
  2. asp打印html,asp.net教程之利用ASP在浏览器上打印输出
  3. 使用 Java Native Interface 的最佳实践
  4. Javascript中的类实现
  5. Lazada2022新开店入驻流程及费用
  6. 易格斯拖链选型手册_拖链相关知识
  7. 静态tableview组背景色的更改及自定义cell的两种方式
  8. sftp服务器配置管理系统,配置sftp服务器
  9. 艺工交叉——观《达芬奇的人生密码》有感
  10. lighttpd支持AJAX吗,lighttpd
  11. Centos7.2+Coturn+SignalMaster 搭建WebRTC进行H5直播
  12. 【SSL】谷仓的安保
  13. 有关于Mapreduce的读后感
  14. LeCo-221. 最大正方形
  15. 金融计算机怎么调成链式,FRM金融计算器使用方法
  16. 【01背包】【DP】精卫填海(黄题)
  17. node mysql timeout_Error: Handshake inactivity timeout in Node.js MYSQL module
  18. 第六届全国大学生生物医学工程创新设计竞赛参赛经历
  19. 前端项目,看我在这里管理全局后台初始化的数据,就问你飒不飒?
  20. static struct、typedef struct

热门文章

  1. 计算机机超级用户,电脑超级密码的设置方法
  2. 豆瓣首席架构师洪强宁谈Python语言
  3. SqlHelper的使用
  4. 对于Linux基础网络设置
  5. IDEA 2020.2 部署JSF项目
  6. 启动Jenkins时报错,localhost拒绝了我们的连接请求
  7. 什么是SQL注入攻击?
  8. 什么是modbus通信协议?
  9. Python 编程摘要
  10. Qt::Q_DECLARE_METATYPE