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

网站推广工作好做吗网站指向邮箱超链接怎么做

网站推广工作好做吗,网站指向邮箱超链接怎么做,合肥专业的房产网站建设,互联网做什么行业前景好dubbo和fegin的差异 一、Feign与Dubbo概述 Feign是一个声明式的Web服务客户端#xff0c;使得编写HTTP客户端变得更简单。通过简单的注解#xff0c;Feign将自动生成HTTP请求#xff0c;使得服务调用更加便捷。而Dubbo是一个高性能、轻量级的Java RPC框架#xff0c;提供了…dubbo和fegin的差异 一、Feign与Dubbo概述 Feign是一个声明式的Web服务客户端使得编写HTTP客户端变得更简单。通过简单的注解Feign将自动生成HTTP请求使得服务调用更加便捷。而Dubbo是一个高性能、轻量级的Java RPC框架提供了丰富的服务治理功能。 二、性能对比 调用性能在单次调用方面Feign的性能表现略逊于Dubbo。由于Feign的自动生成HTTP请求机制其性能相较于Dubbo的直接RPC调用会有一定的损失。然而对于大多数应用而言这种性能差异并不明显。 负载均衡Feign和Dubbo都提供了负载均衡功能。Feign使用Ribbon作为其负载均衡组件而Dubbo则内置了负载均衡机制。在负载均衡方面Dubbo提供了更多的配置选项和策略具有更强的灵活性。 服务发现Feign依赖于Eureka、Consul、Nacos等注册中心实现服务发现而Dubbo则提供了内置的服务发现机制。在服务发现的性能和稳定性方面Dubbo具有一定的优势。 三、区别分析 架构差异Feign基于SpringCloud体系更适用于微服务架构。而Dubbo则独立于任何框架具有更强的通用性。 适用场景对于简单的服务调用场景Feign更加简洁易用。而当需要复杂的服务治理功能时Dubbo则更具优势。 扩展性Feign提供了丰富的注解和配置选项可以轻松地与SpringCloud的其他组件集成。而Dubbo则提供了丰富的SPI机制使得扩展更加灵活。 社区活跃度Feign的社区相对活跃随着SpringCloud的发展Feign也在不断迭代和完善。Dubbo的社区虽然活跃度不如Feign但凭借其多年的积累和沉淀依然拥有大量的用户和稳定的支持者。 项目代码 项目结构图 整体结构比较简单两个服务提供者、一个消费者、一个接口定义模块。 先看各个模块的maven配置 父工程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/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.3.0.RELEASE/versionrelativePath/ /parentgroupIdcom.zwm/groupIdartifactIddubbo-demo/artifactIdpackagingpom/packagingversion1.0-SNAPSHOT/versionmodulesmodulecommon-api/modulemoduleconsumer/modulemoduleprovider1/modulemoduleprovider2/module/modulespropertiesjava.version8/java.versioncom.alibaba.cloud.version2.2.3.RELEASE/com.alibaba.cloud.versionorg.spring.cloud.versionHoxton.SR8/org.spring.cloud.versionorg.spring.boot.version2.3.2.RELEASE/org.spring.boot.version/propertiesdependencyManagement!--使用management一次性依赖多个parent项目--dependencies!--springboot start依赖--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion${org.spring.boot.version}/version!--添加type和scope标签 并设置为pom和import 要不子模块引不到这些依赖--typepom/typescopeimport/scope/dependency!--springCloudAlibaba 依赖--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion${com.alibaba.cloud.version}/version!--添加type和scope标签 并设置为pom和import 要不子模块引不到这些依赖--typepom/typescopeimport/scope/dependency!--springCloud依赖--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${org.spring.cloud.version}/version!--添加type和scope标签 并设置为pom和import 要不子模块引不到这些依赖--typepom/typescopeimport/scopeexclusions!--因为后续要用dubbo去做远程调用 所以这里就把openfeign的依赖给排除掉--exclusiongroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/exclusion/exclusions/dependency/dependencies/dependencyManagement /project 服务提供者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.xsdparentartifactIddubbo-demo/artifactIdgroupIdcom.zwm/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdprovider2/artifactIddependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!--nacos配置中心--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependency!--nacos注册中心--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdexclusionsexclusionartifactIdhttpclient/artifactIdgroupIdorg.apache.httpcomponents/groupId/exclusion/exclusions/dependency!--dubbo与springboot自动装配starter--dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-spring-boot-starter/artifactIdversion2.7.8/versionexclusionsexclusiongroupIdlog4j/groupIdartifactIdlog4j/artifactId/exclusionexclusionartifactIdspring-context/artifactIdgroupIdorg.springframework/groupId/exclusion/exclusions/dependency!--dubbo - nacos注册--dependencygroupIdcom.alibaba/groupIdartifactIddubbo-registry-nacos/artifactIdversion2.7.7/versionexclusionsexclusionartifactIdnacos-client/artifactIdgroupIdcom.alibaba.nacos/groupId/exclusion/exclusions/dependencydependencygroupIdcom.zwm/groupIdartifactIdcommon-api/artifactIdversion1.0-SNAPSHOT/versionscopecompile/scope/dependency/dependencies /project 消费者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.xsdparentartifactIddubbo-demo/artifactIdgroupIdcom.zwm/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdconsumer/artifactIddependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!--nacos配置中心--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependency!--nacos注册中心--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdexclusionsexclusionartifactIdhttpclient/artifactIdgroupIdorg.apache.httpcomponents/groupId/exclusion/exclusions/dependency!--dubbo与springboot自动装配starter--dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-spring-boot-starter/artifactIdversion2.7.8/versionexclusionsexclusiongroupIdlog4j/groupIdartifactIdlog4j/artifactId/exclusionexclusionartifactIdspring-context/artifactIdgroupIdorg.springframework/groupId/exclusion/exclusions/dependency!--dubbo - nacos注册--dependencygroupIdcom.alibaba/groupIdartifactIddubbo-registry-nacos/artifactIdversion2.7.7/versionexclusionsexclusionartifactIdnacos-client/artifactIdgroupIdcom.alibaba.nacos/groupId/exclusion/exclusions/dependencydependencygroupIdcom.zwm/groupIdartifactIdcommon-api/artifactIdversion1.0-SNAPSHOT/versionscopecompile/scope/dependency/dependencies /project common-api的pom里面就不需要特殊的配置了。 接下来看nacos、dubbo的属性配置。 服务提供者application.yaml server:port: 8081 spring:application:name: dubbo-provider2 #应用名称cloud:nacos:discovery:server-addr: 127.0.0.1:8848 #nacos服务与发现地址enabled: false #设置false 关闭nacos服务注册与发现 让dubbo自己往nacos进行注册 # dubbo configuration dubbo:registry:address: nacos://127.0.0.1:8848use-as-config-center: false #不使用配置中心 要不他会往配置中心注册一个当前application.name的配置protocol:name: dubboport: -1 #自动创建端口 两个服务提供者配置基本一样除了端口和应用名称外。 消费者application.yaml server:port: 8082 spring:application:name: spring-boot-dubbo-consumercloud:nacos:discovery:enabled: false #设置false属性 不让nacos自己注册 让dubbo去注册server-addr: 127.0.0.1:8848group: DEFAULT_GROUP# dubbo configuration dubbo:registry:address: nacos://127.0.0.1:8848use-as-config-center: false #不使用配置中心 要不他会往配置中心注册一个当前application.name的配置protocol:name: dubboport: -1cloud:subscribed-services: dubbo-provider1,dubbo-provider2 #配置订阅服务多个服务用,隔开,不配置默认订阅注册中心所有服务项目需要的相关配置基本就配置完成了下面简单看下代码 common-api里面就是简单的定义了接口 package com.zwm.api;public interface DemoService {String getString(String name); }服务提供者两个服务基本一样就是实现了上面的接口 先看服务提供者的启动类 package com.zwm;import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;/*** Hello world!*/ SpringBootApplication EnableDubbo(scanBasePackages com.zwm.service) public class Provider1Application {public static void main(String[] args) {SpringApplication.run(Provider1Application.class, args);} }package com.zwm.service.impl;import com.zwm.api.DemoService; import org.apache.dubbo.config.annotation.DubboService;DubboService public class ProviderServiceTest implements DemoService {Overridepublic String getString(String name) {return provider1 say: hello! name;} }注意上面的DubboService注解这个很重要用于暴露服务。启动类上面需要添加EnableDubbo服务提供者才需要添加消费者启动类不需要开启dubboscanBasePackages com.zwm.service)这个如果配置文件里面配置了扫包的路径这里可以不需要。 消费者去调用暴露的服务 package com.zwm.controller;import com.zwm.api.DemoService; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;import javax.websocket.server.PathParam;RestController public class ConsumerDemoController {DubboReferenceprivate DemoService demoService;GetMapping(/demo)public String hello(PathParam(name) String name) {return demoService.getString(name);} }注意添加DubboReference注解 服务启动要先启动服务提供者启动后可以在nacos上看到注册的服务 点开详情可以查看详细的信息端口号、应用名称、接口方法定义等等。 如果在启动的过程中出现了 Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass。 那么这个时候需要在启动的时候添加如下参数--add-opens java.base/java.langALL-UNNAMED 再启动另一个服务提供者 这时候就会看到另一个服务提供者也上来了大家可能会发现名称有点不一样有一个实例数还是2那是因为其中一个服务提供者暴露了两个服务。 接下来启动消费者   这个时候消费者也上来了可以在浏览器输入地址进行访问测试http://localhost:8082/my?namezwm123 如果你也能看到这样的效果那么恭喜大家springcloud基于Nacos组件整合Dubbo框架就实现了。 如果大家觉得配置起来很麻烦也可以直接下载https://download.csdn.net/download/javaweiming/90265288 相互学习、共同进步...
http://www.hkea.cn/news/14568825/

相关文章:

  • 开发网站需要多少人快速提高网站排名
  • 做爰网站1000部php做商品网站
  • 做个购物网站多少钱电子商务营销策划方案
  • 腾讯公司网页淘宝seo关键词的获取方法有哪些
  • 国家排污许可网站台账怎么做p2p理财网站开发框架
  • 建设工程敎育那个网站wordpress添加微信微博等小工具
  • 建设网站需要哪些编程wordpress关闭rss
  • 合肥做网站的公视频网站开发的视频放在哪
  • 杭州建立网站h5美食制作网站模板下载
  • 旅游电子商务网站建设宁波建站
  • 湘潭建设网站短视频素材网
  • 网站优化流程图百度怎么做网站广告
  • 没有域名怎么搭建网站公司做网站 优帮云
  • 郑州市公司网站开发设计自己的电脑建网站
  • 带有后台的网站开发软件洛阳网站制作建设
  • 做网站有什么专业术语网络热词排行榜
  • 怎么样做网站才能适应手机屏幕wordpress谷歌加速插件
  • 站长工具亚洲中文精品wordpress手机端菜单设置
  • 怎样把自己做的网站上传深圳展览公司排行
  • 外贸云网站建设wordpress百度实时推送
  • 龙岗网站建设费用网站同时做竞价和seo
  • 建设网站的机构网站修改 iis6应用程序池
  • 什么是最经典最常用的网站推广方式网站内链案例
  • 满屏网站做多大尺寸室内装修设计公司排名
  • 建筑工程 技术支持 东莞网站建设网站服务费算什么费用
  • 郑州网站建设哪家有公司网站建设需要的材料
  • 毕节网站怎么做seowordpress指定侧边栏
  • 长辛店网站建设网站备案证书在哪里下载
  • wordpress网站数据备份云存储
  • app要有网站做基础知识百度app官方正式版