当前位置:主页 > 查看内容

开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实

发布时间:2021-07-29 00:00| 位朋友查看

简介:哈喽各位同学们大家好呀 今天是开发者学院中课程“Spring Cloud微服务架构设计与开发实战”的章节三的“Spring Cloud微服务注册与发现?”干货总结~是一起学习新课程吧 课程链接以及图谱地址小编已经为大家指路了 搭配学习效果更佳 课程名称 Spring Cloud微服……

哈喽各位同学们大家好呀 今天是开发者学院中课程“Spring Cloud微服务架构设计开发实战”的章节三的“Spring Cloud微服务注册与发现?”干货总结~是一起学习新课程吧

课程链接以及图谱地址小编已经为大家指路了 搭配学习效果更佳

课程名称 Spring Cloud微服务注册与发现?

课程地址 https://developer.aliyun.com/learning/course/60/detail/1095

图谱名称 Alibaba Java 技术图谱

图谱地址 https://developer.aliyun.com/graph/java

Spring Cloud微服务注册与发现?


一、Spring Cloud服务注册与发现?

对于微服务业务需要先进行拆分 微服务实例部署数量不固定 可以弹性伸缩 与传统架构不一样 比较靠拢云计算、云原生。?

一 服务注册与发现?

解决大规模服务集群的注册和发现问题 主要为了方便客户端调用。比如开发一个微服务是订单服务 开始只启用一台服务器 客户端和客户端直接调用微服务就可以了。但如果启用两台以上 客户端直接写多台服务的IP地址做轮巡是不行的 因为如果遇到类似双11促销场景 需要增加很多台服务 且是弹性不定数量增加 这时候最好有一种方案能够解决这个问题 把客户端和服务集群结耦。?

结耦里面很重要的就是注册中心 注册中心可以帮助管理服务 当只有一个、两个服务的时候 客户端可以直接和服务建立连接 当服务数量不固定 且伸缩范围很大时 需要一个专门的机构帮助管理这些服务。?

服务注册与发现总结 ?

1. 大规模微服务集群架构 ?

2. 许多服务实例 ?

3. 客户端要找到自己调用的服务 ?

4. 新服务上线 ?

5. 某个服务宕机 下线 ?

6. 实时监控服务的状态。?

image.png?

?

二 Spring Cloud Eureka服务发现与注册?

在微服务架构体系里 ?Netflix公司贡献了其中一个很重要的项目叫Eureka 主要解决服务注册中心的问题。在大数据里面 有同类型的产品ZooKeeper Spring Cloud通过扩展组件也可以进行集成。?

本节课主要讲实战开发 建立注册中心以后 怎么样把微服务注册进去 怎么让注册中心管理服务。总结 ?

1. Netflix公司开源的项目 ?

2.?Eureka 注册中心 ?

3. 一个基于 REST 的中心服务 管理服务 ?

4. 实现云端的服务注册和服务发现。?

5. Eureka组件组成 Eureka服务器和Eureka客户端 ?

6. 竞争对手ZooKeeper ?

7. 服务发现模块 Eureka 是Netflix的核心 ?

8. Spring Cloud Netflix提供的简化开发模板 ?

9. 直接使用spring boot 创建项目 ?

10. 添加? ?EnableEurekaServer开发注册服务中心。?

(三)Spring Cloud 架构图?

下图所示 是微服务架构图 有注册中心 客户端微服务上线注册 微服务实例数量是动态的 有可能是一台 也有可能是很多台 灵活弹性根据客户端的压力做弹性伸缩。?

客户端调用时不是直接找微服务 先找注册中心 有哪些好的微服务 有哪些匹配的 每次搜索最新的报表 然后调用。客户端也可以按照各种负载均衡的策略去调用 或者结合一些负责运行的算法灵活调度。?

image.png?

?

二、Eureka注册中心开发实战?

一 Spring Eureka注册中心?

1. 创建Eureka服务注册中心项目;??

2. 添加 ?EnableEurekaServer;??

3. 将spring boot应用改造成Eureka服务注册中心;?

4.?application.properties增加配置;??

5. 打包项目;??

6. 运行;??

7. 测试页面;??

8. 参考https://spring.io/guides/gs/service-registration-and-discovery/。?

image.png?

?

二 application.properties配置?

??server.port 8761 ?

??eureka.client.register-with-eureka false ?

??eureka.client.fetch-registry false ?

??eureka.client.serviceUrl.defaultZone http://localhost:${ser?

ver.port}/eureka/ ?

??logging.level.com.netflix.eureka OFF ?

??logging.level.com.netflix.discovery OFF ?

三 创建Spring Eureka服务项目?

演示部分 ?

下图所示 是正常运行界面。?

image.png?

这里还没有服务实例 下面演示开发微服务 再把微服务注册进来。打开Eclipse开发工具 新建项目 插件里面会有New Spring?Sttarter?Project模板 Name?栏加入Eureka 下面直接配公司的域名就行 Group?栏输入com.alibaba 点击下一步 如下图所示 ?

image.png?

Available栏输入Eureka 加入注册中心、服务端 为了开发调试再加入dev 用于加载动态调试工具 做动态调试服务。演示版本是2.4.1 再下一步 ?

image.png?

下一步 ?

image.png。?

这里面会生成项目 Maven会自动来去拉包 第一次拉包时间比较久 网络好应该会快一点 把Maven仓库改成阿里或其他公司 国内应该有很多Maven仓库镜像。?

先来改配置文件 这里关键是加注解 启用EurekaServer,?EurekaServer自动跟进配置 制作在某个端口上 包括注册中心的界面 会提供注册地址 在之前的例子上是提供Rest API,?供客户端注册。?

第一步是 启动 ?EnableEurekaServer 使服务器具备注册中心的能力 这一步非常重要。?

image.png?

?

接下配一下配置文件 配置文件有几个核心参数 程序名和端口 程序名输入EurekaServer。端口不配的话就是默认的8080 因为官方例子是8761 我们也配置8761。还需要配置Eureka的注册客户端 如下图所示 “http://localhost:8761/eureka”是注册中心的地址 给客户端注册和查找用的。?

image.png?

接下来启动程序 直接右键 选Run As ,有两种启动方式 1.jave Application 2.Spring Boot APP 两种都可以启动。?

image.png?

?

启动成功之后 打开浏览器 输入http://localhost:8761回车 出现Eureka注册中心的界面。里面一有个服务实例 这个实例默认没有关掉 自己可以往自己中心的注册 正常并不需要 自己往自己中心的注册实际是多余的。在比较底的版本会显示出错。?

image.png?

?

可以配置关闭上面的服务实例 输入“eureka.client.fetch-registry false”,“eureka.client.register-with-eurka falsr”。?

image.png?

重新加载后 打开eureka界面 可以看到 自己往自己中心注册的实例就没有了。?

image.png?

?

三、Eureka底层原理与源码分析?

一 Netflix Eureka源码?

?Eureka 官方源码 ?

?https://github.com/Netflix/eureka ?

?Spring Cloud Netflix 适配 Eureka 的代码 ?

?https://github.com/spring-cloud/spring-cloud-netflix。?

二 Eureka源码分析?

Eureka通信基于Http(s)协议的框架?

1. 纯正的 servlet 应用 需构建成war包部署 ?

2. 使用了 框架实现自身的 HTTP接口 ?

3. peer之间的同步与服务的注册全部通过 HTTP 协议实现 ?

4. 定时任务(发送 、定时清理过期服务、节点同步等)通过 JDK 自带的 Timer 实现 ?

5. 内存缓存使用Google的 包实现 ?

三 服务实例Instance的状态?

1. Up ?

2. Down ?

3. Starting ?

4.?Out_Of_Service ?

5. Unknown。?


本文转自网络,原文链接:https://developer.aliyun.com/article/785912
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐