zookeeper 密码_Dubbo、ZooKeeper介绍

41961139b589a0598be1eb31eeac74d5.gif

72fead443ff2a408214ddba0b9e91582.png

dubbo是一个分布式架构的服务框架,一般结合maven的模块式开发使用。

传统的单架构项目,不方便维护和升级;

通过maven的模块式开发,就可以把一个单架构的工程,拆封成一个一个的小模块,包括(jar和war);jar包可以被war包直接应用。war包可以分布式部署,但是这样不同的war之间的交互就成为了问题。

我们之前的做法是,两个war之间进行交互时,一般采用webservice或httpclient。但是在这种分布式架构中,多个war之间的交互会特别频繁,如果用webservice或httpclient架构师很多时候自己都搞不清楚他们之间的依赖关系了。而dubbo解决了这个问题,有了dubbo架构以后,多个war之间不在直接进行交互,而是统一和dubbo的注册中心zookeeper进行交互。无论是发布服务还是调用服务,都通过dubbo实现,并且提供了web页面,来监控和管理各个接口直接的调用。

使用时首先搭建dubbo的注册中心zookeeper,然后下载dubbo的服务治理工程dubbo_admin.war,解压修改他的配置文件dubbo.properties,设置用户名、密码和注册中心zookeeper的ip、端口。部署到Tomcat的webapp中,启动Tomcat,浏览器用ip+端口访问,就可以看到dubbo_admin的web页面了。接着在我们要发布或者调用服务的项目中,导入dubbo提供的相关jar包,加载配置文件,把要发布的服务注册到zookeeper里边。或者从zookeeper里边调用服务就可以了。dubbo_admin的web页面中,可以监控和管理所有的服务提供者和调用者。

在dubbo架构中,service接口和实体对象是各个工程共享的,service实现类是发布服务的工程独有的。只需要发布服务的工程把他的接口注册到zookeeper中,其他工程就可以从zookeeper中进行调用了。

用dubbo的好处是:把项目拆分成各个独立的小工程,通过接口调用方式,互相交互数据,可以单独进行部署和升级,这样就减少了他们直接的耦合性和代码的复用性。还可以针对不同模块采用不同的部署策略,比如订单模块并发比较高,所以可以把订单模块这个war包,单独部署多套,都注册到同一个zookeeper中。当客户端调用时,zookeeper会帮忙进行负载处理。

99e310b4c7ff0933820a4a85c3bf3ee5.png

517f1330bb8a2bfe7654aa83a602780d.png

Zookeeper主要功能是为分布式系统提供一致性协调(Coordination)服务,主要有两大功能:统一配置管理集群负载均衡

统一配置管理:分布式系统都有好多机器,这些机器上边的配置是一致的,正常情况下需要修改好一个以后,然后scp到其他服务器,每次修改,就要把所有的配置都修改一遍,Zookeeper提供了这样的一种服务:一种集中管理配置的方法,我们在这个集中的地方修改了配置,所有对这个配置感兴趣的都可以获得变更。这样就省去手动拷贝配置了,还保证了可靠和一致性。 

集群负载均衡:在分布式的集群中,经常会由于各种原因,比如硬件故障,软件故障,网络问题,有些节点会进进出出。有新的节点加入进来,也有老的节点退出集群。这个时候,集群中有些机器(比如Master节点)需要感知到这种变化,然后根据这种变化做出对应的决策。Zookeeper会对通过选举机制,选举一个主节点作为管理者。选举一般都是奇数台,否则会选举失败。并且集群中,有半数以上宕机,则会认为整个集群挂掉。

我们项目中用到Zookeeper的地方主要有:solr集群、redis集群和dubbo注册中心。

fc52ef950f12b604379e934bb59bef10.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

异常--java

java默认的异常处理机制 优点:发生异常后、会给出异常类型、异常提示信息、异常出现的位置 缺点:出现异常后,后续语句不执行了;提示信息太专业,可读性差 解决:try-catch-finally 处理异常;th…

192.168.8.1手机登陆_高端机型都在鼓吹的ufs3.1是什么?对于手机使感受明显吗?...

最近很多朋友留言问,ufs3.1是什么,很重要吗?下面就由小编来给大家介绍一下手机上的ufs3.1是什么!ufs是高端安卓手机,常用的储存协议,就好像我们电脑里的固态硬盘一样,速度越快,打开软…

代码合并工具_11个代码质量审核和管理工具,程序员必备!

「 读者福利!2 TB 各类技术资源免费赠送 」如今,代码质量分析和审核已成为每个企业的基本流程。随着开源代码库使用的增加,安全性和代码质量对于构建高质量软件至关重要。不良的代码不仅会影响代码的可维护性,而且还会在某些情况下…

异常体系----java

一、异常体系 1、error error类层次描述了java运行时系统内部错误和资源耗尽错误,一般指与jvm或动态加载等相关的问题, 如:虚拟机错误,动态链接失败,系统崩溃等。 2、exception 所有异常类的父类,其子…

xy坐标正负方向_【笛卡尔坐标系】

【壹】笛卡尔坐标系(Cartesian coordinates)就是直角坐标系和斜坐标系的统称。相交于原点的两条数轴,构成了平面放射坐标系。如两条数轴上的度量单位相等,则称此放射坐标系为笛卡尔坐标系。两条数轴互相垂直的笛卡尔坐标系,称为笛卡尔直角坐标…

throw和throws的使用

throw和throws的使用 public class Person {private String name;private int age;public Person(){}Person(String name,int age){this.name name;this.age age;}public int getAge() {return age;}public String getName() {return name;}public void setName(String name…

为什么需要包装类?

1、某些方法的参数必须是对象,为了让基本数据类型的数据能作为参数,提供包装类。 2、包装类还可以提供更多的功能 3、其他特别重要的功能:比如可以实现字符串和基本数据类型之间的转换 认识一下包装类吧! package demo05;impor…

一句话概括自动装箱/拆箱

自动装箱过程是通过调用包装类的valueOf()方法实现的,二自动拆箱过程是通过调用包装类的xxxValue()方法实现的(xxx代表对应的基本数据类型,如intValue,doubleValue等)。 …

2021-05-24

String类的使用 package demo07;import java.util.Locale; import java.util.function.BiConsumer;public class TestString {public static void main(String[] args) {//1.创建一个String对象String str "abcDEfghijkL";//2.操作该String对象//2.1最简单的方法Sy…

StringBuffer和StringBuild

StringBuffer和StringBuild两个类的区别主要是: StringBuffer JDK1.0提供的类,线程安全,做线程同步检查,效率较低。 StringBuild JDK1.5提供的类,线程不安全,不做线程同步检查,因此效率较高。…

Date类练习

package demo09;import java.util.Date;public class TestDate {public static void main(String[] args) {//获取当前时间Date now new Date();//输出当前时间System.out.println(now.toString());System.out.println(now.toLocaleString());System.out.println(now.getYear(…

全连接层的作用_python构建计算图2——全连接层

(好久不更~)前文中,参照tensorflow的方式实现了简单的自动求导。接下来要在自动求导的基底(模板)上搭建简单的bp神经网络。计算图前文曾多次提到计算图,关于什么是计算图,有很多种说法。既然它被…

DateFormat类

DateFormat是一个抽象类,一般使用它的子类SimpleDateFormat类来实现。主要作用就是把时间队形转化成指定格式的字符串 反之,把指定格式的字符串转化成时间对象。 package demo10;import java.text.DateFormat; import java.text.ParseException; impor…

免费CDN:jsDeliver+Github使用方法

免费CDN:jsDeliverGithub使用方法 CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户…

教你如何使用github+jsDelivr搭建免费图床

前言 之前写了一篇文章,教你如何使用TyporaPicGo实现图片自动上传到图床 。 这里我用的是七牛图床,七牛图床有一定的免费使用量(没记错的话应该是10个G),如果你的存储量超过这个大小就需要付费使用了。除此之外&…

hexo-Fluid主题使用手册

hexo-Fluid主题使用手册 [官网] https://fluid-dev.github.io/hexo-fluid-docs/ 前言 Fluid 是一款很十分优雅的主题,那么写一篇优雅的文章搭配它呢?以下会从几个方面来简述,主要还是做几个推荐。 文章内容 熟悉 Markdown 语法 对于使…

Hexo-fluid主题设置统计博客阅读量

Hexo-fluid主题设置统计博客阅读量 开始小插曲: 我使用的是sublime文本编辑器: [官网] https://www.sublimetext.com/ 正戏开始 查找关键字:web_analytics (快捷键ctrlF) 这里我使用一个第三方服务Leancloud来统计文章的阅读量。 首先…

使用Hexo写博客

尽管 Hexo 支持 MarkDown,但是我们却不能像写单独的 MarkDown 文档时那样肆无忌惮。由于我们所写的文档是需要被解析为静态网页文件的,所以我们必须严格遵从 Hexo 的规范,这样才能解析出条理清晰的静态网页文件。新建文档 假设我们的文章名为…

mysql过滤效率和java过滤效率_如何合理选择初中高效过滤器的效率?

利菲尔特环保科技点击蓝字 关注我们 各种型号的空气过滤器有不同的标准和使用效率,今天利菲尔特为您介绍各种类型的空气过滤器在不同地方的应用。一般情况下,最末一级过滤器决定空气净化的程度,上游的各级过滤器只起保护作用&…

宝塔面板搭建autoPicCdn:一款基于jsdelivr-Github的免费CDN图床

autoPicCdn是白嫖Github的存储空间,通过jsdelivr全球加速(含有国内节点)。实现图床加速的目的。加速效果非常不错,用站长工具检测,也是一片绿油油,所以用来存储一些静态文件是最合适不过了。 相关文章:GithubjsDelivrP…