boot分布式计算 spring_springboot05-分布式系统理念
分布式系统理念
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.分布式计算概述 2.分布式计算理论基础 2.1.ACID原则 2.2.CAP理论 2.3.BASE理论 2.4.一致性hash算法 3.分布式系统组成结构 3.1.分布式存储系统 3.2 ...
- boot分布式计算 spring_腾讯T4大佬剖析SpringBoot2 :从搭建小系统到架构分布式大系统...
写在前面SpringBoot是目前Spring技术体系中炙手可热的框架之一,既可用于构建业务复杂的企业应用系统,也可以开发高性能和高吞吐量的互联网应用.Spring Boot框架降低了Spring 技 ...
- Spring boot starter
1:Spring boot starter及项目中的类似运用 1:Spring boot starter的两种方式 引入pom文件,自动管理jar版本 根据spring.factories配置文件,加 ...
- redis实现轮询算法_白话分布式系统中的一致性哈希算法
本文首发于:白话分布式系统中的一致性哈希算法 微信公众号:后端技术指南针 持续输出干货 欢迎关注! 通过本文将了解到以下内容:分布式系统的概念和作用 分布式系统常用负责均衡策略 普通哈希取模策略优缺点 ...
- 分布式系统中的一致性hash
转载来源: https://zhuanlan.zhihu.com/p/92742908 通过本文将了解到以下内容: 分布式系统的概念和作用 分布式系统常用负责均衡策略 普通哈希取模策略优缺点 一致性哈 ...
- 2020,不会分布式怎么可以,这2份pdf共1000+,从原理到系统实现都包含了
微服务.云原生.Kubernetes.Service Mesh是分布式领域的热点技术,它们并不是凭空出现的,一定继承了某些"前辈"的优点.我们不仅要了解这些技术,还要深入理解其发展 ...
- 阿里M8每天肝到凌晨,竟是只为一份文档把分布式到微服务讲清楚
先听我说 微服务.云原生. kubemete Service Mesh 是分布式领域的热点技术,它们并不是凭空出现的,一定继承了某些"前辈"的优点.我们不仅要了解这些技术,还要深入 ...
- 【Spring框架一】——Spring框架简介
系列文章目录 Spring框架简介 系列文章目录 前言 一.什么是Spring框架? 二.Spring框架的优势 1.简化开发流程:Spring提供了许多现成的功能,可以使得开发人员在构建应用程序时减 ...
- 旷世巨作!20年架构师手写《架构解密:从分布式到微服务》
前言 "微服务"架构在这几年被广泛传播,变得非常火热,以至于关于微服务架构相关的开源框架和工具都变得越来越活跃,比如: Netlix OSS.Dubbo.Apache Thrift ...
最新文章
- mysql 8.0配置主从同步_MySQL8.0.19开启GTID主从同步CentOS8
- Linux系统下给Qt应用程序配置图标(其余的应用程序也是可以实现添加图标的)
- 数据工程师生存必备工具!
- EqualLogic全攻略视频[(一)介绍]
- C#取真实IP地址--多个代理背后的ip地址
- php 生成小程序二维码
- linux下编辑某个文件,linux下修改以某个字母开头的文件后戳
- 接口,new,匿名内部类
- BugkuCTF-MISC题爆照
- iar stm32_STM32延时函数的四种方法
- java行业报告_2018年Java生态行业报告
- Enze frist day
- python面试题(5)--- 检测 字符串 是否可以转换成 数字
- LINUX下定时备份MYSQL数据库SHELL脚本
- 2017/12/29
- 数组字符串转int数组_7.5 C++字符串数组 | 字符串数组输出
- tps协议和onvif协议_摄像头ONVIF协议,到底啥是ONVIF,又是啥意思?
- 【软件工程】二、需求分析——怎么提需求?,怎么写需求?
- Axure获取焦点和触发事件
- 计算机与单片机串口程序,51单片机与电脑串口通信,并用数码管显示的两种方法...