Java簡單操做dubbo(一)

dubbo-service公共Service

package com.itman.service;

public interface UserService {

    // 提供服務 使用userId查找用戶信息FS
    public String getUserId(Integer id);
}

dubbo-producer生產者

引入依賴java

    <dependencies>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.5.6</version>
        </dependency>
        <!-- 添加zk客戶端依賴 -->
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>
        <dependency>
            <groupId>com.itman</groupId>
            <artifactId>dubbo-service</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

實現Servicegit

package com.itman.service.impl;

import com.itman.service.UserService;

public class UserServiceImpl implements UserService {

    public String getUserId(Integer id) {
        System.out.println("被客戶端(消費者)消費....id:" + id);
        if (id == 1) {
            return "itman";
        }
        if (id == 2) {
            return "itman2";
        }
        if (id == 1) {
            return "itman3";
        }
        return "未找到...";

    }

}

發佈服務github

<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans           http://www.springframework.org/schema/beans/spring-beans.xsd           http://code.alibabatech.com/schema/dubbo           http://code.alibabatech.com/schema/dubbo/dubbo.xsd ">

    <!-- 提供方應用信息,用於計算依賴關係 -->
    <dubbo:application name="provider" />
    <!-- 使用zookeeper註冊中心暴露服務地址 -->
    <dubbo:registry address="zookeeper://169.254.197.135:2181" />
    <!-- 用dubbo協議在29014端口暴露服務 -->
    <dubbo:protocol name="dubbo" port="29014" />
    <!-- 聲明須要暴露的服務接口 -->
    <dubbo:service interface="com.itman.service.UserService" ref="userService" />
    <!-- 具體的實現bean -->
    <bean id="userService" class="com.itman.service.impl.UserServiceImpl" />
</beans>

啓動代碼web

package com.itman;

import java.io.IOException;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestMember {
    
    public static void main(String[] args) throws IOException {
        // 發佈服務
        ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("provider.xml");
        app.start();// 加載
        System.out.println("服務發佈成功...");
        System.in.read(); // 讓程序阻塞
    }
}

dubbo-consumer消費者

消費類spring

package com.itman;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.itman.service.UserService;

public class TestConsumer {

    public static void main(String[] args) {
        ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("consumer.xml");
        UserService userService = (UserService) app.getBean("userService");
        String name = userService.getUserId(1);
        System.out.println("name:" + name);

    }
}

消費者配置tomcat

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
    <!-- 消費方應用名,用於計算依賴關係,不是匹配條件,不要與提供方同樣 -->
    <dubbo:application name="consumer" />
    <!-- 使用multicast廣播註冊中心暴露發現服務地址 -->
    <dubbo:registry protocol="zookeeper" address="zookeeper://169.254.197.135:2181" />
    <!-- 生成遠程服務代理,能夠和本地bean同樣使用demoService -->
    <dubbo:reference id="userService" interface="com.itman.service.UserService" />
</beans>

 Dubbo-admin管理平臺搭建

1.將dubbo-admin.zip 解壓到webapps目錄下app

2.修改dubbo.properties zk註冊中心鏈接地址鏈接信息負載均衡

3.啓動tomcat便可webapp

Dubbo集羣、負載均衡、容錯

修改:provider.xml  端口  <dubbo:protocol name="dubbo" port="29015" />ide

啓動兩個服務,配置相關權重,負載均衡策略

相關文章
相關標籤/搜索