哈喽各位同学们大家好呀 今天是开发者学院中课程“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. 实时监控服务的状态。?
?
?
二 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 架构图?
下图所示 是微服务架构图 有注册中心 客户端微服务上线注册 微服务实例数量是动态的 有可能是一台 也有可能是很多台 灵活弹性根据客户端的压力做弹性伸缩。?
客户端调用时不是直接找微服务 先找注册中心 有哪些好的微服务 有哪些匹配的 每次搜索最新的报表 然后调用。客户端也可以按照各种负载均衡的策略去调用 或者结合一些负责运行的算法灵活调度。?
?
?
二、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/。?
?
?
二 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服务项目?
演示部分 ?
下图所示 是正常运行界面。?
?
这里还没有服务实例 下面演示开发微服务 再把微服务注册进来。打开Eclipse开发工具 新建项目 插件里面会有New Spring?Sttarter?Project模板 Name?栏加入Eureka 下面直接配公司的域名就行 Group?栏输入com.alibaba 点击下一步 如下图所示 ?
?
Available栏输入Eureka 加入注册中心、服务端 为了开发调试再加入dev 用于加载动态调试工具 做动态调试服务。演示版本是2.4.1 再下一步 ?
?
下一步 ?
。?
这里面会生成项目 Maven会自动来去拉包 第一次拉包时间比较久 网络好应该会快一点 把Maven仓库改成阿里或其他公司 国内应该有很多Maven仓库镜像。?
先来改配置文件 这里关键是加注解 启用EurekaServer,?EurekaServer自动跟进配置 制作在某个端口上 包括注册中心的界面 会提供注册地址 在之前的例子上是提供Rest API,?供客户端注册。?
第一步是 启动 ?EnableEurekaServer 使服务器具备注册中心的能力 这一步非常重要。?
?
?
接下配一下配置文件 配置文件有几个核心参数 程序名和端口 程序名输入EurekaServer。端口不配的话就是默认的8080 因为官方例子是8761 我们也配置8761。还需要配置Eureka的注册客户端 如下图所示 “http://localhost:8761/eureka”是注册中心的地址 给客户端注册和查找用的。?
?
接下来启动程序 直接右键 选Run As ,有两种启动方式 1.jave Application 2.Spring Boot APP 两种都可以启动。?
?
?
启动成功之后 打开浏览器 输入http://localhost:8761回车 出现Eureka注册中心的界面。里面一有个服务实例 这个实例默认没有关掉 自己可以往自己中心的注册 正常并不需要 自己往自己中心的注册实际是多余的。在比较底的版本会显示出错。?
?
?
可以配置关闭上面的服务实例 输入“eureka.client.fetch-registry false”,“eureka.client.register-with-eurka falsr”。?
?
重新加载后 打开eureka界面 可以看到 自己往自己中心注册的实例就没有了。?
?
?
三、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。?
一、PostgreSQL行业位置 一 行业位置 首先我们看一看RDS PostgreSQL在整个行业当...
中国最?好的一朵云飘进了华瑞银行。阿里云将进一步助力华瑞银行All in Cloud。 -...
9月17日,2020云栖大会上,阿里云正式发布工业大脑3.0。 阿里云智能资深产品专家...
2020年对于云计算行业来说是突破性的一年,因为公共云供应商增加了收入,而疫情...
最近,DevOps的采用导致了企业计算的重大转变。除无服务器计算,动态配置和即付...
在TOP云(zuntop.com)科技租赁过服务器的站长都知道独立服务器在价格上比VPS主...
很长时间没有更新原创文章了,但是还一直在思考和沉淀当中,后面公众号会更频繁...
定义 this是函数运行时自动生成的内部对象,即调用函数的那个对象。(不一定很准...
本文转载自网络,原文链接:https://mp.weixin.qq.com/s/vlOUg46B5bcmToX-fjavJQ...
查看表结构,sbtest1有主键、k_1二级索引、i_c二级索引 CREATE TABLE `sbtest1` ...