19分布式Dubbo和Zookeeper+Springboot

阿里云,腾讯云等

一、分布式理论

什么是分布式系统:

我们应不应该先考虑分布式系统?:不应该!


集群与分布式的区别:https://zhuanlan.zhihu.com/p/95288580

二、Dubbo文档【Dubbo底层原理Netty】

官网:https://dubbo.apache.org/zh/

背景

本文介绍了网站应用的演进

随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。

单一应用架构

当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。

垂直应用架构

当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,提升效率的方法之一是将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。

分布式服务架构

当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的**分布式服务框架(RPC)**是关键。

流动计算架构

当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键。

二、什么是RPC?

RPC两个核心:通讯,序列化
  • 通讯是为了传输,用http协议传输也可以【是后面讲的SpringCloud【实际开发用的多】~中的RESTFul风格】

  • 序列化是为了方便我们的数据传输【数据的传输需要转换】


  • 两个协议本质是没有区别的,就是功能有所区别

推荐阅读文章:https://www.jianshu.com/p/2accc2840a1b

步骤解析:

  • 2.序列化:网络传输需要序列化

  • 4.反序列化:服务端进行

三、Dubbo

简述:RPC做的事不用自己来做了,Dubbo来帮你解决

配置文件六行即可

Dubbo和SpringCloud【现在用的更多】区别
  • SpringCloud是http协议传输,
  • Dubbo注重PRC~,而SpringCloud注重的是生态
  • 论远程过程调用,Dubbo更加专业,但是也不靠谱【因为收到网络影响
Dubbo基础概念


Dubbo环境搭建【其实就是一个jar包】

点Dubbo官方文档,推荐我们使用Zookeeper注册中心:https://dubbo.apache.org/zh/docs/v2.7/user/references/registry/

zookeeper(动物管理者):hadoop,hive~

window安装Zookeeper【注册中心:简单说就是存值取值】

1.下载Zookeeper:http://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

2.运行/bin/zkServer.cmd【初次运行会报错,conf下没有zoo.cfg配置文件

  • 复制一份zoo-sample.cfg改名

  • cmd扩展名是windows下,sh扩展名是linux下

3.如何让tomcat或者Zookeeper永久启用,把对应端口永久占用着——>变成一个后台服务即可

  • 如mysql——在bin路径下进入cmd——输入mysql -install即可注入到服务中,就可以在服务中开启与关闭操作了

4.使用zkCli.cmd进行测试

window安装dubbo-admain【可视化的监控程序】
  • 是一个监控管理后台查看我们注册了那些服务,那些服务被消费了

学习随笔多半会重复
学习随笔多半会重复
学习随笔多半会重复
学习随笔多半会重复
学习随笔多半会重复
学习随笔多半会重复
学习随笔多半会重复
学习随笔多半会重复
学习随笔多半会重复
学习随笔多半会重复
学习随笔多半会重复
学习随笔多半会重复
学习随笔多半会重复
学习随笔多半会重复
学习随笔多半会重复
学习随笔多半会重复

09_20_第七阶段:微服务开发||01-SpringBoot||19分布式Dubbo和Zookeeper【观看狂神随笔】相关推荐

  1. 自动匹配未认领订单编号_海量订单系统微服务开发:使用MongoDB支持海量数据...

    海量订单系统微服务开发 订单系统是电商平台中一个非常重要的组成部分,而且它还是一个具有巨大流量和高并发访问的系统,与订单相关的服务涉及库存.支付.物流等.在设计订单系统时,我们选择使用支持海量数据的N ...

  2. java 搭建企业应用框架_溯源微服务开发体系:一位Java开发者的转型思考

    作者丨赵钰莹 简单来说,微服务是将大型单体应用程序和服务拆分为数个甚至数十个微服务,可扩展单个组件而不是整个应用程序堆栈,从而满足服务等级协议.然而,这个过程涉及很多问题需要解决,比如拆分原则.容量规 ...

  3. 微软开源 Tye 项目,可简化微服务开发

    微软近期开源了一款开发人员工具 Tye,能够用于简化微服务以及分布式应用程序的开发.测试以及部署过程.项目地址:https://github.com/dotnet/tye. 该项目负责人 Amiee  ...

  4. 微服务开发及部署_基于 Kubernetes 的微服务部署即代码

    在基于 Kubernetes 的基础设施即代码一文中,我概要地介绍了基于 Kubernetes 的 .NET Core 微服务和 CI/CD 动手实践工作坊使用的基础设施是如何使用代码描述的,以及它的 ...

  5. 华为云鲲鹏服务器部署文档-修正版-CentOS+java微服务开发

    华为云鲲鹏服务器部署文档 河南中电高科计算机技术有限公司 http://www.ceht.com.cn 2020.5.12 适用于java微服务开发运行基础软件环境部署,实测通过. CentOS 7. ...

  6. 【从零开始学微服务】01.微服务的过去与现在

    大家好,欢迎来到万猫学社,跟我一起学,你也能成为微服务专家. 微服务的历史 再介绍什么是微服务之前,我们先了解一下微服务架构的历史,也就是微服务是如何提出来的. 2011年5月 2011年5月,在威尼 ...

  7. Spring Cloud 微服务开发实战

    为什么要学习微服务? 1. 求职时增强技术自信. 微服务是非常热门的话题,企业招聘中也越来越多的要求有微服务开发.架构能力,不掌握一些微服务技能找工作时也缺乏亮点,可以说微服务架构已经成为中高级后端开 ...

  8. Java微服务开发流程及详细案例

    微服务开发流程及详细案例 文章目录 微服务开发流程及详细案例 一. 微服务示例简介 二. IDEA创建父Maven工程及子项目 2.1 使用IDEA创建Maven项目 2.2创建子项目模块 2.3父项 ...

  9. 微服务及微应用拆分原则_七个微服务原则

    微服务及微应用拆分原则 This post defines microservices via seven tenets, reverse-engineered from books, article ...

最新文章

  1. Windows10安装Mysql5.7.19.0 msi 版本报错
  2. VBS遍历Excel工作表的方法
  3. Spark算子汇总和理解(详细)
  4. bzoj1003 物流运输
  5. VS2005 实用快捷键,迅速提高代码编写效率!
  6. 浅谈Spring MVC知识
  7. 目标又多又密?多轮迭代的方式进行密集目标检测
  8. wxWidgets:wxWindowCreateEvent类用法
  9. php代码以什么开始以什么结束,【后端开发】php语句以什么符号结束
  10. IPM: Generate IP Product via template
  11. IT兄弟连 JavaWeb教程 AJAX定义以及解决的问题
  12. cf1512 G - Short Task
  13. 二分图匹配 + 最小点覆盖 - Vertex Cover
  14. linux 下rpm软件的安装和卸载
  15. android实用测试方法之Monkey与MonkeyRunner
  16. linux虚拟用户登录失败,用shell用户或虚拟用户登录pureftpd
  17. VSTO开发Powerpoint插件
  18. 金蝶套打文件放服务器还是本地,金蝶软件套打使用说明
  19. 用了三星Dex,我已经快一个月回家没开过电脑了
  20. jQuery类似QQ空间时间轴效果_事件展示时光轴js特效代码

热门文章

  1. 免费申报!5G网络Awards参评企业征集,欢迎参与!
  2. R包之tm:文本挖掘包
  3. c语言程序设计韦良芬答案,论高职院校《C语言程序设计》的教学改革
  4. Python itertools accumulate函数详解
  5. Java WORD转换PDF 并添加水印 (附赠jar提取链接)
  6. 全面解析存储加密盘(SED)技术
  7. facenet-tensorflow人脸识别
  8. 7.cuBLAS开发指南中文版--cuBLAS中的cublasSetVector()和cublasGetVector()
  9. 【Visual C++】游戏开发笔记之六——游戏画面绘图(三)透明特效的制作方法
  10. win、linux、unix查看系统主机名