Dubbo is a distributed service framework. Since it is a service, there must be service providers and service callers.
Next, we first write a service provider. The project still uses the project in the previous article Getting Started with Spring 4.
Write the following class:
package com.mm.service;public interface WeatherService {public String getMessage(String city); }
package com.mm.service.impl;import com.mm.service.WeatherService;public class WeatherServiceImpl implements WeatherService{ @Overridepublic String getMessage(String city) {return city+"天气晴朗,局部有阵雨"; } }Create a spring configuration file (provider.xml)
<?xml version="1.0" encoding="UTF-8"?> <beans> <!-- 提供方应用信息,用于计算依赖关系 --> <application></application> <!-- 使用multicast广播注册中心暴露服务地址 --> <registry></registry> <!-- 用dubbo协议在20880端口暴露服务 --> <protocol></protocol> <!-- 声明需要暴露的服务接口 --> <service></service> <!-- 和本地bean一样实现服务 --> <bean></bean> </beans>Create a new console program for service startup
package com.mm.main.dubbo;import java.io.IOException;import org.springframework.context.support.ClassPathXmlApplicationContext;public class DubboProvider {public static void main(String[] args) throws IOException{ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"config/provider.xml"}); context.start(); System.in.read(); // 按任意键退出 } }Then, we started the service provider and found no error message. The service should have started successfully.
<?xml version="1.0" encoding="UTF-8"?> <beans> <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 --> <application></application> <!-- 使用multicast广播注册中心暴露发现服务地址 --> <registry></registry> <!-- 生成远程服务代理,可以和本地bean一样使用demoService --> <reference></reference> </beans>Create a new console program, The call for the service
package com.mm.main.dubbo;import java.io.IOException;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.mm.service.WeatherService;public class DubboConsumer {public static void main(String[] args) throws IOException{ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"config/consumer.xml"}); WeatherService demoService = (WeatherService )context.getBean("weatherService"); // 获取远程服务代理 String hello = demoService.getMessage("北京"); // 执行远程方法 System.out.println( hello ); // 显示调用结果 } }The console output is as follows:
The above is the detailed content of A distributed service framework--Dubbo instance. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

SublimeText3 Chinese version
Chinese version, very easy to use

SublimeText3 English version
Recommended: Win version, supports code prompts!

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool