当前位置: 首页 > news >正文

东莞手机网站设计公司wordpress最新版底部版权

东莞手机网站设计公司,wordpress最新版底部版权,沈阳市建设工程项目管理中心,网站建设一秒互联文章目录 概念整理基本概念概念助记前提RPC与HTTP类比RPC接口类的一些理解 实例代码主体结构父项目公共接口项目提供者项目项目结构POM文件实现配置文件实现公共接口实现程序入口配置启动项目检查是否可以注入到Nacos 消费者项目项目结构POM文件实现配置文件实现注册RPC服务类实… 文章目录 概念整理基本概念概念助记前提RPC与HTTP类比RPC接口类的一些理解 实例代码主体结构父项目公共接口项目提供者项目项目结构POM文件实现配置文件实现公共接口实现程序入口配置启动项目检查是否可以注入到Nacos 消费者项目项目结构POM文件实现配置文件实现注册RPC服务类实例运行结果 概念整理 基本概念 RPC可以理解为一种网络服务调用形式具有服务提供方服务调用方调用功能请求参数和响应参数的类似概念RPC有多种实现途径或组合框架Nacos Dubbo只是一种比较简单的实现方式相比于HTTP请求 RPC更适合在微服务节点之间进行高效的信息传输。原因之一是在OSI模型中HTTP在第七层RPC在第五层所以RPC实现更加底层处理过程更加简单通讯效率更高。RPC必须要有【服务注册中心】这个组成部分对提供者和消费者之间提供通讯桥梁即提供者和消费者之间没有直连关系 提供者提供RPC服务并注册到服务中心消费者访问服务中心调用其中的RPC服务 概念助记 以下概念不是官方解释仅为了方便第一次接触RPC时方便理解RPC的相关概念 前提 对于普通Spring Boot项目在后台传输信息时服务调用方下称消费者可以直接访通过服务提供方下称提供者提供的公开URL在java后台用Fegin、RestTemplate或者HttpClient工具发起形如get http:\\目标节点IP:端口\functionUrl?param xxxx这样的请求在Spring Cloud项目里引入了【服务中心】各节点都注册到中心里所以调用URL变成了get http:\\目标服务在服务中心的名字\functionUrl?param xxxx可以简单理解HTTP请求操作的中心就是URL而RPC使用接口Interface(就是java原生的那个interface类型)替换对URL的操作 RPC与HTTP类比 RPCHTTP提供者Spring Cloud节点Spring Cloud或Spring Boot节点消费者Spring Cloud节点Spring Cloud或Spring Boot节点服务发现中心必选可选调用目标名服务中心注册名服务中心注册名或目标IP端口调用URL的PathURL接口类的方法名PathURL请求参数接口方法入参path或者body参数响应结果接口方法返回值请求Response的body请求包含其他内容无header状态参数等 RPC接口类的一些理解 RPC接口从代码层面定义一个节点功能的名称入参、返回值等结果相当于定义HTTP请求的RequestMap的路径和Controller的参数和返回值RPC接口对提供者和调用者同时可见RPC接口在提供者内部实现具体的业务逻辑即存在Imp类完成具体的业务功能RPC接口在调用者内部没有实现类但可以像Mybatis的Mapper接口一样注入并调用接口方法实现接口功能可以理解为在Dubbo和Nacos的支持下其他框架也可以调用者内部的接口生成了一个动态代理实例这个实例的内部逻辑就是发起RPC网络请求去执行提供者实现的接口类逻辑。使用起来可以类比Mybatis的Mapper接口只定义Mapper接口但这个接口使用时可以被注入调用方法时也有具体的实现逻辑。 实例代码 主体结构 父项目 父项目没有任何javayml文件仅利用pom.xml限制当前项目各个模块之间的版本统一性具体的NacosSpringBootCloudDubbo版本情况如下 版本一定要配套否则会有各种启动异常 JDK 8Spring boot 2.7.18Spring Cloud 2021.0.6Spring Cloud Alibaba 2021.0.6.0内置 Nacos client 2.2.0dubbo3.2.14 使用Dubbo 3版本引入依赖、项目配置和代码注解都会与Dubbo2有大差异一定要注意。 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.7.18/version/parentpackagingpom/packaginggroupIdcom/groupIdartifactIddubbo/artifactIdversion0.0.1-SNAPSHOT/versionnamedubbo/namedescriptiondubbo/descriptionpropertiesjava.version8/java.versionspring-boot.version2.7.18/spring-boot.versionspring-cloud-alibaba.version2021.0.6.0/spring-cloud-alibaba.versionspring.cloud.version2021.0.6/spring.cloud.versiondubbo.version3.2.14/dubbo.versionmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.target/properties!-- 统一管理配置在此模块下的子模块要引入依赖必须声明groupId和artifactId不需要声明版本--dependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring.cloud.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion${spring-cloud-alibaba.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-bom/artifactIdversion${dubbo.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project公共接口项目 项目结构 定义公共接口 package com.common;public interface IHelloService {String provider(String content); }POM文件里可以不用实现任何Dependence不需要在Application.yml中配置任何参数 提供者项目 项目结构 POM文件实现 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionartifactIddubbo-provider/artifactIdversion1.0/versionparentgroupIdcom/groupIdartifactIddubbo/artifactIdversion0.0.1-SNAPSHOT/versionrelativePath../../dubbo/relativePath/parentdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-bootstrap/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependencydependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-spring-boot-starter/artifactId/dependencydependencygroupIdcom/groupIdartifactIddubbo-interface/artifactIdversion0.0.1-SNAPSHOT/versionscopecompile/scope/dependency/dependencies /project特别注意 1. Nacos的实现包含了nacos-config和nacos-discovery两个包 2. dubbo-spring-boot-starter的groupId是apache不是alibaba 配置文件实现 # SpringCloud服务注册和发现 server:port: 8881 spring:cloud:nacos: #2.3以后Nacos版本都建议配置discovery和config两个discovery:server-addr: localhost:8848config:server-addr: localhost:8848#Dubbo服务实现类的扫描基准包路径 dubbo:application:name: dubbo-providerscan:base-packages: com.provider#Dubbo服务暴露的协议配置protocol:name: dubbo #name为协议名称默认为dubboport: -1 #port为协议端口-1 表示自增端口从 20880 开始registry: # 必须包含此节点配置address: nacos://localhost:8848 # 注意应该nacos开头否则没法注册 公共接口实现 package com.provider;import com.common.IHelloService; import org.apache.dubbo.config.annotation.DubboService;DubboService //该注解说明当前实现类为RPC服务类 public class HelloServiceImp implements IHelloService {Overridepublic String provider(String content) {System.out.println(into Service1Imp);return 服务提供者- content;} }程序入口配置 package com.provider;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;EnableDiscoveryClient SpringBootApplication //不用再使用EnableDubbo注解 public class ProviderApplication {public static void main(String[] args) {SpringApplication.run(ProviderApplication.class, args);}}启动项目检查是否可以注入到Nacos 消费者项目 项目结构 这里使用JunitTest来验证RPC是否可以正常调用 POM文件实现 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionartifactIddubbo-customer/artifactIdversion1.0/versionparentgroupIdcom/groupIdartifactIddubbo/artifactIdversion0.0.1-SNAPSHOT/versionrelativePath../../dubbo/relativePath/parentpropertiesjava.version1.8/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-bootstrap/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependencydependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-spring-boot-starter/artifactId/dependencydependencygroupIdcom/groupIdartifactIddubbo-interface/artifactIdversion0.0.1-SNAPSHOT/versionscopecompile/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build /project再次强调 1. Nacos的实现包含了nacos-config和nacos-discovery两个包 2. dubbo-spring-boot-starter的groupId是apache不是alibaba 配置文件实现 server:port: 8882 #Spring配置 spring:application:name: dubbo-consumercloud:discovery: #禁止该服务注册到Nacos服务列表中register-enabled: falsenacos:discovery:server-addr: localhost:8848 dubbo:cloud:subscribed-services: dubbo-provider #表示要订阅服务的服务名若需订阅多应用使用,分割。protocol:name: dubboport: 20881 # 同一台物理机既要启动提供者又要启动消费者时必须指定dubbo端口号如果用默认端口则会冲突registry: #必须要配置此属性否则会启动异常address: nacos://localhost:8848 #必须是nacos开头application:qosEnable: false # 该参数默认为true如果不手工改为false则需要修改qosPort默认端口号防止端口冲突 # qosPort: 8883 # qosAcceptForeignIp: false再次强调 dubbo3版本的消费者必须追以下属性 dubbo.registry.address:dubbo.application.qosEnable:dubbo.application.qosPortdubbo.application.qosAcceptForeignIp 关于Qos配置问题可以参考这篇博客Dubbo启动时qos-server can not bind localhost:22222错误解决 注册RPC服务类实例 package com.customer;import com.common.IHelloService; import org.apache.dubbo.config.annotation.DubboReference; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;SpringBootTest(webEnvironment SpringBootTest.WebEnvironment.RANDOM_PORT) public class HelloTest {DubboReferenceprivate IHelloService helloService;Testpublic void RPCTest(){String result helloService.provider(Lily);System.out.println(运行结果 result);} }运行结果
http://www.hkea.cn/news/14316139/

相关文章:

  • 棋盘网站开发推广产品最好的方式
  • wordpress建自己的网站wordpress 拉取点击数
  • 网站开发 售后服务协议个人主页页面
  • 百度竞价排名是以什么形式来计费的广告?宁波seo排名费用
  • 拼多多运营怎么做如何做网站的内链优化
  • 成品ppt的网站免费观看wordpress编辑文章很慢
  • 给人做网站能赚钱吗濮阳网站优化公司哪家好
  • 浙江移动网站建设制作基本建设工程兵网站
  • 海淀网站制作wordpress 电台主题
  • 广州站在哪个区开个做网站的公司 知乎
  • 十大品牌网seo搜索引擎实战详解
  • 哪些网站可以发布免费招聘信息金融类网站建设
  • 怎么做网站的登录界面集团公司做网站的好处有什么
  • 网站开发和oa有什么区别国外做名片的网站
  • 电子商务网站建设知识点总结linode wordpress 教程
  • 宝安中心客运站重庆网站建设平台
  • 某商贸网站建设方案wordpress抓取别人网站
  • 北京网站技术开发公司怎样连接服务器
  • 制作百度移动网站wordpress读取图片loading
  • 怎么在国外网站赚钱无锡网站怎么做
  • 网页设计网站开发西宁建设局官方网站
  • 新乡营销网站建设公司wordpress关联博客
  • 嘉兴seo网站建设费用wordpress 比较
  • 杨浦手机网站建设漳州违法建设举报网站
  • 网站开发 知乎镇江市官网
  • 英文网站外链查询滁州网站建设信息推荐
  • 网站建设花费wordpress载入等待
  • 网站的构成要素写网站论文怎么做的
  • 珠宝网站官网建设需求湘潭网站建设 电话磐石网络
  • 怎么通过互联网做一个服务的网站wordpress防御ip攻击