电话推销网站建设,网页界面设计代码,wordpress文件权限,网站建设技术服务费怎么写分录一、为什么要使用dubbo
1、dubbo是什么 dubbo是一个分布式服务框架#xff0c;致力于提供高性能和透明化的RPC远程服务调用方案#xff0c;以及SOA服务治理方案。
2、dubbo有何特点 #xff08;1#xff09;远程通讯#xff1a;提供透明化的远程方法调用#xff0c;提供…一、为什么要使用dubbo
1、dubbo是什么 dubbo是一个分布式服务框架致力于提供高性能和透明化的RPC远程服务调用方案以及SOA服务治理方案。
2、dubbo有何特点 1远程通讯提供透明化的远程方法调用提供多协议支持。 2集群容错软负载均衡失败容错地址路由动态配置等集群支持。 3自动发现基于注册中心目录服务使服务消费方能动态的查找服务提供方支持平滑减少或增加机器。
3、为什么要使用dubbo 1刚起步技术人员3个springmvc 一个应用一个数据库 2发展一年技术人员10个1个架构师RPC 将独立的业务抽取出来形成独立的服务商品订单交易 多个应用多个数据库 3发展一年半技术人员80个服务越来越多SOA 需要服务自动发现和治理dubbo、spring cloud、ICE
4、MVC、RPC、SOA的架构如何演进 刚开始直接把系统做出来推向市场市场反应好了再改进
5、dubbo与spring cloud、ICE的区别 dubbo2是netty长连接
二、dubbo常用标签
1、application 描述应用信息就是当前服务的项目信息配置 特殊说明无
2、container 描述服务的运行容器 特殊说明jetty、log4j、logback、spring
3、provider 描述服务提供方的一些服务治理、性能调优的一些配置 特殊说明该标签为当前服务的所有service和protocol标签的缺省值设置
4、service 描述服务提供者暴露接口配置 特殊说明无
5、consumer 描述服务消费方的一些服务治理、性能调优的一些配置 特殊说明无
6、reference 描述服务消费者引用接口配置 特殊说明无
7、registry 描述注册中心配置 特殊说明如果有多个不同的注册中心可以声明多个registry标签并在service或protocol的registry属性指定使用的注册中心
8、protocol 描述远程调用协议dubbo、hessian、http、injvm、memcached、redis、rmi、thrift、webservice等 特殊说明如果需要支持多协议可以声明多个protocol标签并在service中通过protocol属性指定使用协议
三、dubbo 3.0入门例子
1、下载官方入门例子 git clone --depth1 --branch master gitgithub.com:apache/dubbo-samples.git
2、eclipse打开只保留1-basic和tools模块否则项目太多了 modulesmodule1-basic/module!--module2-advanced/module--!--module3-extensions/module--!--module4-governance/module--!--module10-task/module--!--module99-integration/module--moduletools/module/modules
3、启动一个简易zookeeper 运行tools/embedded-zookeeper下的EmbeddedZooKeeper.java
/** Licensed to the Apache Software Foundation (ASF) under one or more* contributor license agreements. See the NOTICE file distributed with* this work for additional information regarding copyright ownership.* The ASF licenses this file to You under the Apache License, Version 2.0* (the License); you may not use this file except in compliance with* the License. You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an AS IS BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/
package org.apache.dubbo.samples;import java.io.File;
import java.util.Properties;
import java.util.UUID;import org.apache.zookeeper.server.ServerConfig;
import org.apache.zookeeper.server.ZooKeeperServerMain;
import org.apache.zookeeper.server.quorum.QuorumPeerConfig;public class EmbeddedZooKeeper {public static void main(String[] args) throws Exception {int port 2181;if (args.length 1) {port Integer.parseInt(args[0]);}Properties properties new Properties();File file new File(System.getProperty(java.io.tmpdir) File.separator UUID.randomUUID());file.deleteOnExit();properties.setProperty(dataDir, file.getAbsolutePath());properties.setProperty(clientPort, String.valueOf(port));QuorumPeerConfig quorumPeerConfig new QuorumPeerConfig();quorumPeerConfig.parseProperties(properties);ZooKeeperServerMain zkServer new ZooKeeperServerMain();ServerConfig configuration new ServerConfig();configuration.readFrom(quorumPeerConfig);try {zkServer.runFromConfig(configuration);} catch (Exception e) {e.printStackTrace();System.exit(1);}}
}4、启动服务提供者 运行1-basic/dubbo-samples-api下的org.apache.dubbo.samples.provider包内的Application.java
/** Licensed to the Apache Software Foundation (ASF) under one or more* contributor license agreements. See the NOTICE file distributed with* this work for additional information regarding copyright ownership.* The ASF licenses this file to You under the Apache License, Version 2.0* (the License); you may not use this file except in compliance with* the License. You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an AS IS BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/package org.apache.dubbo.samples.provider;import org.apache.dubbo.config.ProtocolConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.ServiceConfig;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
import org.apache.dubbo.samples.api.GreetingsService;public class Application {private static final String ZOOKEEPER_HOST System.getProperty(zookeeper.address, 127.0.0.1);private static final String ZOOKEEPER_PORT System.getProperty(zookeeper.port, 2181);private static final String ZOOKEEPER_ADDRESS zookeeper:// ZOOKEEPER_HOST : ZOOKEEPER_PORT;public static void main(String[] args) {ServiceConfigGreetingsService service new ServiceConfig();service.setInterface(GreetingsService.class);service.setRef(new GreetingsServiceImpl());DubboBootstrap.getInstance().application(first-dubbo-provider).registry(new RegistryConfig(ZOOKEEPER_ADDRESS)).protocol(new ProtocolConfig(dubbo, -1)).service(service).start().await();}
}5、启动服务消费者 运行1-basic/dubbo-samples-api下的org.apache.dubbo.samples.client包内的AlwaysApplication.java
/** Licensed to the Apache Software Foundation (ASF) under one or more* contributor license agreements. See the NOTICE file distributed with* this work for additional information regarding copyright ownership.* The ASF licenses this file to You under the Apache License, Version 2.0* (the License); you may not use this file except in compliance with* the License. You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an AS IS BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/package org.apache.dubbo.samples.client;import java.io.IOException;
import java.util.Date;import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
import org.apache.dubbo.samples.api.GreetingsService;public class AlwaysApplication {private static final String ZOOKEEPER_HOST System.getProperty(zookeeper.address, 127.0.0.1);private static final String ZOOKEEPER_PORT System.getProperty(zookeeper.port, 2181);private static final String ZOOKEEPER_ADDRESS zookeeper:// ZOOKEEPER_HOST : ZOOKEEPER_PORT;public static void main(String[] args) throws IOException {ReferenceConfigGreetingsService reference new ReferenceConfig();reference.setInterface(GreetingsService.class);DubboBootstrap.getInstance().application(first-dubbo-consumer).registry(new RegistryConfig(ZOOKEEPER_ADDRESS)).reference(reference).start();GreetingsService service reference.get();while (true) {try {String message service.sayHi(dubbo);System.out.println(new Date() Receive result message);Thread.sleep(1000);} catch (Throwable t) {t.printStackTrace();}}}}6、打印日志
Wed Mar 08 17:05:04 CST 2023 Receive result hi, dubbo
Wed Mar 08 17:05:05 CST 2023 Receive result hi, dubbo
Wed Mar 08 17:05:06 CST 2023 Receive result hi, dubbo
Wed Mar 08 17:05:07 CST 2023 Receive result hi, dubbo
Wed Mar 08 17:05:08 CST 2023 Receive result hi, dubbo
......