目录
一、微服务设计
二、技术选型
三、关键实现
四、服务注册
五、服务发现
目标
一、微服务包括那些内容
二、为什么会出现服务注册和服务发现
三、了解关键技术实现原理
一、微服务设计
1、包括那些内容
(1)、服务注册、发现、负载均衡和健康检查,假定采用进程内LB方案,那么服务自注册一般统一做在服务器端框架中,健康检查逻辑由具体业务服务定制,框架层提供调用健康检查逻辑的机制,服务发现和负载均衡则集成在服务客户端框架中。
(2)、监控日志,框架一方面要记录重要的框架层日志、metrics和调用链数据,还要将日志、metrics等接口暴露出来,让业务层能根据需要记录业务日志数据。在运行环境中,所有日志数据一般集中落地到企业后台日志系统,做进一步分析和处理。
(3)、 REST/RPC和序列化,框架层要支持将业务逻辑以HTTP/REST或者RPC方式暴露出来,HTTP/REST是当前主流API暴露方式,在性能要求高的场合则可采用Binary/RPC方式。针对当前多样化的设备类型(浏览器、普通PC、无线设备等),框架层要支持可定制的序列化机制,例如,对浏览器,框架支持输出Ajax友好的JSON消息格式,而对无线设备上的Native App,框架支持输出性能高的Binary消息格式。
(4)、配置,除了支持普通配置文件方式的配置,框架层还可集成动态运行时配置,能够在运行时针对不同环境动态调整服务的参数和配置。
(5)、限流和容错,框架集成限流容错组件,能够在运行时自动限流和容错,保护服务,如果进一步和动态配置相结合,还可以实现动态限流和熔断。
(6)、管理接口,框架集成管理接口,一方面可以在线查看框架和服务内部状态,同时还可以动态调整内部状态,对调试、监控和管理能提供快速反馈。Spring Boot微框架的Actuator模块就是一个强大的管理接口。
(7)、统一错误处理,对于框架层和服务的内部异常,如果框架层能够统一处理并记录日志,对服务监控和快速问题定位有很大帮助。
(8)、安全,安全和访问控制逻辑可以在框架层统一进行封装,可做成插件形式,具体业务服务根据需要加载相关安全插件。
(9)、文档自动生成,文档的书写和同步一直是一个痛点,框架层如果能支持文档的自动生成和同步,会给使用API的开发和测试人员带来极大便利。Swagger是一种流行Restful API的文档方案。
2、服务注册和服务发现
1)、为什么会出现服务注册和服务发现
在一个微服务应用中,服务实例在运行时的配置也会动态变化,包括他们的网络地址。为了满足客户端向服务发送请求的需要,必须要实现服务发现机制。服务发现的关键部分是服务注册表。服务注册表是一个可用的服务实例的数据库。服务注册表提供了一个管理API和一个查询API。服务实例的注册和注销通过管理API实现,查询API用来寻找可用的服务实例。
3、注册中心
服务注册中心。作为微服务架构最基础也是最重要的组件之一,服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分布往往是动态变化的,也是无法预先确定的。因此,原本在单体应用阶段常用的静态LB机制就不再适用了,需要引入额外的组件来管微服务提供者的注册与发现,而这个组件就是服务注册中心。
二、技术选型
1、基础框架
spring-4.2.8.RELEASE
2、rpc
netty-4.0.24.Final
序列化:protostuff-1.0.8
3、rest
spring-mvc-4.2.8.RELEASE
4、服务注册和发现
zookeeper-3.4.8
5、负载均衡
轮询和加权算法
6、api网关
camel-2.16.2
三、关键实现
1、服务规范
(1)、服务开发规范
服务接口、服务实现、服务版本
(2)、服务注册规范
服务扫描、服务注册格式
(3)、服务发现规范
发现策略、接口代理、调用规范
2、服务实现
(1)、生成服务
(2)、服务使用
3、技术整合
(1)、整合spring
4、技术实现
(1)、统一对象代理(jdk动态对象)
(2)、统一调用处理 (jdk动态处理)
(3)、统一请求和返回封装
(4)、反射调用(方法、参数)()
(5)、订阅思想(zk)
(6)、netty连接通道和监听
(7)、java自定义注解
1、注册格式
(2)、hms
2、服务注册-消费者(consumer)到注册中心(register)
(1)、扫描服务(自定义注解+spring注解扫描支持+spring注册bean)
(2)、获取服务信息和服务bean管理
(3)、注册服务信息到zk(节点+接口)
3、服务发现-生存者(provider)获取注册中心服务信息(register)
(1)、扫描服务(自定义注解+spring注解扫描支持)
(2)、获取服务节点信息到本地
(3)、spring 工厂模式创建rpc bean
(4)、注册rpc bean 到 spring 管理
六、微服务开发
1、整合spring,bean管理、bean使用跟spring 普通bean一致
未来预告
3、微服务之异步mq(最终事务一致性)
4、微服务之分库分表
5、微服务之全链路跟踪
注意事项: 一切都有源码 ,如需源码联系微信:hmsjava
永久链接:http://hbhk888918.iteye.com/blog/2424166
相关推荐
### Dubbo和Spring Cloud微服务架构对比——服务注册和发现 #### 微服务架构概述 在当前快速发展的软件行业中,微服务架构作为一种重要的设计模式,已经被广泛采纳。它通过将复杂的单体应用拆分为一系列相互独立的...
Eureka服务器和Spring Cloud Netflix Eureka Server是实现微服务架构中服务注册和发现的关键组件。微服务架构是一种将大型应用程序拆分成小而自治的服务的方法,而这些服务需要能够相互发现和通信。 使用Eureka...
微服务架构中,服务注册中心是必不可少的组件之一,它提供了服务提供者和服务消费者的解耦,使得微服务系统更加灵活和可扩展。本文主要讲解了Eureka服务注册中心的实现原理、特点和优点,并对比了其他服务注册中心的...
Service Mesh 是一种微服务架构的治理模式,它可以提供服务发现、流量控制、安全认证、监控和追踪等功能。Service Mesh 的主要组件包括: 1. 服务代理:负责服务之间的通信和流量控制。 2. 服务注册中心:负责服务...
在这个项目中,Flask应用作为一个微服务实例,通过Consul进行服务注册和发现。 4. **服务注册**: 在启动Flask应用时,应用会向Consul注册自身,包括服务名、地址和端口等信息。这样,其他服务就能通过Consul知道该...
在微服务架构中,服务发现是核心组件之一,它使得服务之间的通信能够在动态变化的环境中保持高效和可靠。服务发现的主要目标是在服务实例频繁启动、销毁,网络地址不断变化的情况下,确保服务消费者能够找到并正确...
通过这个简单的实例,你可以了解到Spring Cloud Eureka在微服务架构中的核心功能,并能动手实践,加深对服务注册发现和服务消费的理解。对于初学者来说,这是一个很好的起点,有助于进一步探索Spring Cloud的其他...
Spring Cloud是实现微服务架构的常用框架,其中Eureka是其关键组件之一,用于服务注册与发现。 Eureka是Netflix开源的一个服务注册中心,它的主要功能是为微服务架构中的各个服务提供注册和发现的能力。服务注册是...
以上就是Eureka在Spring Cloud中的基本使用,通过服务注册和发现,我们可以轻松地管理微服务,实现服务之间的通信。在实际项目中,还可以结合Hystrix、Zuul等组件,进一步提升微服务架构的稳定性和可扩展性。
微服务架构的注册中心是整个微服务系统的核心组件之一,主要扮演着服务发现与治理的角色。注册中心可以看作是分布式系统中的“通讯录”,它记录着各个微服务实例的位置信息以及服务状态,从而使得服务之间能够相互...
1. **服务治理:** 需要良好的服务注册、发现和管理机制。 2. **数据一致性:** 分布式系统中保持数据一致性是一个挑战。 3. **测试复杂性:** 需要为微服务架构设计集成测试和端到端测试。 4. **部署复杂性:** ...
在学习和实践"GeoDataSystem微服务注册与发现"时,你需要理解微服务架构的基本原理,熟悉一种或多种服务注册中心的使用,以及如何在代码中实现服务的注册与发现逻辑。此外,对于服务治理的相关策略,如熔断、限流、...
3. **透明**:通过服务注册中心管理服务的发布和消费、调用关系。 4. **独立**:服务能够独立打包、发布、部署、启停、扩容和升级。 5. **分层**:梳理和抽取核心应用、公共应用,形成稳定的服务中心,快速响应市场...
此外,这份文档可能还会讨论微服务架构的挑战,比如服务发现、分布式事务和跨服务通信等问题。 接下来,"01 阿里巴巴微服务组件Nacos注册中心实战.pdf"是关于阿里巴巴的Nacos服务。Nacos是一个用于构建以服务为中心...
Euraka是Netflix开发的一款开源项目,它主要用于服务发现和服务治理,是微服务架构中的关键组件。在Spring Cloud生态中,Euraka作为服务注册与发现的工具,使得微服务能够互相找到并通信。 首先,我们来看一下如何...
- **实现服务注册与发现**:部署服务发现机制,确保服务之间的通讯。 - **测试与部署**:进行集成测试,采用持续集成/持续部署(CI/CD)流程,如Jenkins或GitLab CI。 总之,微服务架构是现代企业级应用的首选...
用户请求时直接请求网关,网关做智能路由转发(包括服务发现,负载均衡)到 open-service,这其中包含权限校验、监控、限流等操作。 2. 引入网关的注意点:增加了网关,多了一层转发(原本用户请求直接访问 open-...
* 服务注册中心:提供服务注册、发现和路由的功能,确保服务之间的调用和交互。 * 服务网关:提供统一的入口点,对外提供服务,屏蔽内部服务的实现细节。 * 配置中心:提供统一的配置管理,确保服务配置的一致性和可...
服务注册与发现是微服务架构中的基础机制,通过服务注册中心,服务提供者将自己的信息注册到中心,服务消费者则从注册中心获取服务提供者的信息。这种机制实现了服务的解耦,并且有利于服务的动态扩展和故障转移。 ...