Construcción del centro de registro y centro de monitoreo de dubbo
Construcción del centro de registro de dubbo (guardián del zoológico)
Enlace de descarga: https://zookeeper.apache.org/releases.html
Nota: descargue la versión con bin al descargar
- ¡Descomprima
atención, atención, atención! ! ! ! No puede descomprimirlo directamente debajo de la ventana, de lo contrario no puede eliminarlo, pero puede guardar el país por curva. Coloque el paquete de instalación descargado en Linux, descomprímalo en Linux y vuelva a colocarlo en la ventana.
Debido a que antes se instalaron todo tipo de software en Linux, la memoria de la máquina virtual Linux no es suficiente. (Bueno, de hecho, los comandos de Linux son demasiado problemáticos y es cómodo de usar sin una ventana de visualización de ventana).
El directorio descomprimido en la ventana es el siguiente:
al iniciar zkServer.cmd. En un instante, debe comenzar desde cmd.
Cambie al directorio de instalación de su apache-zookeeper-3.5.5-bin e inicie zkServer.cmd. Puede ver que el mensaje de error es que no hay /conf/zoo.cfg
2. En conf, cópielo y cámbiele el nombre.
Como se muestra a continuación:
3. Agregue el disco d delante de la ruta. Guardar y salir Ahora
iniciando zkServer.cmd. Empezar exitosamente
instalación del centro de monitoreo de dubbo
Encuentre un proyecto dubbo-admin en Internet, cópielo y empaquételo en un paquete jar con su propia idea
Nota: Verifique la dirección registrada de zookeepr y si es una dirección registrada local en el archivo de configuración. Si no es así, los errores seguirán ocurriendo más tarde.
Nota: Primero use el comando doc para iniciar zookeeper y luego use el comando doc para iniciar el centro de administración.
java -jar donde escribiste como jar
Hay un dubbo-admin-0.0.1-SNAPSHOT.jar empaquetado en el recurso
Después del inicio, ingrese http: localhost: 7001 en el navegador para ver si puede acceder al centro de administración de dubbo.
Si puede acceder a él, significa que el centro de administración está instalado.
dubbo combinado con primavera
Crea un proyecto de maven.
Configuración en pom.xml bajo el proyecto mavaen
<properties>
<project.build.sourceEncodiing>UTF-8</project.build.sourceEncodiing>
<maven.compile.source>1.8</maven.compile.source>
<maven.compile.target>1.8</maven.compile.target>
<dubbo.version>2.7.3</dubbo.version>
</properties>
Construido por el proveedor de servicios dubbo
Cree un subproyecto de módulo
pom.xml bajo el proyecto maven
<properties>
<springframework.version>4.3.11.RELEASE</springframework.version>
</properties>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.7</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.3</version>
</dependency>
<dependency>
<groupId>com.itzz</groupId>
<artifactId>dubbo01-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
Configurar en applicationContext.xml después de importar el paquete jar
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!--使用zookeeper注册中心暴露当前地址-->
<dubbo:registry address="zookeeper://localhost:2181"></dubbo:registry>
<!-- 用dubbo协议在20880端口暴露服务 当前应用通过20880暴露服务-->
<dubbo:protocol name="dubbo" port="20880" />
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="dubbo01-provider" />
<!--定义实现类的bean-->
<bean id="userService" class="com.itzz.provider.service.Impl.UserServiceImpl"></bean>
<!--声明暴露的接口-->
<dubbo:service interface="com.itzz.provider.service.UserService" ref="userService" version="1.0.0"></dubbo:service>
</beans>
En la clase principal
public static void main(String[] args) throws IOException {
ClassPathXmlApplicationContext context =new ClassPathXmlApplicationContext("applicationContext.xml ");
context.start();
System.in.read();
}
Cree un método en la clase de implementación de la capa de servicio.
public class UserServiceImpl implements UserService {
public void sayHello() {
System.out.println("你好,我是提供者。---1");
}
public User findUser() {
User user = new User();
user.setId(1);
user.setUsername("张三");
user.setAddress("北京");
return user;
}
}
Crear un módulo de API de interfaz
como:
public interface UserService {
void sayHello();
User findUser();
}
pojo
crea un User.java
public class User implements Serializable {
private int id;
private String username;
private String address;
//setter getter
}
Crear un módulo de subconsumidor
pom.xml
<properties>
<springframework.version>4.3.11.RELEASE</springframework.version>
</properties>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.7</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.3</version>
</dependency>
<dependency>
<groupId>com.itzz</groupId>
<artifactId>dubbo01-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!--使用zookeeper注册中心暴露当前地址-->
<dubbo:registry protocol="zookeeper" address="localhost:2181"></dubbo:registry>
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="dubbo01-consumer" />
<!--定义参照接口-->
<dubbo:reference interface="com.itzz.provider.service.UserService" version="1.0.0" id="userService" check="false"></dubbo:reference>
</beans>
Categoría principal del consumidor
package com.itzz.provider;
import com.itzz.provider.pojo.User;
import com.itzz.provider.service.UserService;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.io.IOException;
public class ConsumerMain {
public static void main(String[] args) throws IOException {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//启动容器
context.start();
//获取bean
UserService userService = context.getBean(UserService.class);
userService.sayHello();
//
User user = userService.findUser();
System.out.println(user.toString());
System.in.read();
}
}
prueba
Ejecutar, ¿puedes ver los consumidores y proveedores registrados en el centro de control de dubbo?
Esto muestra que el dubbo combinado con la configuración de resorte es exitoso. También puede crear múltiples consumidores y múltiples proveedores. (Solo necesita cambiar la configuración del archivo de configuración, como el nombre y el puerto del proveedor, y el nombre del consumidor) es copiar el módulo al proyecto y luego cambiar y agregar la estructura del módulo.
Puede tener varios proveedores. Es decir, la función del cluster es la misma, pero hay dos para brindar servicios a los consumidores.