dubbo 搭建hellowold 同时实现负载均衡

我用的环境是三台虚拟机centos7
1.现在三台虚拟机上搭建zookeeper集群
2.在其中一台上 放置dubbo-admin
(1)下载

	git clone https://github.com/apache/incubator-Dubbo-ops

(2)打开文件,主要是修改自己的zookeeper注册中心

D:\dubbos\incubator-Dubbo-ops\dubbo-admin-server\src\main\resources\application.properties


(3)mvn package 打包 在target目录下有 dubbo-admin-0.0.1-SNAPSHOT.jar
扔到虚拟机上 执行命令 java -jar dubbo-admin-0.0.1-SNAPSHOT.jar &
外网访问即可

2.用springboot搭建 helloworld
提供者 dubbo-provider.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- 应用配置,不要与提供方相同 -->
<dubbo:application name="spring-boot-provider"/>

<!-- 注册中心配置,使用zookeeper注册中心暴露服务地址 -->
<dubbo:registry address="zookeeper://192.168.153.101:2181?backup=192.168.153.102:2181,192.168.153.103:2181" timeout="60000" />
<dubbo:protocol name="dubbo" port="20880"  />
<!--关闭服务消费方所有服务的启动检查。dubbo缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止Spring初始化完成。-->
<dubbo:consumer check="false" />

<!-- 使用注解方式暴露接口,会自动扫描package下所有包中dubbo相关的注解,这样就不用在xml中再针对每个服务接口配置dubbo:service interface-->
<dubbo:annotation package="com.chuangxin.qizhi.dubbo.provider" />
<!--<dubbo:service interface="com.practice.springboot.dubbo.provider.SayHelloImpl" ref="SayHelloImpl"/>-->

SayHello.java

package com.chuangxin.qizhi.dubbo.provider;
public interface SayHello {
    String sayHello(String name);
}

SayHelloImpl.java

package com.chuangxin.qizhi.dubbo.provider;
public interface SayHello {
    String sayHello(String name);
}

MAIN方法上面加注解 加载 xml

@ImportResource(value={"classpath:dubbo-provider.xml"})

消费者 配置 dubbo-consumer.xml

	<?xml version="1.0" encoding="UTF-8"?>
	<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
	       xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
	       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
	       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
	    <context:property-placeholder/>
	
	    <!-- 应用配置,不要与提供方相同 -->
	    <dubbo:application name="spring-boot-consumer"/>
	
	    <!-- 注册中心配置,使用zookeeper注册中心暴露服务地址 -->
	    <dubbo:registry address="zookeeper://192.168.153.101:2181?backup=192.168.153.102:2181,192.168.153.103:2181" timeout="60000" />
	
	
	    <!-- 使用注解方式创建远程服务代理-->
	    <dubbo:annotation  package="com.chuangxin.qizhi.dubbo.consumer"   />
	
	    <!--声明服务引用,与服务声明接口类型一致-->
	    <!--<dubbo:reference interface="com.practice.springboot.dubbo.provider.SayHelloImpl" id="SayHelloImpl"/>-->
	</beans>

SayService.xml

	package com.chaungxin.qizhi.dubbo.consumer;
	import com.chuangxin.qizhi.dubbo.provider.SayHello;
	import org.apache.dubbo.config.annotation.Reference;
	import org.springframework.stereotype.Component;
	@Component
	public class SayService {
	    @Reference(loadbalance="roundrobin")
	    SayHello sayHello;
	    public String say(String name) {
	        return sayHello.sayHello(name);
	    }
	}

MAIN方法 就是springboot启动类上面加注释

@ImportResource("classpath:dubbo-consumer.xml")

先启动 tigongzhe 在启动消费者 然后看 dubbo-admin就会有数据

然后 用maven生成jar包 放到 两个服务器上去 启动

我遇到的问题是 他的protocol 自动加载的 host 是外放ip 不是内网的 因此 消费者 消费不了 ,
最后的解决办法是 修改 虚拟的 hostname

	vim /etc/hostname  
	输入自己的名字:      abc.com
	保存就可以了

	vim /etc/hosts
	添加你的内网ip 对应着名字 在最下面添加就可以  
	例如  192.168.153.102  abc.com  
	保存  然后重启虚拟机  shutdown -r now 

这样就正常了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值