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

网站开发如何适应手机现实要求四川建设工程信息网官网

网站开发如何适应手机现实要求,四川建设工程信息网官网,设计师自己的网站,青岛网站搭建公司哪家好文章说明 本文内容整理自《孙哥说Dubbo系列视频课程》#xff0c;孙帅老师课程细致、全面、深入、性价比极高。B站搜孙帅suns可以找到对应的试听视频#xff0c;或者直接添加老师微信号suns45与他直接联系 一#xff1a;SpringBoot应用Dubbo开发应用的核心思路分析 深度封… 文章说明 本文内容整理自《孙哥说Dubbo系列视频课程》孙帅老师课程细致、全面、深入、性价比极高。B站搜孙帅suns可以找到对应的试听视频或者直接添加老师微信号suns45与他直接联系 一SpringBoot应用Dubbo开发应用的核心思路分析 深度封装把公共的配置放置到application.yml中把个性化得配置基于注解进行设置。 1Spring集成Dubbo的时候都有那些配置内容 Spring使用Dubbo的时候我们大致有四类非常核心的配置内容应用名、应用通信协议和端口号、Service发布为Rpc服务、Service实例化的Bean对象或者是代理对象 公共配置应用名、应用通信协议和端口号 个性化配置Service发布为Rpc服务、Service实例化的Bean对象或者是代理对象 配置示例 dubbo:application namedubbo-02-provider/ dubbo:protocol namedubbo port20880/ bean iduserService classcom.suns.service.UserServiceImpl/ dubbo:service interfacecom.suns.service.UserService refuserService/ dubbo:application namedubbo-03-consuemerdubbo:parameter keyqos.enable valuefalse/ /dubbo:application!--id指定的指定是消费者里边获取远端的服务的一个ID-- dubbo:reference interfacecom.suns.service.UserService iduserService urldubbo://192.168.8.1:20880/com.suns.service.UserService/ 2这些配置在SpringBoot整合Dubbo之后如何体现呢 首先想跟大家明确一个概念Spring在整合一些技术的时候会有大量的配置存在于XML配置当中。这些配置在使用SpringBoot整合之后仿佛一下子简化了很多。配置不会凭空减少的一部分原因是框架已经帮我们进行封装配置了另一部分是基于注解等其他形式进行简化了才让我们有了SpringBoot简化了技术资源整合的感觉 (一)provider的处理 1:公共配置抽取为YML spring:application:name: aaadubbo:application:name: aaaprotocol:name: dubboport: -1 补充说明 Dubbo与SpringBoot整合的时候给Dubbo服务起名字的话是有两种方式的1基于yml配置当红当中的那种配置这是最标准的配置方式。另外还有一种更加SpringBoot的方式就是上图中Spring开头的那个这两个起到的作用是玩全一致的。优先去找dubbo开头的那个配置如果那个没有找到默认会去找spring开头的那个配置项。二者写哪个都行写一个就完事了在我们后续使用SpringCloud的里边也需要设置应用名spring开头是非常方便的Dubbo服务和Spring服务名称保持了一致。 dubbo:application:name spring:application:name作用一致但是后者功能强大 2)个性化配置基于注解解决 DubboService public class UserServiceImpl implements UserService {Overridepublic boolean login(String name, String password) {System.out.println(UserServiceImpl.login name name password password);return false;} } 个性化配置基于DubboService注解即可这样的一个注解就起到了两个作用注册Spring容器实例的标签将Service发布为一个Dubbo服务。 (二)consumer的处理 1:公共配置抽取为YML spring:application:name: consumerdubbo:protocol:qos-enable: false 2)个性化配置基于注解解决 DubboReference(urldubbo://192.168.8.1:20880/com.suns.service.UserService) public UserService userService; 这种方式可以注入给 二SpringBoot应用与Dubbo开发整合编码开发 1构建多模块的SpringBoot应用 (一)引入依赖jar包 dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-spring-boot-starter/artifactIdversion3.2.0/version/dependencydependencygroupIdcom.suns/groupIdartifactIddubbo-01-api/artifactIdversion1.0-SNAPSHOT/version/dependency dubbo的SpringBoot启动器提供者和消费者都需要使用的启动器。 (二)构建provider模块 公共配置 共有配置application.yml spring:application:name: DUBBO-04-BOOT-PROVIDER dubbo:protocol:name: dubboport: -1 个性化配置DubboService DubboService public class UserServiceImpl implements UserService {Overridepublic boolean login(String name, String password) {System.out.println(UserServiceImpl.login name name password password);return false;} } 启动类EnableDubbo SpringBootApplication EnableDubbo public class Dubbo04BootProviderApplication {public static void main(String[] args) {SpringApplication.run(Dubbo04BootProviderApplication.class, args);}} 2023-08-02 21:32:18.707 INFO 12844 --- [ main] o.a.d.remoting.transport.AbstractServer : [DUBBO] Start NettyServer bind /0.0.0.0:20880, export /192.168.8.1:20880, dubbo version: 3.2.0, current host: 192.168.8.1 2023-08-02 21:32:18.710 INFO 12844 --- [ main] .c.m.ConfigurableMetadataServiceExporter : [DUBBO] The MetadataService exports urls : [dubbo://192.168.8.1:20880/org.apache.dubbo.metadata.MetadataService?anyhosttrueapplicationDUBBO-04-BOOT-PROVIDERbackgroundfalsebind.ip192.168.8.1bind.port20880delay0deprecatedfalsedubbo2.0.2dynamictrueexecutor-management-modeisolationfile-cachetruegenericfalsegetAndListenInstanceMetadata.1.callbacktruegetAndListenInstanceMetadata.returntruegetAndListenInstanceMetadata.senttruegroupDUBBO-04-BOOT-PROVIDERinterfaceorg.apache.dubbo.metadata.MetadataServicemethodsexportInstanceMetadata,getAndListenInstanceMetadata,getExportedServiceURLs,getExportedURLs,getExportedURLs,getExportedURLs,getExportedURLs,getExportedURLs,getInstanceMetadataChangedListenerMap,getMetadataInfo,getMetadataInfos,getMetadataURL,getServiceDefinition,getServiceDefinition,getSubscribedURLs,isMetadataService,serviceName,toSortedStrings,toSortedStrings,versionpid12844prefer.serializationfastjson2,hessian2qos.enabletrueregisterfalserelease3.2.0revision3.2.0sideprovidertimestamp1690983137775version1.0.0], dubbo version: 3.2.0, current host: 192.168.8.1 2023-08-02 21:32:18.712 INFO 12844 --- [ main] o.a.d.r.c.m.ServiceInstanceMetadataUtils : [DUBBO] Start registering instance address to registry., dubbo version: 3.2.0, current host: 192.168.8.1 2023-08-02 21:32:18.719 INFO 12844 --- [ main] o.a.d.c.d.DefaultApplicationDeployer : [DUBBO] Dubbo Application[1.1](DUBBO-04-BOOT-PROVIDER) is ready., dubbo version: 3.2.0, current host: 192.168.8.1 2023-08-02 21:32:18.725 INFO 12844 --- [ main] com.suns.Dubbo04BootProviderApplication : Started Dubbo04BootProviderApplication in 3.018 seconds (JVM running for 3.866) 2023-08-02 21:32:18.733 INFO 12844 --- [pool-1-thread-1] .b.c.e.AwaitingNonWebApplicationListener : [Dubbo] Current Spring Boot Application is await...(三)构建consumer模块 公共配置application.yml 共有配置application.yml spring:application:name: DUBBO-05-BOOT-CONSUMERdubbo:application:qos-enable: false 个性化配置DubboService DubboReference(url dubbo://192.168.8.1:20880/com.suns.service.UserService)private UserService userService; 通过Junit的方式去测试 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency SpringBootTest class Dubbo05BootConsumerApplicationTests {//通过此注解进行注入DubboReference(url dubbo://192.168.50.62:20880/com.suns.service.UserService)private UserService userService;Testvoid contextLoads() {}Testpublic void test1() {boolean ret userService.login(xiaohei, 123456);System.out.println(ret ret);} }test1方法执行结果 2023-08-02 22:06:43.411 INFO 6584 --- [lientWorker-4-1] o.a.d.r.t.netty4.NettyClientHandler : [DUBBO] The connection of /192.168.8.1:29212 - /192.168.8.1:20880 is established., dubbo version: 3.2.0, current host: 192.168.8.1 2023-08-02 22:06:43.419 INFO 6584 --- [ main] o.a.d.remoting.transport.AbstractClient : [DUBBO] Successfully connect to server /192.168.8.1:20880 from NettyClient 192.168.8.1 using dubbo version 3.2.0, channel is NettyChannel [channel[id: 0xa68c5420, L:/192.168.8.1:29212 - R:/192.168.8.1:20880]], dubbo version: 3.2.0, current host: 192.168.8.1 2023-08-02 22:06:43.419 INFO 6584 --- [ main] o.a.d.remoting.transport.AbstractClient : [DUBBO] Start NettyClient /192.168.8.1 connect to the server /192.168.8.1:20880, dubbo version: 3.2.0, current host: 192.168.8.1 2023-08-02 22:06:43.467 INFO 6584 --- [ main] org.apache.dubbo.config.ReferenceConfig : [DUBBO] Referred dubbo service: [com.suns.service.UserService]. its not GenericService reference, dubbo version: 3.2.0, current host: 192.168.8.1 2023-08-02 22:06:43.468 WARN 6584 --- [ main] o.a.d.r.client.metadata.MetadataUtils : [DUBBO] Remote Metadata Report Server is not provided or unavailable, will stop registering service definition to remote center!, dubbo version: 3.2.0, current host: 192.168.8.1, error code: 1-39. This may be caused by , go to https://dubbo.apache.org/faq/1/39 to find instructions. ret false 记录一次失败的原因 消费者日志 org.apache.dubbo.rpc.RpcException: Failed to invoke the method login in the service com.suns.service.UserService. Tried 3 times of the providers [192.168.8.1:20880] (1/1) from the registry 192.168.8.1:20880 on the consumer 192.168.8.1 using the dubbo version 3.2.0. Last error is: Failed to invoke remote method: login, provider: dubbo://192.168.8.1:20880/com.suns.service.UserService?applicationDUBBO-05-BOOT-CONSUMERbackgroundfalseexecutor-management-modeisolationfile-cachetrueinterfacecom.suns.service.UserServicepid13808qos.enablefalseregister.ip192.168.8.1sideconsumerstickyfalseunloadClusterRelatedfalse, cause: org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: RpcInvocation [methodNamelogin, parameterTypesnull]at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:115)at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:341)at org.apache.dubbo.rpc.cluster.router.RouterSnapshotFilter.invoke(RouterSnapshotFilter.java:46)at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:331)at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:101)at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:331)at org.apache.dubbo.rpc.cluster.filter.support.MetricsClusterFilter.invoke(MetricsClusterFilter.java:51)at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:331)at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:52)at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:331)at org.apache.dubbo.spring.security.filter.ContextHolderParametersSelectedTransferFilter.invoke(ContextHolderParametersSelectedTransferFilter.java:41)at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:331)at org.apache.dubbo.rpc.cluster.filter.support.ConsumerClassLoaderFilter.invoke(ConsumerClassLoaderFilter.java:40)at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:331)at org.apache.dubbo.rpc.cluster.filter.support.ConsumerContextFilter.invoke(ConsumerContextFilter.java:118)at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:331)at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:194)at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$ClusterFilterInvoker.invoke(AbstractCluster.java:91)at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:103)at org.apache.dubbo.rpc.cluster.support.wrapper.ScopeClusterInvoker.invoke(ScopeClusterInvoker.java:124) 提供者日志 java.io.IOException: Service com.suns.service.UserService:0.0.0 not found, invocation rejected.at org.apache.dubbo.rpc.protocol.PermittedSerializationKeeper.checkSerializationPermitted(PermittedSerializationKeeper.java:55) ~[dubbo-3.2.0.jar:3.2.0]at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:148) ~[dubbo-3.2.0.jar:3.2.0]at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:102) ~[dubbo-3.2.0.jar:3.2.0]at org.apache.dubbo.rpc.protocol.dubbo.DubboCodec.decodeBody(DubboCodec.java:173) [dubbo-3.2.0.jar:3.2.0] 最终原因 SpringBootApplication EnableDubbo //DubboComponentScan(basePackages {org.suns.service}) public class Dubbo04BootProviderApplication {public static void main(String[] args) {SpringApplication.run(Dubbo04BootProviderApplication.class, args);}}服务没有被注册也没有被暴露调用的时候才会抛此异常
http://www.zqtcl.cn/news/223561/

相关文章:

  • 建设工程网站tcwordpress 标题入库
  • 网站开发简直广州网站制作后缀
  • 上海短视频seo优化网站wordpress 构建知识库
  • 做的网站图片不显示2018做网站赚钱不
  • 国内建站平台网站建设是什么科目
  • 响应式个人网站psd建设银行网站联系电话
  • 大型网站开发实战品牌网站建设费用要多少
  • 昆山网站建设昆山html5制作手机端页面
  • 做网站的国标有哪些达州网络推广
  • 站内seo和站外seo区别wordpress演示数据
  • 建设旅游网站财务分析创意设计公司网站
  • 张家港网站优化wordpress调用图片上传
  • 做网站要商标吗房产网站 设计方案
  • 做网站的费用怎么做账客户案例 网站建设
  • 怎么查询网站的备案号城乡建设杂志网站
  • 婚恋网站哪家做的最好北斗导航2022最新版手机版
  • 别墅效果图网站重庆金融公司网站建设
  • 中兴能源建设有限公司网站企业营销策划及推广
  • 外贸英文网站制作WordPress对接微信公众号
  • 推广网站建设花费得多少钱哪些平台可以发布软文
  • wordpress网站检测购物app大全
  • 遵义建设厅官方网站 元丰兰州网站设计有限公司
  • 芜湖做网站的公司排名贵阳好的网站建设公司
  • 网站建设 骏域网站建设专家最有效的15个营销方法
  • 大连品牌官网建站为什么有些网站更新的信息看不到
  • 富阳市网站域名申请好了怎么做网站
  • 做药物分析必须知道的网站网站攻击一般有那些
  • 一般网站做哪些端口映射那个网站做境外自由行便宜
  • 网站的建站过程公司seo是什么意思
  • 胜利油田局域网主页入口seo自学网官网