dubbo学习(一)

进入官网之后,找到

http://dubbo.apache.org/en-us/docs/user/quick-start.html

有一个链接跳转到这里

http://dubbo.apache.org/en-us/docs/admin/install/provider-demo.html

使用git将项目下载下来

修改如下Service实现类

 1 /*
 2  * Licensed to the Apache Software Foundation (ASF) under one or more
 3  * contributor license agreements.  See the NOTICE file distributed with
 4  * this work for additional information regarding copyright ownership.
 5  * The ASF licenses this file to You under the Apache License, Version 2.0
 6  * (the "License"); you may not use this file except in compliance with
 7  * the License.  You may obtain a copy of the License at
 8  *
 9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 package org.apache.dubbo.demo.provider;
18 
19 import org.apache.dubbo.demo.DemoService;
20 import org.apache.dubbo.demo.TestForm;
21 import org.apache.dubbo.rpc.RpcContext;
22 import org.slf4j.Logger;
23 import org.slf4j.LoggerFactory;
24 
25 import java.text.SimpleDateFormat;
26 import java.util.ArrayList;
27 import java.util.Collections;
28 import java.util.Date;
29 import java.util.List;
30 
31 public class DemoServiceImpl implements DemoService {
32     private static Logger logger= LoggerFactory.getLogger(DemoServiceImpl.class);
33     @Override
34     public String sayHello(String name) {
35         System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] Hello " + name + ", request from consumer: " + RpcContext.getContext().getRemoteAddress());
36         return "Hello " + name + ", response from provider: " + RpcContext.getContext().getLocalAddress();
37     }
38 
39     @Override
40     public List<TestForm> tranForm(TestForm testForm) {
41         if(testForm==null){
42             return Collections.emptyList();
43         }
44         logger.info("当前在{} 执行",RpcContext.getContext().getLocalAddress());
45         List<TestForm> testFormList=new ArrayList<>(1);
46         testFormList.add(testForm);
47         return testFormList;
48     }
49 
50 }
tranForm()是我新增的,TestForm 是一个普通的实体类
public class TestForm implements Serializable{
    private boolean b;
    private String s;
    private Integer i;
    private BigDecimal bigDecimal;
    private  Double d;
//这里省略get set方法 构造方法
}

修改dubbo-demo/dubbo-demo-consumer/的Consumer

 1 /*
 2  * Licensed to the Apache Software Foundation (ASF) under one or more
 3  * contributor license agreements.  See the NOTICE file distributed with
 4  * this work for additional information regarding copyright ownership.
 5  * The ASF licenses this file to You under the Apache License, Version 2.0
 6  * (the "License"); you may not use this file except in compliance with
 7  * the License.  You may obtain a copy of the License at
 8  *
 9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 package org.apache.dubbo.demo.consumer;
18 
19 import com.alibaba.fastjson.JSON;
20 import org.apache.dubbo.demo.DemoService;
21 import org.apache.dubbo.demo.TestForm;
22 import org.slf4j.Logger;
23 import org.slf4j.LoggerFactory;
24 import org.springframework.context.support.ClassPathXmlApplicationContext;
25 
26 import java.math.BigDecimal;
27 import java.util.List;
28 
29 public class Consumer {
30     private static Logger logger= LoggerFactory.getLogger(Consumer.class);
31 
32     /**
33      * To get ipv6 address to work, add
34      * System.setProperty("java.net.preferIPv6Addresses", "true");
35      * before running your application.
36      */
37     public static void main(String[] args) {
38         ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"META-INF/spring/dubbo-demo-consumer.xml"});
39         context.start();
40         DemoService demoService = (DemoService) context.getBean("demoService"); // get remote service proxy
41         int i=10;
42         while (i-->0) {
43             try {
44                 List<TestForm> testFormList = demoService.tranForm(new TestForm(true,"s",i,new BigDecimal(99),null)); // call remote method
45                 logger.info("序号:{}:返回内容:{}",i,JSON.toJSON(testFormList)); // get result
46             } catch (Throwable throwable) {
47                 throwable.printStackTrace();
48             }
49         }
50     }
51 }

修改以下内容

未完待续

猜你喜欢

转载自www.cnblogs.com/LDDXFS/p/9719177.html