基于 Zookeeper、Dubbo 构建互联网分布式基础架构(1)|学习笔记

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 快速学习基于 Zookeeper、Dubbo 构建互联网分布式基础架构(1),使用分布式需要一个注册中心,一个监控中心。原来是将一个项目跑到一些集群上面,而分布式是将一个大的项目分别拆开为多个模块,让其跑到不同的服务器上面,这叫做分布式。

开发者学堂课程【基于 Zookeeper、Dubbo 构建互联网分布式基础架构互联网基础架构演进(3)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/635/detail/10162


基于 Zookeeper、Dubbo 构建互联网分布式基础架构(1)

 

简介:

使用分布式需要一个注册中心,一个监控中心。原来是将一个项目跑到一些集群上面,而分布式是将一个大的项目分别拆开为多个模块,让其跑到不同的服务器上面,这叫做分布式。

优点:

每个 tomkeeper 上的负载就会变低,因此可以集中一部分服务器来满足更高性能的需求,例如秒杀的订单,需要大部分的服务器来处理。

 

一.使用分布式的一些问题

二.注册中心:Zookeeper

三.Dubbo 框架

四.演示功能


一、使用分布式的一些问题

(1)拆完之后会出现新的问题吗?现在有两个模块,二分之一的模块等等,他们之间是如何通信的呢?

例如有A和B两个模块,如果A里面需要用到B,他们分别又在两个不同的服务器上,则可以将其拆分变成服务,将B变成一个服务,A去引用B.

(2)服务之间的问题?A如何找到B然后引用它呢?

因为A和B不在一个服务器上,会出现A是一个集群,B也是一个集群,A要知道B的服务器地址,才能交互,A和B在两台不同的服务器上面,要想进行通信交互必须通过网络,通过网络必须知道互相的地址,但B的地址A是不知道的.

(3)如何让A知道B的地址呢?

A没有办法主动知道B的地址,所以需要找一个连接体,让A去找B,B去找A,这样的过程叫服务的注册和发现.

 

二.注册中心:Zookeeper

服务器交互是需要规范的,不是随便发一个数据就能交互,服务器要定协议,指定A或者B通过途径按照要求来交互,则出现Dubbo框架。

 

三、Dubbo 框架

一种分布式框架,第一种功能为用来分装各种协议,第二种功能为具有服务的治理功能,支持很多协议。

注:服务治理:记录调用的过程)

 

四.演示功能

新建一个项目,创建一个子模块

业务层  发布一个服务

控制层  远程控制业务层

(1) Project

project xmlns-"http://maven,apache.org/P0M/4.0.0"xmlns:xsi-"http://www.w3.org/2001/XMLSchema-xsi:schemaLocation-"http://maven.

apache.org/P0M/4.0.0 http://maven.apache,org/xsd/maven-4.0.0,<modelVersion>4.0.0</modelversion>
<groupId>com. qianfeng</groupId>
<artifactId>tes tduboodemo</artifactId,<vers ion>1.0</version>
<packaging> jar</packaging>
<name>testduboodemor/name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>
<dependencies>
<dependency>
<groupId> junit</groupId>
<artifactId>junit</artifactId><version>3.8.1</vers ion>
<scope>test</scope>
</dependency>
</dependencies>
</project>

(2) Testweb

<version>1.0</version>cmodules>
cmodulestestweb</modules</modules>
<packaging>pom</packaging>
<name>test duboodemo</name>
<url>http://maven.apache,org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId><version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId><artifactId>spring-webmvcs/artifactId><version>4.3.13.RELEASE/version>
</dependency>
</dependencies>

(2)testcontroller

import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;
Created by iackiechan on 2018/3/21/下午8:16
@RestController
public class TestController {

//这里应该声明一个service,但是刚才说过,service最终会变成一个web项目,也就是我们无法直接依赖了,但是此处仍然需要声明对象,怎么办?
//解决方式,我们将service 的接口声明和实现进行拆分,如何拆分,将service 创建为一个项目,jar包格式的项目?

为什么这么创建,因为除//control会用到service外,我们的serviceimpl实现中也用到了这个接口
@RequestMapping("/getData")
public String getData(String name ) {

return null;

}

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
打赏
0
0
0
0
269
分享
相关文章
用PyTorch从零构建 DeepSeek R1:模型架构和分步训练详解
本文详细介绍了DeepSeek R1模型的构建过程,涵盖从基础模型选型到多阶段训练流程,再到关键技术如强化学习、拒绝采样和知识蒸馏的应用。
27 2
用PyTorch从零构建 DeepSeek R1:模型架构和分步训练详解
|
2月前
|
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
本文详细介绍了PaliGemma2模型的微调流程及其在目标检测任务中的应用。PaliGemma2通过整合SigLIP-So400m视觉编码器与Gemma 2系列语言模型,实现了多模态数据的高效处理。文章涵盖了开发环境构建、数据集预处理、模型初始化与配置、数据加载系统实现、模型微调、推理与评估系统以及性能分析与优化策略等内容。特别强调了计算资源优化、训练过程监控和自动化优化流程的重要性,为机器学习工程师和研究人员提供了系统化的技术方案。
222 77
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
工厂人员定位管理系统架构设计:构建一个高效、可扩展的人员精确定位
本文将深入探讨工厂人员定位管理系统的架构设计,详细解析前端展示层、后端服务层、数据库设计、通信协议选择等关键环节,并探讨如何通过微服务架构实现系统的可扩展性和稳定性。
68 10
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
构建全天候自动化智能导购助手:从部署者的视角审视Multi-Agent架构解决方案
在构建基于多代理系统(Multi-Agent System, MAS)的智能导购助手过程中,作为部署者,我体验到了从初步接触到深入理解再到实际应用的一系列步骤。整个部署过程得到了充分的引导和支持,文档详尽全面,使得部署顺利完成,未遇到明显的报错或异常情况。尽管初次尝试时对某些复杂配置环节需反复确认,但整体流程顺畅。
如何基于服务网格构建高可用架构
分享如何利用服务网格构建更强更全面的高可用架构
构建高效后端服务:微服务架构的深度解析与实践
在当今快速发展的软件行业中,构建高效、可扩展且易于维护的后端服务是每个技术团队的追求。本文将深入探讨微服务架构的核心概念、设计原则及其在实际项目中的应用,通过具体案例分析,展示如何利用微服务架构解决传统单体应用面临的挑战,提升系统的灵活性和响应速度。我们将从微服务的拆分策略、通信机制、服务发现、配置管理、以及持续集成/持续部署(CI/CD)等方面进行全面剖析,旨在为读者提供一套实用的微服务实施指南。
分布式读写锁的奥义:上古世代 ZooKeeper 的进击
本文作者将介绍女娲对社区 ZooKeeper 在分布式读写锁实践细节上的思考,希望帮助大家理解分布式读写锁背后的原理。
119 11
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
213 5
构建高效微服务架构:策略与实践####
在数字化转型的浪潮中,微服务架构凭借其高度解耦、灵活扩展和易于维护的特点,成为现代企业应用开发的首选。本文深入探讨了构建高效微服务架构的关键策略与实战经验,从服务拆分的艺术到通信机制的选择,再到容器化部署与持续集成/持续部署(CI/CD)的实践,旨在为开发者提供一套全面的微服务设计与实现指南。通过具体案例分析,揭示如何避免常见陷阱,优化系统性能,确保系统的高可用性与可扩展性,助力企业在复杂多变的市场环境中保持竞争力。 ####
67 2
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等