亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

使用 python 連接Dubbo 服務(wù)

系統(tǒng) 1828 0

目錄

  • 前言
    • Dubbo python client 安裝
    • python 代碼
      • 注意
    • 服務(wù)提供provider的改變
      • 注意
    • 感想

前言

嘗試更熟練的使用macdown,因?yàn)锳I部分是用python寫的,所以想在 python 中調(diào)用dubbo的服務(wù)。

Dubbo python client 安裝

github :https://github.com/apache/dubbo-python
github中安裝方法,就不再介紹,也可以直接在 pycharm 里面搜索 dubbo-client,安裝 作者是Joe Cao的那個(gè)

python 代碼

            
              
                # -*- coding: utf-8 -*-
              
              
                from
              
               dubbo_client 
              
                import
              
               ApplicationConfig
              
                ,
              
               ZookeeperRegistry
              
                ,
              
               DubboClient
              
                ,
              
               DubboClientError

service_interface 
              
                =
              
              
                'com.truthso.monitor.service.CompareService'
              
              
registry 
              
                =
              
               ZookeeperRegistry
              
                (
              
              
                '127.0.0.1:2181'
              
              
                )
              
              
compare_provider 
              
                =
              
               DubboClient
              
                (
              
              service_interface
              
                ,
              
               registry
              
                ,
              
               version
              
                =
              
              
                '1.0.0'
              
              
                ,
              
               group
              
                =
              
              
                'gaopin'
              
              
                )
              
              
                print
              
               compare_provider 
              
                .
              
              compare
              
                (
              
              
                {
              
              
    u
              
                'width'
              
              
                :
              
              
                650
              
              
                ,
              
              
    u
              
                'height'
              
              
                :
              
              
                433
              
              
                ,
              
              
    u
              
                'phash'
              
              
                :
              
               u
              
                '1011100001101000101100001101110101101100101001010101111001001010'
              
              
                ,
              
              
    u
              
                'sum'
              
              
                :
              
              
                5429
              
              
                ,
              
              
    u
              
                'ave'
              
              
                :
              
              
                5.0
              
              
                ,
              
              
    u
              
                'dc'
              
              
                :
              
              
                4331
              
              
                ,
              
              
    u
              
                'rSum'
              
              
                :
              
              
                144219
              
              
                ,
              
              
    u
              
                'gSum'
              
              
                :
              
              
                142677
              
              
                ,
              
              
    u
              
                'bSum'
              
              
                :
              
              
                136723
              
              
                ,
              
              
    u
              
                'hash'
              
              
                :
              
              
                4064693128758910538
              
              
                ,
              
              
                }
              
              
                )
              
              
                :
              
            
          
  1. 很好理解 service_interface 是我們調(diào)用的接口的名稱
  2. ZookeeperRegistry 是 zookeeper 的地址
  3. DubboClient 中 version 是接口的版本,group 是想要調(diào)用的接口所在的group
  4. 直接調(diào)用 compare_provider 的具體某一個(gè)方法

注意

group 無法指定為 * 會(huì)報(bào)錯(cuò)說找不到
provider 提供的服務(wù)的形式 jsonrpc 也就是,protocol Name 的方式是 jsonrpc 不然無法python調(diào)用的時(shí)候會(huì)報(bào)錯(cuò)找不到,但是java可以
但是 如果以前是 protocol 是 dubbo 的方式,現(xiàn)在是 jsonrpc ,可能在java中的處理會(huì)有不同,比如返回的原來是對(duì)象,現(xiàn)在可能是個(gè)json

服務(wù)提供provider的改變

因?yàn)槲业捻?xiàng)目是動(dòng)態(tài)提供的服務(wù),也就是服務(wù)的配置是從 mysql 中讀取的,用的是編碼的方式提供的

            
              ApplicationConfig applicationConfig 
              
                =
              
              
                new
              
              
                ApplicationConfig
              
              
                (
              
              
                )
              
              
                ;
              
              
applicationConfig
              
                .
              
              
                setName
              
              
                (
              
              config
              
                .
              
              
                getApplicationName
              
              
                (
              
              
                )
              
              
                )
              
              
                ;
              
              

 RegistryConfig registryConfig 
              
                =
              
              
                new
              
              
                RegistryConfig
              
              
                (
              
              
                )
              
              
                ;
              
              
 registryConfig
              
                .
              
              
                setAddress
              
              
                (
              
              config
              
                .
              
              
                getRegistryAddress
              
              
                (
              
              
                )
              
              
                )
              
              
                ;
              
              

 ProtocolConfig protocol 
              
                =
              
              
                new
              
              
                ProtocolConfig
              
              
                (
              
              
                )
              
              
                ;
              
              
 protocol
              
                .
              
              
                setName
              
              
                (
              
              config
              
                .
              
              
                getProtocolName
              
              
                (
              
              
                )
              
              
                )
              
              
                ;
              
              
 protocol
              
                .
              
              
                setPort
              
              
                (
              
              config
              
                .
              
              
                getProtocolPort
              
              
                (
              
              
                )
              
              
                )
              
              
                ;
              
              

 CompareServiceImpl impl 
              
                =
              
              
                new
              
              
                CompareServiceImpl
              
              
                (
              
              
                )
              
              
                ;
              
              

 ServiceConfig
              
                
                  <
                
                CompareService
                
                  >
                
              
               service 
              
                =
              
              
                new
              
              
                ServiceConfig
              
              
                <
              
              
                >
              
              
                (
              
              
                )
              
              
                ;
              
              
 service
              
                .
              
              
                setApplication
              
              
                (
              
              applicationConfig
              
                )
              
              
                ;
              
              
 service
              
                .
              
              
                setRegistry
              
              
                (
              
              registryConfig
              
                )
              
              
                ;
              
              
 service
              
                .
              
              
                setProtocol
              
              
                (
              
              protocol
              
                )
              
              
                ;
              
              
 service
              
                .
              
              
                setInterface
              
              
                (
              
              CompareService
              
                .
              
              
                class
              
              
                )
              
              
                ;
              
              
 service
              
                .
              
              
                setRef
              
              
                (
              
              impl
              
                )
              
              
                ;
              
              
 service
              
                .
              
              
                setVersion
              
              
                (
              
              config
              
                .
              
              
                getVersion
              
              
                (
              
              
                )
              
              
                )
              
              
                ;
              
              
 service
              
                .
              
              
                setGroup
              
              
                (
              
              config
              
                .
              
              
                getGroup
              
              
                (
              
              
                )
              
              
                )
              
              
                ;
              
              

 service
              
                .
              
              
                export
              
              
                (
              
              
                )
              
              
                ;
              
            
          

ProtocolConfig 相關(guān)的配置都是在數(shù)據(jù)庫里面所以,只需要把ProtocolName設(shè)置為 jsonrpc 就行

注意

需要添加 maven

            
              
                
                  
                    <
                  
                  dependency
                
                
                  >
                
              
              
                
                  
                    <
                  
                  groupId
                
                
                  >
                
              
              org.apache.dubbo
              
                
                  
                    groupId
                  
                  
                    >
                  
                
                
                  
                    
                      <
                    
                    artifactId
                  
                  
                    >
                  
                
                dubbo-rpc-jsonrpc
                
                  
                    
                      artifactId
                    
                    
                      >
                    
                  
                  
                    
                      
                        <
                      
                      version
                    
                    
                      >
                    
                  
                  2.7.2
                  
                    
                      
                        version
                      
                      
                        >
                      
                    
                    
                      
                        
                          dependency
                        
                        
                          >
                        
                      
                    
                  
                
              
            
          

感想

  1. 雖然能調(diào)通,但是感覺很多功能不全,比入group直接指定為 * 就不行
  2. 如果想用 python client ,provider 必須是 jsonrpc

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产主播在线看 | 亚洲视频在线看 | 黄色天堂在线 | 午夜久久免费视频 | 国产成a人片在线观看视频99 | 啪啪网站免费 | 精品自拍视频 | 亚洲精品国产一区二区三 | 国产精品ⅴ视频免费观看 | 九九视频这里只有精品99 | 日韩高清毛片 | 在线观看成人影院 | 天天躁日日躁狠狠躁综合 | 国产激情久久久久影院小草 | 国内精品久久久久影院蜜芽 | 美妇乱人伦性 | 性生生活三级视频观看 | 亚洲美女视频在线观看 | 国产天堂| 欧美影院一区二区 | 国产精品久久久久久久久 | 色之综合网| 99热婷婷| 久久国产精品国产精品 | 精品久久久久久久久中文字幕 | 99视频精品免视3 | 欧美视频一区二区专区 | 国产三级日产三级日本三级 | 性做久久久久久久久男女 | 九九精品免费 | 色黄网站成年女人色毛片 | 精品72久久久久久久中文字幕 | 久久93精品国产91久久综合 | 女性成人毛片a级 | 99热国产这里只有精品99 | 亚洲国产欧洲精品路线久久 | 欧美成人毛片免费网站 | 国内精品久久久久久西瓜色吧 | 青青久| 伊人久久婷婷丁香六月综合基地 | 国产亚洲精品久久久久久久网站 |