外贸soho自己建站,制作校园网站,wordpress po修改,php 免费网站空间申请1. Dubbo概述
Dubbo 是一款高性能、轻量级的开源Java RPC框架#xff0c;由阿里巴巴公司开发并在2011年开源。它主要用于解决分布式系统中服务之间的通信问题#xff0c;支持多种协议#xff0c;如Dubbo、HTTP、Hessian等#xff0c;具有服务注册、服务发现、负载均衡、故…1. Dubbo概述
Dubbo 是一款高性能、轻量级的开源Java RPC框架由阿里巴巴公司开发并在2011年开源。它主要用于解决分布式系统中服务之间的通信问题支持多种协议如Dubbo、HTTP、Hessian等具有服务注册、服务发现、负载均衡、故障转移等特性。 2. Zookeeper概述Dubbo推荐使用Zookeeper作为注册中心
ZooKeeper 是一个开源的分布式协调服务主要用于分布式应用中的分布式协调。它是由 Apache 软件基金会开发的一个项目旨在解决分布式应用中的一致性问题。
3. 安装Zookeeper
创建一个文件夹放置zookeeper压缩文件
使用tar命令进行压缩zookeeper文件
tar -zxvf apache-zookeeper-3.5.6-bin.tar.gz
创建一个目录用于存放zookeeper的数据 例如zkdata
zoo_sample.cfg不生效只有zoo.cfg才生效需要将zoo_sample.cfg拷贝一份名为zoo.cfg的文件
cp zoo_sample.cfg zoo.cfg
然后进入解压后的zookeeper的配置文件zoo.cfg在该配置文件中修改dataDir的值为存放zookeeper用于存放数据的目录地址例如zkdata的地址 修改zoo.cfg的dataDir 4. Zookeeper的基本操作
返回zookeeper目录
进入bin目录中zkServer.sh是zookeeper的可执行文件
启动 zookeeper的命令
./zkServer.sh start查看 zookeeper的状态
./zkServer.sh status
停止 zookeeper的命令
./zkServer.sh stop 5.Dubbo快速入门示例
首先启动zookeeper
防火墙未关闭问题
如果发现该提示则表示防火墙未关闭 关闭防火墙命令
sudo systemctl stop firewalld
1dubbo的生产者
引入依赖 dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-dependencies-zookeeper/artifactIdversion2.7.4.1/versiontypepom/typeexclusionsexclusiongroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactId/exclusion/exclusions/dependencydependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-spring-boot-starter/artifactIdversion2.7.4.1/version/dependency
填写配置
server:port: 8081
dubbo:registry:address: zookeeper://192.168.92.138:2181 #自己的zookeeper服务器的IP:默认端口号application:name: producer1 #注册进去的名字protocol:name: dubbo #设置类型port: -1 #因为dubbo的服务器端口号是不能唯一的所以设置为-1会帮我们自动改变端口号config-center:timeout: 120000 #超时时间 毫秒示例 ServiceImpl
Service //注意这里是dubbo的Service注解
public class UserServiceImpl implements IUserService {Overridepublic String helloWorld() {return Hello World LocalDateTime.now();}
}
启动类
SpringBootApplication
ServletComponentScan
EnableDubbo(scanBasePackages com.example.service.service)
public class DubboServiceApplication {public static void main(String[] args){SpringApplication.run(DubboServiceApplication.class,args);}
}
2dubbo的消费者
引入依赖 dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-dependencies-zookeeper/artifactIdversion2.7.4.1/versiontypepom/typeexclusionsexclusiongroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactId/exclusion/exclusions/dependencydependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-spring-boot-starter/artifactIdversion2.7.4.1/version/dependencydependencygroupIdcom.example/groupIdartifactIddubbo-service/artifactIdversion1.0-SNAPSHOT/version/dependency
填写配置
server:port: 8082dubbo:application:name: consumer1protocol:name: dubboport: -1registry:address: zookeeper://192.168.92.138:2181 #默认端口号为2181config-center:timeout: 12000 #超时时间
示例 controller
RestController
RequestMapping(/user)
public class UserController {Referenceprivate IUserService userService;GetMapping(/hello)public String getHello(){return userService.helloWorld();}}启动类
SpringBootApplication
ServletComponentScan
EnableDubbo(scanBasePackages com.example.web.controller)
public class DubboWebApplication {public static void main(String[] args){SpringApplication.run(DubboWebApplication.class,args);}
}3测试
打开浏览器的地址http://localhost:8082/user/hello
显示效果 6.Dubbo-admin图形化界面
1首先下载node
2下载 Dubbo-admin
下载链接https://github.com/apache/dubbo-admin 下载dubbo-admin 解压后我们进入…\dubbo-admin-develop\dubbo-admin-server\src\main\resources目录找到 application.properties配置文件 进行配置修改
3修改该配置文件中的 zookeeper 地址
将127.0.0.01修改为自己的虚拟机地址
说明
admin.registry.address注册中心
admin.config-center 配置中心
admin.metadata-report.address元数据中心 4在 dubbo-admin-develop 目录执行打包命令 mvn clean package 5启动后端
切换目录到dubbo-Admin-develop\dubbo-admin-distribution\target
打开cmd
执行下面的命令启动 dubbo-admindubbo-admin后台由SpringBoot构建。
java -jar .\dubbo-admin-0.1.jar 6启动图形化界面
在dubbo-admin-ui 目录下执行命令
npm run dev
浏览器输入所显示的地址用户名密码都是root
7.Dubbo高级特性
1设置超时和重启
timeout调用超时时间默认值1000单位为毫秒。retries重试次数默认值2。 2多版本
version服务版本用于区分同一接口的不同版本。
在生产者中的Impl里的Service和消费者中的controller的Reffrence的可以通过设置版本版本必须一致生产者才能为消费者服务。 3负载均衡
负载均衡策略有四种
random随机随机选择一个服务提供者实例。roundRobin轮询按顺序轮流选择一个服务提供者实例。leastRequest最少请求选择请求最少的服务提供者实例。consistentHash一致性哈希基于一致性哈希算法选择服务提供者实例。
在生产者中的Impl里的Service和消费者中的controller的Reffrence的可以通过loadbalance属性设置负载均衡策略的模式 4集群容错
常见的集群容错模式 failover失败自动切换当出现失败情况时重试其他服务器。通常用于读操作但重试会带来更长延迟。可通过 retries 属性设置重试次数。 failfast快速失败只发起一次调用失败立即报错。通常用于非幂等性的写操作比如新增记录。 failback失败自动恢复后台记录失败请求定时重发。通常用于消息通知操作。 failsafe失败安全出现异常时直接忽略。通常用于写入审计日志等操作。