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-分布式系统理念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kali无限登录_Kali Linux没
- 下一篇: 参考文献顺序不对_Endnote插入参考