dubbo实战之一:准备和初体验( 三 )
编码(服务提供方)
- 先创建提供服务的工程helloxmldirectprovider , 一共要创建6个文件 , 创建顺序和功能如下表:
文章插图
- 完整的文件位置如下图:
文章插图
- 接下来逐个创建上述内容;
- 创建名为helloxmldirectprovider的子工程 , pom.xml内容如下 , 可见刚才新建的二方库practiceinterface也被依赖了:
dubbopracticecom.bolingcavalry 1.0-SNAPSHOT 4.0.0 com.bolingcavalry helloxmldirectprovider1.0-SNAPSHOT com.bolingcavalry practiceinterface${project.version} org.apache.dubbo dubboorg.projectlombok lombokorg.slf4j slf4j-log4j12
- 编写启动类ProviderApplication.java , 可见就是个普通的后台程序 , 加载spring配置做初始化:
package com.bolingcavalry.helloxmldirectprovider;import org.springframework.context.support.ClassPathXmlApplicationContext;public class ProviderApplication {public static void main(String[] args) throws Exception {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/dubbo-provider.xml");context.start();System.in.read();}}
- 编写提供具体服务的业务实现类DemoServiceImpl.java , 只是个简单的接口实现类而已:
package com.bolingcavalry.helloxmldirectprovider.service.impl;import com.bolingcavalry.dubbopractice.service.DemoService;import lombok.extern.slf4j.Slf4j;import org.apache.dubbo.rpc.RpcContext;@Slf4jpublic class DemoServiceImpl implements DemoService {@Overridepublic String sayHello(String name) {log.info("Hello " + name + ", request from consumer: " + RpcContext.getContext().getRemoteAddress());try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}return "Hello " + name + ", response from provider: " + RpcContext.getContext().getLocalAddress();}}
- 日志配置文件log4j.properties , 内容如下:
###set log levels###log4j.rootLogger=info, stdout###output to the console###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2}: %m%n
- 在同样位置创建dubbo配置文件dubbo.properties , 内容很简单只有qos的端口设置 , 用于支持telnet命令:
dubbo.application.qos.port=22222
- 在resources目录下新建文件夹spring , 在此文件夹下创建文件dubbo-provider.xml , 要重点关注的是dubbo:registry的配置 , 其address属性值为multicast://224.5.6.7:1234 , 代表当前服务通过广播让消费者获得自身信息:
- 7GB/S的极速狂飙,这可能是目前最快PCIe4.0 SSD之一了
- 在谷歌算法更新之后2020年盗版网站流量锐减三分之一
- 20款游戏实战!酷睿i7-10750H、锐龙9 4900H到底谁更强?
- 项目实战 | 记一次对某猥琐PHP后门的爆菊
- 世界物联网大会:中国物联网产值占全球四分之一,5G用户占全球85%
- Redis集群做法的难点,百万并发客户端「实战」
- GTC DLI 实战培训第一课:理论与实践入门
- 微软成为最新加入亚马逊“气候承诺”倡议的公司之一
- 曾是国产四大品牌之一的联想为何会没落?原来是公司内部出了问题
- LeetCode 刷题之一(查找常用字符)