这篇文档是关于 Dubbo 的简单介绍,涵盖 Dubbo 的核心概念、基本使用方式以及 Dubbo3 核心功能,无论你是 Dubbo 的老用户还是新用户,都可以通过这篇 文档快速了解 Dubbo 及新版本带来的变化。
2021年10月28日 基于 memcached 1 实现的 RPC 协议。
提示:2.3.0 以上版本支持
提示:2.3.0 以上版本支持
微服务是继SOA后,最流行的服务架构风格之一。
按照微服务对系统进行拆分后,每个服务的业务逻辑都更加简单、清晰。服务之间是松耦合的,模块之间的边界也更加清晰。
微服务有效降低了软件项目的业务复杂程度,为小团队独立开发、持续交付和部署打下了良好的基础。
遗憾的是,微服务并不是银弹。与传统的单一架构相比,微服务架构对团队的组织架构、技术水平、运维能力等方面,都提出了更高的要求。如果没有掌握得当的方法而生搬硬套,微服务架构只会会适得其反--降低项目的开发效率,这是本书的创作初衷之一。
在国内外的技术社区中,比较推崇现有开源方案,如"Spring Cloud全家桶"或者阿里开源的"Dubbo"。上述框架通常已经实现了服务发现、配置、负载均衡、限流熔断,等微服务架构所必须的的核心功能。
使用开源框架省却了造轮子的过程,但也降低了我们学习、思考的欲望。
为什么需要服务发现,又如何实现它呢?配置中心呢....思考和设计的过程充满了挑战,也是提升自身架构能力的一种手段。这是本书的创作初衷之二。
已有的微服务资料过于重视微服务的开发,忽略了微服务赖以生存的生态系统:工具链、自动化运维。可以说,离开了这两点的支持,微服务架构将难以落地。完善这两方面的思考和实战,是本书的创作初衷之三。
为此,我撰写了这本《从0到1实战微服务架构》。让我们"暂时忘掉"已有的、成熟的开源解决方案。尝试亲自动手,实现微服务架构的各个模块。
我们会从微服务开发、工具链、运维这三个角度,阐述微服务架构的实战方案。
由于篇幅、精力所限,本书无法写成一本”零起点”教程。我假设读者具有至少2年的服务端工作经验,并且了解以下技术或原理:
Git
Maven & Gradle
Docker & k8s
Java
Spring / Spring Boot
数据库: 如MySQL
消息队列: 如RabbitMQ
缓存系统: 如Memcached
内存数据库: 如Redis
本书可以供架构师、项目经理、高级服务端程序员参考、学习。
动手实战是本书的核心内容,因此本书所涉及的全部代码,都托管到了我的Github上(以lmsia-开头的项目)。
这些代码以研讨为主要目的,也可以直接应用于生产,但本人不对其稳定性负责。
按照微服务对系统进行拆分后,每个服务的业务逻辑都更加简单、清晰。服务之间是松耦合的,模块之间的边界也更加清晰。
微服务有效降低了软件项目的业务复杂程度,为小团队独立开发、持续交付和部署打下了良好的基础。
遗憾的是,微服务并不是银弹。与传统的单一架构相比,微服务架构对团队的组织架构、技术水平、运维能力等方面,都提出了更高的要求。如果没有掌握得当的方法而生搬硬套,微服务架构只会会适得其反--降低项目的开发效率,这是本书的创作初衷之一。
在国内外的技术社区中,比较推崇现有开源方案,如"Spring Cloud全家桶"或者阿里开源的"Dubbo"。上述框架通常已经实现了服务发现、配置、负载均衡、限流熔断,等微服务架构所必须的的核心功能。
使用开源框架省却了造轮子的过程,但也降低了我们学习、思考的欲望。
为什么需要服务发现,又如何实现它呢?配置中心呢....思考和设计的过程充满了挑战,也是提升自身架构能力的一种手段。这是本书的创作初衷之二。
已有的微服务资料过于重视微服务的开发,忽略了微服务赖以生存的生态系统:工具链、自动化运维。可以说,离开了这两点的支持,微服务架构将难以落地。完善这两方面的思考和实战,是本书的创作初衷之三。
为此,我撰写了这本《从0到1实战微服务架构》。让我们"暂时忘掉"已有的、成熟的开源解决方案。尝试亲自动手,实现微服务架构的各个模块。
我们会从微服务开发、工具链、运维这三个角度,阐述微服务架构的实战方案。
由于篇幅、精力所限,本书无法写成一本”零起点”教程。我假设读者具有至少2年的服务端工作经验,并且了解以下技术或原理:
Git
Maven & Gradle
Docker & k8s
Java
Spring / Spring Boot
数据库: 如MySQL
消息队列: 如RabbitMQ
缓存系统: 如Memcached
内存数据库: 如Redis
本书可以供架构师、项目经理、高级服务端程序员参考、学习。
动手实战是本书的核心内容,因此本书所涉及的全部代码,都托管到了我的Github上(以lmsia-开头的项目)。
这些代码以研讨为主要目的,也可以直接应用于生产,但本人不对其稳定性负责。
2021年11月02日 前面已经提到,缓存是快速提升系统性能,缓解瓶颈的有效手段。
缓存的种类多种多样,小到CPU的缓存,大到静态生成的页面缓存。在本小节中,我们主要讨论在Spring Boot中整合如下两种缓存:
本地缓存: 在内存中开辟一小块空间,用于缓存,速度很快,但容量受限。我们采用Gruva中的缓存实现。
网络缓存: 同一微服务的不同节点间,通过网络共享,例如Memcached。
缓存的种类多种多样,小到CPU的缓存,大到静态生成的页面缓存。在本小节中,我们主要讨论在Spring Boot中整合如下两种缓存:
本地缓存: 在内存中开辟一小块空间,用于缓存,速度很快,但容量受限。我们采用Gruva中的缓存实现。
网络缓存: 同一微服务的不同节点间,通过网络共享,例如Memcached。
2021年11月02日 如果业务进一步发展,通过"读写分离"、"分库分表"后,数据库的性能依然无法满足高并发读请求,此时就需要缓存出马了。
本书提供 spring、spring-boot、spring-cloud 的常用整合用例。每个用例都提供详细的图文说明,并给出官方文档的具体链接作为参考。随着 spring 的迭代,本仓库会持续更新,升级版本和丰富用例。
版本说明:
spring: 5.1.3.RELEASE
spring-boot:2.1.1.RELEASE
spring-cloud:Finchley.SR2
版本说明:
spring: 5.1.3.RELEASE
spring-boot:2.1.1.RELEASE
spring-cloud:Finchley.SR2
2021年12月11日
2021年12月11日
2021年12月11日