SpringCloud服务注册发现(服务治理)之Nacos学习笔记步步截图(附带学习时写的源码项目)
SpringCloud
整个spring cloud学习时写的项目源码:git@gitee.com:HumorChen/spring-cloud-parent.git
上一篇博客为:eureka(服务治理)SpringCloud服务注册发现(服务治理)之Eureka学习笔记步步截图(附带学习时写的源码项目)
读这篇博客前先下载上面的git项目。
初识Spring Cloud
什么是微服务
- "微服务”一词源于Martin Fowler的名为Microservices的博文,可以在他的官方博客上找到
http://martinfowler.com/articles/microservices.html - 微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间一般通过HTTP的RESTfuLAPI进行通信协作。
- 被拆分成的每一个小型服务都围绕着系统中的某一项或些耦合度较高的业务功能进行构建,并且每个服务都维护着白身的数据存储、业务开发自动化测试案例以及独立部署机制。
SpringCloud简介
-
spring cloud 是一系列框架的有序集合
-
spring cloud 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟的、经得起实际考验的框架组合起来
-
通过Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包
-
它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务注册发现、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
-
Spring Cloud版本命名方式采用了伦敦地铁站的名称,同时根据字母表的顺序来对应版本时间顺序,比如:最早的Release版本: Angel,第二个Release版本: Brixton,然后是Camden、Dalston、Edgware,Finchley,Greenwich,Hoxton
-
spring cloud版本和springboot版本对应关系
Spring Cloud 与Dubbo对比
- Spring Cloud 与 Dubbo都是实现微服务有效的工具。
- Dubbo只是实现了服务治理,而Spring Cloud子项目分别覆盖了微服务架构下的众多部件。
- Dubbo使用RPC通讯协议,Spring Cloud使用RESTful完成通信,Dubbo效率略高于Spring Cloud。
小结
- 微服务就是将项目的各个模块拆分为可独立运行、部署、测试的架构设计风格。
- Spring公司将其他公司中微服务架构常用的组件整合起来,并使用SpringBoot简化其开发、配置。称为Spring Cloud
- Spring Cloud 与Dubbo都是实现微服务有效的工具。Dubbo性能更好,而Spring Cloud功能更全面。
服务治理
Nacos(配置中心和服务治理)
-
Nacos (Dynamic Naming andConfiguration Service)是阿里巴巴2018年7月开源的项目。
-
它专注于服务发现和配置管理领域致力于帮助您发现、配置和管理微服务。
-
Nacos支持几乎所有主流类型的“服务”的发现、配置和管理。
-
—句话概括就是Nacos = Spring Cloud徒册中心+ Spring Cloud配置中心。
-
官网: https://nacos.io/
-
下载地址: https://github.com/alibaba/nacos/releases
-
下载的是最新的2.0.3版本,跟着视频一顿操作搞报错了,视频是1.x版本,那就自己写吧
单点启动和使用
- 在github release里下载2.0.3版本解压后进入config目录将application.properties文件中的下面内容解除注释并将数据库的账号密码修改为你的(url要注意!新版mysql要加时区,旧版不用,推荐你直接按我这样配,有问题再加入时区)
spring.datasource.platform=mysql
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8
db.user.0=root
db.password.0=root
- 修改bin目录下的startup.cmd,将MODE从clustter集群模式改为standalone独立模式
set MODE="standalone"
-
在本地mysql数据库中建立nacos数据库,并将config目录下的schema.sql,nacos-mysql.sql在nacos数据库中执行(如果某个执行不成功,不管了,我这边反正schema.sql执行不成功)
-
上面三个操作做完之前进入bin执行startup.cmd启动
-
进入控制台查看(账号密码都是nacos)
http://localhost:8848/nacos
-
像前面一样的复制一个provider和一个consumer,都加上依赖
<!-- nacos 服务发现--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>0.2.2.RELEASE</version> </dependency> <!-- nacos客户端--> <dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> <version>1.1.0</version> </dependency>
-
在provider的springboot启动类上加上注解@EnableDiscoveryClient(新版springcloud是可以不加的,但是我们还是加上)
-
修改provider配置,把nacos服务器地址配置上去,修改application-dev.yml
server: port: 8000 spring: cloud: nacos: discovery: server-addr: 127.0.0.1:8848
-
修改provider的dao里返回的数据,在title后面加一个nacos
-
启动provider,前往控制台查看是否注册上了
-
修改consumer配置,也跟provider一样的把nacos服务器地址配置上
-
启动consumer,使用postman测试接口是不是能正常服务发现
集群搭建和使用
其实就是以cluster模式启动,并配好集群的其他节点就行了。java程序那边把每个节点的ip都写上去,随便看个博客就会了,我这里暂时用的windows机器学习的,我就不赘述了。
配置中心
查看之前写的博客:Nacos配置中心的使用
本文来自博客园,作者:HumorChen99,转载请注明原文链接:https://www.cnblogs.com/HumorChen/p/18039565