开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(二十三)

本文涉及的产品
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,182元/月
简介: Spring Cloud微服务架构设计与开发实战课时3.2—Spring Cloud微服务注册与发现 。Java Spring Cloud是全球范围内最成熟、最完善、最流行的微服务架构方案体系。被众多的互联网大公司采用,包括阿里巴巴、腾讯、支付宝、网易、IBM、谷歌、京东、百度、滴滴等。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!

哈喽各位同学们大家好呀,今天是开发者学院中课程“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主要解决服务注册中心的问题。在大数据里面同类型的产品ZooKeeperSpring 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 

相关文章
|
2月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
446 3
|
16天前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
Spring Boot 3.x 微服务架构实战指南
|
4月前
|
JavaScript 前端开发 Java
垃圾分类管理系统基于 Spring Boot Vue 3 微服务架构实操指南
本文介绍了基于Java技术的垃圾分类管理系统开发方案与实施案例。系统采用前后端分离架构,后端使用Spring Boot框架搭配MySQL数据库,前端可选择Vue.js或Java Swing实现。核心功能模块包括垃圾分类查询、科普教育、回收预约等。文中提供了两个典型应用案例:彭湖花园小区使用的Swing桌面系统和基于Spring Boot+Vue的城市管理系统,分别满足不同场景需求。最新技术方案升级为微服务架构,整合Spring Cloud、Redis、Elasticsearch等技术,并采用Docker容器
245 0
|
1月前
|
Java 数据库 数据安全/隐私保护
Spring Boot四层架构深度解析
本文详解Spring Boot四层架构(Controller-Service-DAO-Database)的核心思想与实战应用,涵盖职责划分、代码结构、依赖注入、事务管理及常见问题解决方案,助力构建高内聚、低耦合的企业级应用。
450 1
|
1月前
|
安全 数据可视化 Java
AiPy开发的 Spring 漏洞检测神器,未授权访问无所遁形
针对Spring站点未授权访问问题,现有工具难以检测如Swagger、Actuator等组件漏洞,且缺乏修复建议。全新AI工具基于Aipy开发,具备图形界面,支持一键扫描常见Spring组件,自动识别未授权访问风险,按漏洞类型标注并提供修复方案,扫描结果可视化展示,支持导出报告,大幅提升渗透测试与漏洞定位效率。
|
1月前
|
Kubernetes Java 微服务
Spring Cloud 微服务架构技术解析与实践指南
本文档全面介绍 Spring Cloud 微服务架构的核心组件、设计理念和实现方案。作为构建分布式系统的综合工具箱,Spring Cloud 为微服务架构提供了服务发现、配置管理、负载均衡、熔断器等关键功能的标准化实现。本文将深入探讨其核心组件的工作原理、集成方式以及在实际项目中的最佳实践,帮助开发者构建高可用、可扩展的分布式系统。
288 0
|
6月前
|
人工智能 Java 数据库
飞算 JavaAI:革新电商订单系统 Spring Boot 微服务开发
在电商订单系统开发中,传统方式耗时约30天,需应对复杂代码、调试与测试。飞算JavaAI作为一款AI代码生成工具,专注于简化Spring Boot微服务开发。它能根据业务需求自动生成RESTful API、数据库交互及事务管理代码,将开发时间缩短至1小时,效率提升80%。通过减少样板代码编写,提供规范且准确的代码,飞算JavaAI显著降低了开发成本,为软件开发带来革新动力。

热门文章

最新文章