分布式系统理念

RPC

RPC(Remote Procedure Call)远程过程调用;是一种进程间通信方式,也是一种思想,而不是规范。允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数。

RPC的两个核心:通讯、序列化

序列化:将数据进行转换

dubbo

dubbo就是高可用,高性能的RPC框架,采用全是 Spring 配置方式,

提供了三大核心能力:面向接口的远程方法调用、智能容错和负载均衡,以及服务自动注册和发现。

服务注册实战

前提:zookeeper服务已开启

1.提供者提供服务

​ 1)导入依赖

com.alibaba.boot

dubbo-spring-boot-starter

0.1.0

com.github.sgroschupf

zkclient

0.1

​ 2)配置注册中心的地址,以及服务发现名,和要扫描的包

dubbo.application.name=privide-ticket

dubbo.registry.address=zookeeper://192.168.1.10:2181

dubbo.scan.base-packages=com.mjh.privideticket.service

​ 3)在想要被注册的服务上面增加一个注解@Service(Dubbo的)

service层和Impl层

package com.mjh.privideticket.service;

public interface TicketService {

public String getTicket();

}

package com.mjh.privideticket.service;

import org.springframework.stereotype.Component;

import org.springframework.stereotype.Service;

@Component

@Service//将服务发布出去

public class TicketServiceImpl implements TicketService {

@Override

public String getTicket() {

return "《厉害了,我的国》";

}

}

package com.mjh.privideticket;

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

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

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

/**

* 将服务提供者注册到注册中心

* 1.引入dubbo和zkclient相关服务依赖

* 2.配置dubbo的扫描包和注册中心地址

* 3.使用@Service发布服务

*/

@EnableDubboConfig

@SpringBootApplication

public class PrivideTicketApplication {

public static void main(String[] args) {

SpringApplication.run(PrivideTicketApplication.class, args);

}

}

2.消费者如何消费

​ 1)导入依赖

com.alibaba.boot

dubbo-spring-boot-starter

0.1.0

com.github.sgroschupf

zkclient

0.1

​ 2)配置注册中心的地址,配置自己的服务名

dubbo.application.name=privide-user

dubbo.registry.address=zookeeper://192.168.1.10:2181

​ 3)从远程注入服务 @Reference

(要使用远程的服务,就要跟远程的服务接口一致)

package com.mjh.privideticket.service;

public interface TicketService {

public String getTicket();

}

自己的service层

package com.mjh.privideuser.service;

import com.alibaba.dubbo.config.annotation.Reference;

import com.mjh.privideticket.service.TicketService;

import org.springframework.stereotype.Service;

@Service

public class UserService {

@Reference//远程引用

TicketService ticketService;

public void hello(){

String ticket = ticketService.getTicket();

System.out.println("买到票了:"+ticket);

}

}

package com.mjh.privideuser;

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

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

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

/**

* 引入依赖

* 配置dubbo的注册中心地址

* 引用服务

*/

@EnableDubboConfig

@SpringBootApplication

public class PrivideUserApplication {

public static void main(String[] args) {

SpringApplication.run(PrivideUserApplication.class, args);

}

}

boot分布式计算 spring_springboot05-分布式系统理念相关推荐

  1. 云计算开发(二) 分布式计算与分布式系统

    文章目录 1.分布式计算概述 2.分布式计算理论基础 2.1.ACID原则 2.2.CAP理论 2.3.BASE理论 2.4.一致性hash算法 3.分布式系统组成结构 3.1.分布式存储系统 3.2 ...

  2. boot分布式计算 spring_腾讯T4大佬剖析SpringBoot2 :从搭建小系统到架构分布式大系统...

    写在前面SpringBoot是目前Spring技术体系中炙手可热的框架之一,既可用于构建业务复杂的企业应用系统,也可以开发高性能和高吞吐量的互联网应用.Spring Boot框架降低了Spring 技 ...

  3. Spring boot starter

    1:Spring boot starter及项目中的类似运用 1:Spring boot starter的两种方式 引入pom文件,自动管理jar版本 根据spring.factories配置文件,加 ...

  4. redis实现轮询算法_白话分布式系统中的一致性哈希算法

    本文首发于:白话分布式系统中的一致性哈希算法 微信公众号:后端技术指南针 持续输出干货 欢迎关注! 通过本文将了解到以下内容:分布式系统的概念和作用 分布式系统常用负责均衡策略 普通哈希取模策略优缺点 ...

  5. 分布式系统中的一致性hash

    转载来源: https://zhuanlan.zhihu.com/p/92742908 通过本文将了解到以下内容: 分布式系统的概念和作用 分布式系统常用负责均衡策略 普通哈希取模策略优缺点 一致性哈 ...

  6. 2020,不会分布式怎么可以,这2份pdf共1000+,从原理到系统实现都包含了

    微服务.云原生.Kubernetes.Service Mesh是分布式领域的热点技术,它们并不是凭空出现的,一定继承了某些"前辈"的优点.我们不仅要了解这些技术,还要深入理解其发展 ...

  7. 阿里M8每天肝到凌晨,竟是只为一份文档把分布式到微服务讲清楚

    先听我说 微服务.云原生. kubemete Service Mesh 是分布式领域的热点技术,它们并不是凭空出现的,一定继承了某些"前辈"的优点.我们不仅要了解这些技术,还要深入 ...

  8. 【Spring框架一】——Spring框架简介

    系列文章目录 Spring框架简介 系列文章目录 前言 一.什么是Spring框架? 二.Spring框架的优势 1.简化开发流程:Spring提供了许多现成的功能,可以使得开发人员在构建应用程序时减 ...

  9. 旷世巨作!20年架构师手写《架构解密:从分布式到微服务》

    前言 "微服务"架构在这几年被广泛传播,变得非常火热,以至于关于微服务架构相关的开源框架和工具都变得越来越活跃,比如: Netlix OSS.Dubbo.Apache Thrift ...

最新文章

  1. mysql 8.0配置主从同步_MySQL8.0.19开启GTID主从同步CentOS8
  2. Linux系统下给Qt应用程序配置图标(其余的应用程序也是可以实现添加图标的)
  3. 数据工程师生存必备工具!
  4. EqualLogic全攻略视频[(一)介绍]
  5. C#取真实IP地址--多个代理背后的ip地址
  6. php 生成小程序二维码
  7. linux下编辑某个文件,linux下修改以某个字母开头的文件后戳
  8. 接口,new,匿名内部类
  9. BugkuCTF-MISC题爆照
  10. iar stm32_STM32延时函数的四种方法
  11. java行业报告_2018年Java生态行业报告
  12. Enze frist day
  13. python面试题(5)--- 检测 字符串 是否可以转换成 数字
  14. LINUX下定时备份MYSQL数据库SHELL脚本
  15. 2017/12/29
  16. 数组字符串转int数组_7.5 C++字符串数组 | 字符串数组输出
  17. tps协议和onvif协议_摄像头ONVIF协议,到底啥是ONVIF,又是啥意思?
  18. 【软件工程】二、需求分析——怎么提需求?,怎么写需求?
  19. Axure获取焦点和触发事件
  20. 计算机与单片机串口程序,51单片机与电脑串口通信,并用数码管显示的两种方法...

热门文章

  1. LLVM language 参考手册 翻译停止相关
  2. flash,flex,actionscript的关系
  3. 分享几个简单的WPF控件(代码)
  4. 捕获SocketConnection组件连接异常的几个好贴
  5. How to become the truely yourself?
  6. PMcaff活动 | 汪培公:农村电商模式的重新思考
  7. React性能优化之Context
  8. Android图像变化
  9. MemCache内存缓存系统
  10. Vue scoped CSS 与深度作用选择器 /deep/