Java之HSF搭建demo


1、去阿里雲官網下載Demo edas-app-demo.zip

2、下載Ali-Tomcat和Pandora,注意紅色下面字體

   a)下載 Ali-Tomcat,保存后解壓至相應的目錄(如:d:\work\tomcat\)。
     b)下載 Pandora 容器,保存后將內容解壓至上述保存的 Ali-Tomcat 的 deploy 目錄(d:\work\tomcat\deploy)下

3、下載輕量版EDAS(下載地址:https://help.aliyun.com/document_detail/44163.html),和配置host文件 

   打開host文件,C:\Windows\System32\drivers\etc,編輯
     最后一行增加,192.168.1.24是自己電腦ip的,域名是唯一,固定的
     192.168.1.24 jmenv.tbsite.net

4、cd到edas-lite-configcenter的bin目錄下,運行startup.bat

5、在瀏覽器查看時候啟動本地edas ,localhost:8080 .

  如果出現diamond,說明host文件配置成功,沒看到diamond,查看host文件是否配置錯誤

6、打開idea,加載edas-app-demo為maven項目。

1、使用aliTomcat 配置為: 
                -Dfile.encoding=UTF-8 
                -Dpandora.location=D:\software\AliTomcat\taobao-tomcat-7.0.59\deploy\taobao-hsf.sar  
                -Dhsf.server.ip=本機ip 
                -Dhsf.server.port=12200
2、啟動demo的兩個應用:
                a)itemcenter #先啟動服務提供者
                b)detail    #再啟動消費者,否則報錯

 

7、啟動注意項

  a)啟動的時候一定要查看pandora是否啟動,如圖表示啟動了

    

  b)出現HSFServiceAddressNotFoundException錯誤,表明消費者沒有連接上服務者,或者說服務者沒有啟動。查看服務者時候上線,可以再localhost:8080進行查看

com.taobao.hsf.exception.HSFServiceAddressNotFoundException: HSFServiceAddressNotFoundException-
error message : [HSF-Consumer] can't find target service addresses, target serviceName:com.alibaba.edas.carshop.itemcenter.ItemService:1.0.0 Group:HSF ERR-CODE: [HSF-0001], Type: [BIZ], More: [http://edas.console.aliyun.com/code?faq=HSF-0001]
    at com.taobao.hsf.registry.RegistryInvocationHandler.invoke(RegistryInvocationHandler.java:173)
    at com.taobao.hsf.invocation.DelegateInvocationHandler.invoke(DelegateInvocationHandler.java:12)
    at com.taobao.hsf.remoting.service.LocalInvocationHandler.invoke(LocalInvocationHandler.java:99)
    at com.taobao.hsf.invocation.filter.RPCFilterBuilder$TailNode.invoke(RPCFilterBuilder.java:280)
    at com.taobao.hsf2dubbo.context.DubboRPCContextClientFilter.invoke(DubboRPCContextClientFilter.java:43)
    at com.taobao.hsf.invocation.filter.RPCFilterNode.invoke(RPCFilterNode.java:71)
    at com.taobao.hsf.context.RPCContextClientFilter.invoke(RPCContextClientFilter.java:31)
    at com.taobao.hsf.invocation.filter.RPCFilterNode.invoke(RPCFilterNode.java:71)
    at com.taobao.hsf.rpc.generic.GenericInvocationClientFilter.invoke(GenericInvocationClientFilter.java:59)
    at com.taobao.hsf.invocation.filter.RPCFilterNode.invoke(RPCFilterNode.java:71)
    at com.taobao.hsf.remoting.service.InvocationValidationFilter.invoke(InvocationValidationFilter.java:48)
    at com.taobao.hsf.invocation.filter.RPCFilterNode.invoke(RPCFilterNode.java:71)
    at com.taobao.hsf.plugins.spas.SpasClientFilter.invoke(SpasClientFilter.java:82)
    at com.taobao.hsf.invocation.filter.RPCFilterNode.invoke(RPCFilterNode.java:71)
    at com.taobao.hsf.plugins.eagleeye.EagleEyeClientFilter.invoke(EagleEyeClientFilter.java:76)
    at com.taobao.hsf.invocation.filter.RPCFilterNode.invoke(RPCFilterNode.java:71)
    at com.taobao.hsf.invocation.stats.InvocationStatsClientFilter.invoke(InvocationStatsClientFilter.java:45)
    at com.taobao.hsf.invocation.filter.RPCFilterNode.invoke(RPCFilterNode.java:71)
    at com.taobao.hsf.monitor.log.filter.MonitorLogClientFilter.invoke(MonitorLogClientFilter.java:51)
    at com.taobao.hsf.invocation.filter.RPCFilterNode.invoke(RPCFilterNode.java:71)
    at com.taobao.hsf.common.filter.CommonClientFilter.invoke(CommonClientFilter.java:26)
    at com.taobao.hsf.invocation.filter.RPCFilterNode.invoke(RPCFilterNode.java:71)
    at com.taobao.hsf.invocation.filter.RPCFilterBuilder$HeadNode.invoke(RPCFilterBuilder.java:246)
    at com.taobao.hsf.invocation.filter.FilterInvocationHandler.invoke(FilterInvocationHandler.java:28)
    at com.taobao.hsf.cluster.TestAddressInvocationHandler.invoke(TestAddressInvocationHandler.java:50)
    at com.taobao.hsf.remoting.service.AsyncInvocationHandler.invoke(AsyncInvocationHandler.java:44)
    at com.taobao.hsf.invocation.FutureInvocationHandler.invoke(FutureInvocationHandler.java:44)
    at com.taobao.hsf2dubbo.DubboAsyncInvocationHandler.invoke(DubboAsyncInvocationHandler.java:93)
    at com.taobao.hsf.invocation.AsyncToSyncInvocationHandler.invokeType(AsyncToSyncInvocationHandler.java:220)
    at com.taobao.hsf.invocation.AsyncToSyncInvocationHandler.invoke(AsyncToSyncInvocationHandler.java:46)
    at com.taobao.hsf.profiler.ProfilerSyncInvocationHandler.invoke(ProfilerSyncInvocationHandler.java:35)
    at com.taobao.hsf.rpc.client.ErrorLogSyncInvocationHandler.invoke(ErrorLogSyncInvocationHandler.java:47)
    at com.taobao.hsf2dubbo.DubboFilterSyncInvocationHandlerInterceptor.invoke(DubboFilterSyncInvocationHandlerInterceptor.java:76)
    at com.taobao.hsf.rpc.client.ClientConcurrencyLimiter.invoke(ClientConcurrencyLimiter.java:41)
    at com.taobao.hsf.InvocationUtil.invoke(InvocationUtil.java:43)
    at com.taobao.hsf.proxy.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:31)
    at com.taobao.hsf.proxy.JdkProxyFactory$JdkProxyInvocationHandler.invoke(JdkProxyFactory.java:99)
    at com.sun.proxy.$Proxy22.getItemById(Unknown Source)
    at com.alibaba.edas.carshop.detail.StartListener$1.run(StartListener.java:27)
    at java.lang.Thread.run(Thread.java:748)

 8、服務提供者和消費者配置

  a)假設存在一個服務提供者ItemService

    其配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:hsf="http://www.taobao.com/hsf"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.taobao.com/hsf
       http://www.taobao.com/hsf/hsf.xsd" default-autowire="byName">
    <bean id="itemService" class="com.alibaba.edas.carshop.itemcenter.ItemServiceImpl" />
    <!-- 提供一個服務示例 -->
    <hsf:provider id="itemServiceProvider" interface="com.alibaba.edas.carshop.itemcenter.ItemService"
        ref="itemService" version="1.0.0">
    </hsf:provider>
</beans>
View Code

   

  b)假設存在一個消費者detail,需要使用上述的服務ItemService

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:hsf="http://www.taobao.com/hsf"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.taobao.com/hsf
       http://www.taobao.com/hsf/hsf.xsd" default-autowire="byName"> 
    <!-- 消費一個服務示例 -->
    <hsf:consumer id="item" interface="com.alibaba.edas.carshop.itemcenter.ItemService"
    version="1.0.0">
    </hsf:consumer>
</beans>
View Code

  

 

 記住:在需要使用別人的服務時,一定要先啟動需要調用的服務,否則報錯!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM