天天看點

Dubbo學習記錄1

寫在前面

這裡記錄下springboot-dubbo的學習記錄

  • 準備

    找到官方提供的示例項目,clone到本地開發工具,​​​項目位址​​

zookeeper 我這裡用的 3.4.10 版本

還有zookeeper可視化工具 ​​下載下傳位址​​​,

其實還有個 Dubbo-server-admin,也可以監控Dubbo服務,路由監控和發起RPC調用等.

一、啟動 Zookeeper和可視化工具

  • windows視窗,輕按兩下zkServer.cmd或者指令行啟動
  • zk 可視化,解壓後進入build目錄執行指令

    ​​

    ​java -jar zookeeper-dev-ZooInspector.jar​

二、測試registry-samples --> zookeeper

先啟動provider,再啟動comsumer

2.1 Provider配置、使用

application.properties

# Spring boot application
spring.application.name=dubbo-registry-zookeeper-provider-sampleLS
# Base packages to scan Dubbo Component: @org.apache.dubbo.config.annotation.Service
dubbo.scan.base-packages=org.apache.dubbo.spring.boot.sample.provider.service

# Dubbo Application
## The default value of dubbo.application.name is ${spring.application.name}
## dubbo.application.name=${spring.application.name}

# Dubbo Protocol
dubbo.protocol.name=dubbo
## Random port
dubbo.protocol.port=-1

## Dubbo Registry
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.registry.file = ${user.home}/dubbo-cache/${spring.application.name}/dubbo.cache

## DemoService version
demo.service.version=1.0.0      

使用時用 DubboService,這裡隻是簡單使用,還可以配置并發數,token等等

@DubboService(version = "${demo.service.version}")
public class DefaultDemoService implements DemoService {

    /**
     * The default value of ${dubbo.application.name} is ${spring.application.name}
     */
    @Value("${dubbo.application.name}")
    private String serviceName;

    @Override
    public String sayHello(String name) {
        return String.format("[%s] : Hello, %s", serviceName, name);
    }
}      

2.2 Consumer

application.properties

spring:
  application:
    name: dubbo-registry-zookeeper-consumer-sampleLS

demo:
  service:
    version: 1.0.0

embedded:
  zookeeper:
    port: 2181

dubbo:
  registry:
    address: zookeeper://127.0.0.1:${embedded.zookeeper.port}
    file: ${user.home}/dubbo-cache/${spring.application.name}/dubbo.cache      

使用,這種注入@DubboReference(version = “${demo.service.version}”),還可以配置 緩存,存根,負載均衡,參數等等

@DubboReference(version = "${demo.service.version}")
    private DemoService demoService;

    public ApplicationRunner runner() {
        return args -> logger.info(demoService.sayHello("mercyblitz"));
    }      

2.3 ZK可視化,檢視Dubbo服務節點中繼資料

Dubbo學習記錄1

三、測試 service-introspection-samples