보행 통합 springboot 간단한 예

무엇 두보 그?

두보는 고성능, 경량의 오픈 소스 자바 RPC 프레임 워크입니다.

그 세 가지 핵심 :

위한 통신, 원격 메소드 호출 인터페이스

지능형 부하 분산 및 내결함성

자동 등록 및 검색 서비스

개념

1571398361922

서비스 제공 업체 (공급자) : 서비스를 제공하는 서비스 제공 업체, Qidong의에서 서비스 제공자는 레지스트리 서비스로 자신을 등록합니다.

서비스 소비자 (소비자) : 시작시 원격 서비스 소비자 서비스, 고객 서비스로 전화가 서비스 레지스트리에 등록 할 필요가 서비스 소비자, 밸런싱 알고리즘 소프트웨어 부하에 따라 목록에서 주소를 제공하는 선택 대만 공급자는 호출이 실패 할 경우, 다른 통화를 선택, 호출합니다.

레지스트리 (등록) : 레지스트리 서비스 제공자의 주소 목록의 변경이있는 경우, 레지스트리는 소비자에게 데이터 연결을 변경하는 긴 푸시 기반으로합니다, 소비자에게 돌아왔다.

센터 (모니터) 모니터링 : 메모리에, 호출의 누적 수를 서비스 소비자와 제공자와 시간을 전화 모니터링 센터, 분당 1 회의 전송 통계 데이터의 정의.

설치 두보 모니터링

두보 서비스 자체는 항아리 같은 소프트웨어 패키지 자체가 아닙니다. 귀하의 역할은 서비스를 제공하기 위해, 사육사 소비자 사용을 달성, 자바 프로그램은 사육사에 연결하는 것입니다.

필요한 도구와도 압축 해제

1571399947862

1571400436979

1571400887606

구성 파일의 내용

1571401140445

참고 : 사육사로 레지스트리를 사용하는 경우, 사육사 시작을 사전에 !

달리기

먼저 실행 zookepper

1571401938011

zookepper 파일을 실행하기 전에 구성 파일을 복사하고 이름을 바꿉니다. 그렇지 않으면, 시작 시간은 현상을 다시 깜박입니다

1571402259886

구체적인 이유는 zoo.cfg 파일 zoo_simple.cfg 대신 찾고 시작하는 시간입니다. 다시 깜박시 파일을 찾을 수 없습니다.

출발

1571402535774

자신의 환경에 따라, 운영의 적절한 방법을 선택합니다.

성공적으로 실행 한 후

1571402621208

실행 두보

사육사가 작동 한 후 성공적으로 두보.

1571402763399

이 경우 명령 cmd를 항아리 패키지 실행

1571403057192

성공의 로그인

1571403144915

로그인 확인

1571403279962

홈 로그인 화면

1571403321450

국가 레지스트리

1571403447327

두보 통합 springboot (이것은 아 아 아 아 텍스트입니다)

프로젝트 : 아래 그림과 같이

1571461003138

이 가운데 소비자와 서비스 제공자에 의해 엔티티 클래스와 서비스 인터페이스에 의존하고 있습니다.

엔티티 수준의 서비스 및 인터페이스 아키텍처

1571461153816

pom.xml 파일 코드

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.bc</groupId>
  <artifactId>spring-user-interface</artifactId>
  <version>1.0</version>
  
  <properties>
        <lombok.version>1.18.8</lombok.version>
  </properties>
  <dependencies>
    <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
            <scope>provided</scope>
    </dependency>
  </dependencies>
</project>

패킷 도메인 엔티티 클래스 코드

package com.bc.domain;

import java.io.Serializable;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User implements Serializable{
    private static final long serialVersionUID = 1L;
    private Integer id ;
    private String name ;
    private String address ;
}

서비스 패키지의 인터페이스 코드

는 OrderService

package com.bc.service;

import java.util.List;

import com.bc.domain.User;

public interface OrderService {
    public List<User> initOrder(Integer id) ;
}

UserService

package com.bc.service;

import java.util.List;

import com.bc.domain.User;

public interface UserService {
    public List<User> getUserList();
}
서비스 제공과 관련된 구조 및 코드

1571461478088

pom.xml 파일 코드

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.bc</groupId>
    <artifactId>springboot-service-provider</artifactId>
    <version>1.0</version>
    <name>springboot-service-provider</name>
    <description>springboot与dubbo的集成服务提供者(白茶弟弟)</description>

    <properties>
        <java.version>1.8</java.version>
        <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
        <dubbo.version>2.6.5</dubbo.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.bc</groupId>
            <artifactId>spring-user-interface</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
          <!-- Dubbo Spring Boot Starter -->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.1.RELEASE</version>
        </dependency>   
         <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>${dubbo.version}</version>
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
         </dependency>
         <!-- curator-framework -->
         <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.12.0</version>
         </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

UserServiceImpl 코드

package com.bc.service.impl;

import java.util.ArrayList;
import java.util.List;

import com.alibaba.dubbo.config.annotation.Service;
import com.bc.domain.User;
import com.bc.service.UserService;
//注意此时的service为dubbo的注解
@Service
public class UserServiceImpl implements UserService{
    
    public static List<User> user=new ArrayList<>();
    static {
        user.add(new User(1,"白菜弟弟","安徽"));
    }
    @Override
    public List<User> getUserList() {
        // TODO Auto-generated method stub
        return user;
    }
    
}

클래스 코드 시작

package com.bc;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;

@SpringBootApplication
@EnableDubbo //注意需要这个注解
public class SpringbootServiceProviderApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootServiceProviderApplication.class, args);
        System.out.println("服务者启动成功");
    }
}

프로필 코드 application.Properties


#Dubbo config
dubbo.application.name=springboot-service-provider
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880

제공하는 서비스가 완료 될 때까지, 시작 클래스보기를 실행

1571461867495

브라우저보기

1571461921644

소비자 관련 부분과 코드

1571462023873

코드

pom.xml 파일

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.bc</groupId>
    <artifactId>springboot-service-consumer</artifactId>
    <version>1.0</version>
    <name>springboot-service-consumer</name>
    <description>springboot与dubbo的集成服务消费者(白茶弟弟)</description>

    <properties>
        <java.version>1.8</java.version>
        <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
        <dubbo.version>2.6.5</dubbo.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.bc</groupId>
            <artifactId>spring-user-interface</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        
         <!-- Dubbo Spring Boot Starter -->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.1.RELEASE</version>
        </dependency>   
         <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>${dubbo.version}</version>
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
         </dependency>
         <!-- curator-framework -->
         <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.12.0</version>
         </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

프로필 코드 application.Properties

#Dubbo 
dubbo.application.name=springboot-service-provider
dubbo.registry.address=zookeeper://127.0.0.1:2181

server.port=8888

있으며, OrderServiceImpl 구현 클래스

package com.bc.service;

import java.util.List;

import org.springframework.stereotype.Service;

import com.alibaba.dubbo.config.annotation.Reference;
import com.bc.domain.User;

@Service//此时的这个是spring下的
public class OrderServiceImpl implements OrderService {
    
    @Reference  //这个是dubbo下的
    private UserService userService ;
    @Override
    public List<User> initOrder(Integer id) {
        // TODO Auto-generated method stub
        return userService.getUserList();
    }
    
}

제어 장치

package com.bc.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.bc.domain.User;
import com.bc.service.OrderService;


@RestController
public class CusController {
    
    @Autowired
    private OrderService orderSrvice ;
    
    @RequestMapping("getUser")
    public List<User> getUser(){
        return this.orderSrvice.initOrder(1);
    }
}

시작 클래스

package com.bc;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;

@SpringBootApplication
@EnableDubbo
public class SpringbootServiceConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootServiceConsumerApplication.class, args);
        System.out.println("消费者启动成功");
    }
}

다음은 코드 섹션입니다

시작 소비자

1571462355993

브라우저보기

1571462408452

1571462468130

지금까지이 완료되었습니다.

추천

출처www.cnblogs.com/ZT-Song/p/11708025.html