dubbo——管理员指南

2023-11-05

原文地址:http://blog.csdn.net/wilsonke/article/details/39935801


2014-10-09 18:36 3613人阅读 评论(0) 收藏 举报

目录(?)[+]



管理员指南

推荐使用Zookeeper注册中心
  • 你可以只运行Demo ProviderDemo Consumer,它们缺省配置为通过Multicast注册中心广播互相发现,建议在不同机器上运行,如果在同一机器上,需设置unicast=false:即:multicast://224.5.6.7:1234?unicast=false,否则发给消费者的单播消息可能被提供者抢占,两个消费者在同一台机器也一样,只有multicast注册中心有此问题。
  • 你也可以运行多个Demo ProviderDemo Consumer,来验证软负载均衡,Demo Consumer可以直接启动多个实例,而多个Demo Provider因有端口冲突,可在不同机器上运行,或者修改Demo Provider安装目录下conf/dubbo.properties配置中的dubbo.protocol.port的值。
  • 你也可以增加运行Simple Monitor监控中心,它缺省配置为通过Multicast注册中心广播发现Provider和Consumer,并展示出它们的依赖关系,以及它们之间调用的次数和时间。
  • 你也可以将Multicast注册中心换成Zookeeper注册中心,安装Zookeeper Registry后,修改Demo Proivder,Demo Consumer,Simple Monitor三者安装目录下的conf/dubbo.properties,将dubbo.registry.address的值改为zookeeper://127.0.0.1:2181,同理,如果换成Redis Registry,值改为redis://127.0.0.1:6379,如果换成Simple Registry,值改为dubbo://127.0.0.1:9090
    注意:multicast地址不能配成127.0.0.1,也不能配成机器的IP地址,必须是D段广播地址,也就是:224.0.0.0到239.255.255.255之间的任意地址

安装手册

(+) (#)

示例提供者安装

(+) (#)

安装:

tar zxvf dubbo-demo-provider-2.4.1-assembly.tar.gz
cd dubbo-demo-provider-2.4.1

配置:

vi conf/dubbo.properties

启动:

./bin/start.sh

停止:

./bin/stop.sh

重启:

./bin/restart.sh

调试:

./bin/start.sh debug

系统状态:

./bin/dump.sh

总控入口:

./bin/server.sh start
./bin/server.sh stop
./bin/server.sh restart
./bin/server.sh debug
./bin/server.sh dump

标准输出:

tail -f logs/stdout.log

命令行: (See: Telnet Command Reference)

telnet 127.0.0.1 20880
help

Or:

echo status | nc -i 1 127.0.0.1 20880

示例消费者安装

(+) (#)

安装:

tar zxvf dubbo-demo-consumer-2.4.1-assembly.tar.gz
cd dubbo-demo-consumer-2.4.1

配置:

vi conf/dubbo.properties

启动:

./bin/start.sh
tail -f logs/stdout.log

停止:

./bin/stop.sh

重启:

./bin/restart.sh

调试:

./bin/start.sh debug

系统状态:

./bin/dump.sh

总控入口:

./bin/server.sh start
./bin/server.sh stop
./bin/server.sh restart
./bin/server.sh debug
./bin/server.sh dump

标准输出:

tail -f logs/stdout.log

Zookeeper注册中心安装

(+) (#)

建议使用dubbo-2.3.3以上版本的zookeeper注册中心客户端
Zookeeper是Apache Hadoop的子项目,强度相对较好,建议生产环境使用该注册中心。
Dubbo未对Zookeeper服务器端做任何侵入修改,只需安装原生的Zookeeper服务器即可,所有注册中心逻辑适配都在调用Zookeeper客户端时完成。
如果需要,可以考虑使用taobao的zookeeper监控:http://rdc.taobao.com/team/jm/archives/1450

安装:

tar zxvf zookeeper-3.3.3.tar.gz
cd zookeeper-3.3.3
cp conf/zoo_sample.cfg conf/zoo.cfg

配置:

vi conf/zoo.cfg

如果不需要集群,zoo.cfg的内容如下:(其中data目录需改成你真实输出目录)

zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/dubbo/zookeeper-3.3.3/data
clientPort=2181

如果需要集群,zoo.cfg的内容如下:(其中data目录和server地址需改成你真实部署机器的信息)

zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/dubbo/zookeeper-3.3.3/data
clientPort=2181
server.1=10.20.153.10:2555:3555
server.2=10.20.153.11:2555:3555

并在data目录下放置myid文件:(上面zoo.cfg中的dataDir)

mkdir data
vi myid

myid指明自己的id,对应上面zoo.cfg中server.后的数字,第一台的内容为1,第二台的内容为2,内容如下:

myid
1

启动:

./bin/zkServer.sh start

停止:

./bin/zkServer.sh stop

命令行: (See: http://zookeeper.apache.org/doc/r3.3.3/zookeeperAdmin.html)

telnet 127.0.0.1 2181
dump

Or:

echo dump | nc 127.0.0.1 2181

用法:

dubbo.registry.address=zookeeper://10.20.153.10:2181?backup=10.20.153.11:2181

Or:

< dubbo:registry protocol = "zookeeper" address = "10.20.153.10:2181,10.20.153.11:2181" />

Redis注册中心安装

(+) (#)

Redis说明
Redis是一个高效的KV存储服务器,参见:http://redis.io
Redis使用
使用方式参见: Redis使用手册,只需搭一个原生的Redis服务器,并将Quick Start中Provider和Consumer里的conf/dubbo.properties中的dubbo.registry.addrss的值改为redis://127.0.0.1:6379即可使用
Redis集群
Redis注册中心集群采用在客户端同时写入多个服务器,读取单个服务器的策略实现。
2.1.0以上版本支持

参见:http://redis.io/topics/quickstart

安装:

tar xzf redis-2.4.8.tar.gz
cd redis-2.4.8
make

配置:

vi redis.conf

启动:

nohup ./src/redis-server redis.conf &

停止:

killall redis-server

命令行: (参见: http://redis.io/commands)

./src/redis-cli
hgetall /dubbo/com.foo.BarService/providers

或者:

telnet 127.0.0.1 6379
hgetall /dubbo/com.foo.BarService/providers

简易注册中心安装

(+) (#)

Simple Registry没有经过严格测试,可能不健状,并且不支持集群,不建议用于生产环境。

安装:

tar zxvf dubbo-registry-simple-2.4.1-assembly.tar.gz
cd dubbo-registry-simple-2.4.1

配置:

vi conf/dubbo.properties

启动:

./bin/start.sh

停止:

./bin/stop.sh

重启:

./bin/restart.sh

调试:

./bin/start.sh debug

系统状态:

./bin/dump.sh

总控入口:

./bin/server.sh start
./bin/server.sh stop
./bin/server.sh restart
./bin/server.sh debug
./bin/server.sh dump

标准输出:

tail -f logs/stdout.log

命令行: (See: Telnet Command Reference)

telnet 127.0.0.1 9090
help

Or:

echo status | nc -i 1 127.0.0.1 9090

简易监控中心安装

(+) (#)

Simple Monitor挂掉不会影响到Consumer和Provider之间的调用,所以用于生产环境不会有风险。
Simple Monitor采用磁盘存储统计信息,请注意安装机器的磁盘限制,如果要集群,建议用mount共享磁盘。
charts目录必须放在jetty.directory下,否则页面上访问不了。

安装:

tar zxvf dubbo-monitor-simple-2.4.1-assembly.tar.gz
cd dubbo-monitor-simple-2.4.1

配置:

vi conf/dubbo.properties

启动:

./bin/start.sh

停止:

./bin/stop.sh

重启:

./bin/restart.sh

调试:

./bin/start.sh debug

系统状态:

./bin/dump.sh

总控入口:

./bin/server.sh start
./bin/server.sh stop
./bin/server.sh restart
./bin/server.sh debug
./bin/server.sh dump

标准输出:

tail -f logs/stdout.log

命令行: (See: Telnet Command Reference)

telnet 127.0.0.1 7070
help

Or:

echo status | nc -i 1 127.0.0.1 7070

访问:

管理控制台安装

(+) (#)

管理控制台为内部裁剪版本,开源部分主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能。

安装:

tar zxvf apache-tomcat-6.0.35.tar.gz
cd apache-tomcat-6.0.35
rm -rf webapps/ROOT

配置: (或将dubbo.properties放在当前用户目录下)

vi webapps/ROOT/WEB-INF/dubbo.properties
dubbo.properties
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest

启动:

./bin/startup.sh

停止:

./bin/shutdown.sh

访问: (用户:root,密码:root 或 用户:guest,密码:guest)

运维手册

(+) (#)

管理控制台运维

(+) (#)

搜索页面

当你需要管理Dubbo的服务时,首先要搜索到这个服务,然后打开它的管理页面:

服务提供者页面

服务消费者页面

服务应用页面

添加路由规则页面

添加动态配置页面

服务注册

服务降级

路由规则

访问控制

动态配置

权重调节

负载均衡

服务负责人


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

dubbo——管理员指南 的相关文章

  • Java中字符串中特殊字符的替换

    Java中如何替换字符串 E g String a adf sdf 如何替换和避免特殊字符 您可以删除除此之外的所有字符可打印的 ASCII 范围 http en wikipedia org wiki ASCII ASCII printab
  • Java - 为什么不允许 Enum 作为注释成员?

    It says 原始 String Class an Enum 另一个注释 上述任何一个的数组 只有这些类型才是合法的 Annotation 成员 为什么泛型 Enum 不能成为 Annotation 的成员 例如 Retention Re
  • 插入最大日期(独立于数据库)

    在我的本地设置中 我使用一个简单的 H2 数据库 托管 解决方案将有另一个 类似但不相同 数据库 我需要将最大可能日期插入到日期时间列中 我尝试使用 Instant MAX 但是 这会导致列中出现 169104626 12 11 20 08
  • 这个函数(for循环)空间复杂度是O(1)还是O(n)?

    public void check 10 for string i list Integer a hashtable get i if a gt 10 hashtable remove i 这是 O 1 还是 O n 我猜测 O n 但不是
  • Java:如何从转义的 URL 获取文件?

    我收到了一个定位本地文件的 URL 事实上我收到的 URL 不在我的控制范围内 URL 按照 RFC2396 中的定义进行有效转义 如何将其转换为 Java File 对象 有趣的是 URL getFile 方法返回一个字符串 而不是文件
  • Android在排序列表时忽略大小写

    我有一个名为路径的列表 我目前正在使用以下代码对字符串进行排序 java util Collections sort path 这工作正常 它对我的 列表进行排序 但是它以不同的方式处理第一个字母的情况 即它用大写字母对列表进行排序 然后用
  • 比较两个文本文件的最快方法是什么,不将移动的行视为不同

    我有两个文件非常大 每个文件有 50000 行 我需要比较这两个文件并识别更改 然而 问题是如果一条线出现在不同的位置 它不应该显示为不同的 例如 考虑这个文件A txt xxxxx yyyyy zzzzz 文件B txt zzzzz xx
  • JAVA - Xuggler - 组合 MP3 音频文件和 MP4 电影时播放视频

    使用 JAVA 和 Xuggler 以下代码组合 MP3 音频文件和 MP4 电影文件并输出组合的 mp4 文件 我希望在合并音频和视频文件时应自动播放输出视频文件 String inputVideoFilePath in mp4 Stri
  • Java 文件上传速度非常慢

    我构建了一个小型服务 它从 Android 设备接收图像并将其保存到 Amazon S3 存储桶中 代码非常简单 但是速度非常慢 事情是这样的 public synchronized static Response postCommentP
  • 如何模拟从抽象类继承的受保护子类方法?

    如何使用 Mockito 或 PowerMock 模拟由子类实现但从抽象超类继承的受保护方法 换句话说 我想在模拟 doSomethingElse 的同时测试 doSomething 方法 抽象超类 public abstract clas
  • Hazelcast 分布式锁与 iMap

    我们目前使用 Hazelcast 3 1 5 我有一个简单的分布式锁定机制 应该可以跨多个 JVM 节点提供线程安全性 代码非常简单 private static HazelcastInstance hInst getHazelcastIn
  • 如何使用 Maven 打包并运行具有依赖项的简单命令行应用程序?

    我对 java 和 Maven 都是全新的 所以这可能非常简单 如果我遵循maven2hello world此处的说明 http maven apache org guides getting started maven in Five m
  • 如何在selenium服务器上提供自定义功能?

    我知道可以通过某种方法获得一些硒功能 其中之一如下 driver getCapabilities getBrowserName 它返回浏览器名称的值 但如果它指的是一个可用的方法 如果我没有误解的话 这似乎与自定义功能有关 就像我的意思是
  • 如何知道抛出了哪个异常

    我正在对我们的代码库进行审查 有很多这样的陈述 try doSomething catch Exception e 但我想要一种方法来知道 doSomething 抛出了哪个异常 在 doSomething 的实现中没有 throw 语句
  • Struts 2 + Sitemesh 3 集成 - FreemarkerDecoratorServlet 中的 NPE

    我将 Struts 2 版本 2 3 14 3 与 Sitemesh 3 版本 3 0 alpha 2 一起使用 并且在某些情况下遇到 NullPointerException 首先 这是我的 web xml 中的 struts2 site
  • 在 Spring 中重构这个的最佳方法?

    private final ExecutorService executorParsers Executors newFixedThreadPool 10 public void parse List
  • 我可以创建自定义 java.* 包吗?

    我可以创建一个与预定义包同名的自己的包吗在Java中 比如java lang 如果是这样 结果会怎样 这难道不能让我访问该包的受保护的成员 如果不是 是什么阻止我这样做 No java lang被禁止 安全管理器不允许 自定义 类java
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用
  • spring中如何使用jackson代替JdkSerializationRedisSerializer

    我在我的一个 Java 应用程序中使用 Redis 并且正在序列化要存储在 Redis 中的对象列表 但是 我注意到使用 RedisTemplate 会使用 JdkSerializationRedisSerializer 相反 我想使用 J
  • javafx android 中的文本字段和组合框问题

    我在简单的 javafx android 应用程序中遇到问题 问题是我使用 gradle javafxmobile plugin 在 netbeans ide 中构建了非常简单的应用程序 其中包含一些文本字段和组合框 我在 android

随机推荐