首页
统计
关于
Search
1
Sealos3.0离线部署K8s集群
1,073 阅读
2
类的加载
737 阅读
3
Spring Cloud OAuth2.0
725 阅读
4
SpringBoot自动装配原理
689 阅读
5
集合不安全问题
582 阅读
笔记
Java
多线程
注解和反射
JVM
JUC
设计模式
Mybatis
Spring
SpringMVC
SpringBoot
MyBatis-Plus
Elastic Search
微服务
Dubbo
Zookeeper
SpringCloud
Nacos
Sentinel
数据库
MySQL
Oracle
PostgreSQL
Redis
MongoDB
工作流
Activiti7
Camunda
消息队列
RabbitMQ
前端
HTML5
CSS
CSS3
JavaScript
jQuery
Vue2
Vue3
Linux
容器
Docker
Kubernetes
Python
登录
Search
标签搜索
Java
CSS
mysql
RabbitMQ
JavaScript
Redis
JVM
Mybatis-Plus
Camunda
多线程
CSS3
Python
Spring Cloud
注解和反射
Activiti
工作流
SpringBoot
Mybatis
Spring
html5
蘇阿細
累计撰写
388
篇文章
累计收到
4
条评论
首页
栏目
笔记
Java
多线程
注解和反射
JVM
JUC
设计模式
Mybatis
Spring
SpringMVC
SpringBoot
MyBatis-Plus
Elastic Search
微服务
Dubbo
Zookeeper
SpringCloud
Nacos
Sentinel
数据库
MySQL
Oracle
PostgreSQL
Redis
MongoDB
工作流
Activiti7
Camunda
消息队列
RabbitMQ
前端
HTML5
CSS
CSS3
JavaScript
jQuery
Vue2
Vue3
Linux
容器
Docker
Kubernetes
Python
页面
统计
关于
搜索到
2
篇与
的结果
2020-12-28
服务注册发现
服务注册发现步骤:1、开启zookeeper服务2、提供者导入依赖配置注册中心的地址,服务发现名,要扫描的包在想要注册的服务类上增加(Dubbo包下的)@Service注解3、消费者导入依赖配置注册中心地址,服务名从远程注入服务(Dubbo包下的)@Reference注解1、开启zookeeper服务(以windows环境为例)2、通过maven命令打包dubbo,或者在github下载源码导入idea打包通过cmd命令java -jar dubbo-admin-0.0.1-SNAPSHOT.jar启动dubbo3、服务者Demo导入依赖(服务者和消费者需要的依赖一样)<!--Dubbo--> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.3</version> </dependency> <!--zkClient--> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency> <!--引入zookeeper--> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>2.12.0</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>2.12.0</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.14</version> <!--排除slf4j-log4j12--> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency>application.yml配置(服务者)server: port: 8088 dubbo: application: name: provider-server registry: address: zookeeper://127.0.0.1:2181 scan: base-packages: com.sw.service Servicepackage com.sw.service; /** * @Author suaxi * @Date 2020/12/27 11:57 */ public interface TicketService { public String getTicket(); } package com.sw.service; import org.apache.dubbo.config.annotation.Service; import org.springframework.stereotype.Component; /** * @Author suaxi * @Date 2020/12/27 11:58 * zookeeper:服务注册与发现 */ @Service //Dubbo @Service注解可以被扫描到,项目一启动,服务就自动注册到注册中心 @Component //使用Dubbo后尽量用Component注解,Spring的Service注解导包时容易搞混 public class TicketServiceImpl implements TicketService{ @Override public String getTicket() { return "获得票一张!"; } } 4、消费者Demo导入pom.xml的依赖与服务者一样application.yml配置(消费者)server: port: 8089 dubbo: application: name: consumer-server registry: address: zookeeper://127.0.0.1:2181Servicepackage com.sw.service; /** * @Author suaxi * @Date 2020/12/27 11:57 */ public interface TicketService { public String getTicket(); } package com.sw.service; import org.apache.dubbo.config.annotation.Reference; import org.springframework.stereotype.Service; /** * @Author suaxi * @Date 2020/12/27 12:07 */ @Service //放到Spring容器中 public class UserService { //想要拿到provider-server的票,需要到注册中心拿 @Reference //引用,pom坐标,可以定义路径相同的接口名 TicketService ticketService; public void buyTicket(){ String ticket = ticketService.getTicket(); System.out.println("在注册中心拿到===>"+ticket); } } Junit测试类package com.sw; import com.sw.service.UserService; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest class ConsumerServerApplicationTests { @Autowired private UserService userService; @Test public void consumerTest() { userService.buyTicket(); } } 5、Dubbo前端管理页面通过localhost:7001可以进入dubbo的管理员页面,账号密码都是root
2020年12月28日
99 阅读
0 评论
0 点赞
2020-12-28
Dubbo
Dubbo什么是分布式系统?分布式系统是若干个独立计算机的集合,这些计算机对用户来说就像是单个系统一样。RPCRPC(Remote Produce Call)指远程过程调用,是一种进程间的通信方式。如:有服务器A、服务器B,一个应用部署在A服务器上,数据、函数/方法等在服务器B上,现想通过A的应用调用B的数据,由于两者不在一个内存空间,不能直接调用,需通过网络来表达调用的语义和传达调用的数据。RPC的两个核心模块:通信、序列化Dubbo面向接口的远程方法调用,智能容错和负载均衡,服务自动注册和发现注:图片来源Apache Dubbo官网Provider:暴露服务的服务提供商,服务提供者在启动时,向注册中心注册自己提供的服务Consumer:调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用Registry:注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者Monitor:服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次监控数据到统计中心
2020年12月28日
145 阅读
0 评论
0 点赞