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

企业建网站有这个必要吗saas建站系统是怎么实现的

企业建网站有这个必要吗,saas建站系统是怎么实现的,织梦网站被攻击,网站建设美文Dubbo3程序的初步开发 Dubbo3升级的核心内容 易⽤性 开箱即⽤#xff0c;易⽤性⾼#xff0c;如 Java 版本的⾯向接⼝代理特性能实现本地透明调⽤功能丰富#xff0c;基于原⽣库或轻量扩展即可实现绝⼤多数的 微服务治理能⼒。更加完善了多语言支持#xff08;GO PYTHON R…Dubbo3程序的初步开发 Dubbo3升级的核心内容 易⽤性 开箱即⽤易⽤性⾼如 Java 版本的⾯向接⼝代理特性能实现本地透明调⽤功能丰富基于原⽣库或轻量扩展即可实现绝⼤多数的 微服务治理能⼒。更加完善了多语言支持GO PYTHON RUST) 超⼤规模微服务实践 ⾼性能通信Triple GRPC)⾼可扩展性 (SPI 多种序列化⽅式 多种协议)丰富的服务治理能⼒超⼤规模集群实例⽔平扩展 云原生友好 容器调度平台Kubernetes 将服务的组织与注册交给底层容器平台如 Kubernetes这是更云原 ⽣的⽅式。 Service Mesh 原有Mesh结构中通过Sidecar完成负载均衡、路由等操作但是存在链路的性能损耗⼤现有系统迁移繁琐等问题。 Dubbo3 引⼊Proxyless Mesh直接和I控制⾯交互[istio]通信。集成 ServiceMesh更为⽅便效率更高。 Dubbo3前言 代码结构及其术语解释 provider 功能提供者consumer 功能调⽤者【功能消费者】commons-api 通⽤内容 entity service接口registry 注册中⼼ 可选⽤于管理provider集群 开发步骤 开发commons-api 通⽤内容开发provider 功能提供者开发 consumer 功能调⽤者【功能消费者】如需要注册中心开发registry 注册中⼼ 本专题所使用软件版本 JDK使用了两种JDKJDK8和JDK17 Maven:3.8.7 Dubbo:3.2.0 JDK与Dubbo版本的关系 1. JDK8 与 Dubbo3.1.x以前的版本匹配在使⽤Zookeeper注册作为注册中⼼时消费者会出现节点已经存在的异常https://github.com/apache/dubbo/issues/11077 2. JDK17 与 Dubbo3.1.x之前的版本搭配使⽤会出现如下问题a. JDK9之后的深反射问题需要通过JVM参数配置解决-Dio.netty.tryReflectionSetAccessibletrue--add-opensjava.base/jdk.internal.miscALL-UNNAMED--add-opensjava.base/java.nioALL-UNNAMED--add-opensjava.base/java.langALL-UNNAMEDb. Dubbo3.2.0.beat4以前的版本使⽤的是Spring5.2.x 不能⽀持 JDK17会产⽣如下异常Unsupported class file major version 61 【major 61 对应 17 】版本需要升级到Dubbo3.2.0.beat5以上版本基于XML的Dubbo3程序开发 环境搭建 父项目pom.xml的依赖 dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.22/version /dependencydependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactIdversion1.7.32/version /dependencydependencygroupIdch.qos.logback/groupIdartifactIdlogback-classic/artifactIdversion1.2.9/version /dependencydependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo/artifactIdversion3.2.0/version /dependency首先开发公共模块-api模块 实体entity Data ToString NoArgsConstructor AllArgsConstructor public class User implements Serializable {private String name;private String password; }接口service public interface UserService {public boolean login(String name,String password); }开发provider模块 在provider模块添加依赖 dependenciesdependencygroupIdcom.sjdwz/groupIdartifactIddubbo-01-api/artifactIdversion1.0-SNAPSHOT/version/dependency /dependencies实现接口 public class UserServiceImpl implements UserService{Overridepublic boolean login(String name, String password) {System.out.println(UserServiceImpl.login name name password password);return false;} }创建Spring配置文件配置Dubbo相关内容使得UserServiceImpl可以跨虚拟机来调用 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:dubbohttp://dubbo.apache.org/schema/dubboxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd!-- 为dubbo起个名字要做到唯一可以被注册中心所管理 --dubbo:application namedubbo-02-provider/!-- 设置rpc相关的协议 使得可以网络通信 --dubbo:protocol namedubbo port20880/!-- 创建对象 --bean iduserService classcom.sjdwz.service.UserServiceImpl/!-- 发布dubbo服务 --dubbo:service interfacecom.sjdwz.service.UserService refuserService//beansSpring工厂启动类 运行起来发现会导出一个url dubbo://192.168.96.1:20880/com.sjdwz.service.UserService开发consumer模块 引入api模块依赖 dependenciesdependencygroupIdcom.sjdwz/groupIdartifactIddubbo-01-api/artifactIdversion1.0-SNAPSHOT/version/dependency /dependencies创建Spring配置文件 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:dubbohttp://dubbo.apache.org/schema/dubboxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd!-- 配置dubbo服务名称 --dubbo:application namedubbo-03-consuemer /!-- 获取远端服务url就是刚才导出的url--dubbo:reference interfacecom.sjdwz.service.UserService iduserServiceurldubbo://192.168.96.1:20880/com.sjdwz.service.UserService//beans创建启动类 启动起来就可以看到消费端和生产端相应的输出。 注意 消费端会有一个异常 16:40:41.156 [main] ERROR org.apache.dubbo.qos.server.Server - [DUBBO] qos-server can not bind localhost:22222, dubbo version: 3.2.0, current host: 192.168.96.1, error code: 7-4. This may be caused by , go to https://dubbo.apache.org/faq/7/4 to find instructions. 问题产生的原因 QosQuality of Serviceqos是Dubbo的在线运维命令可以对服务进⾏动态的配置、控制及查询Dubboo2.5.8新版本重构了telnettelnet是从Dubbo2.0.5开始⽀持的模块提供了新的telnet命令支持新版本的telnet端⼝与dubbo协议的端⼝是不同的端⼝默认为22222。正是因为这个问题如果在⼀台服务器里面启动provider是22222端⼝⽽consumer启动时就会报错了。xml解决方案 dubbo:parameter keyqos.enable valuetrue/ !-- 是否开启在线运维命令 -- dubbo:parameter keyqos.accept.foreign.ip valuefalse/ !-- 不允许其他机器的访问 -- dubbo:parameter keyqos.port value33333/ !-- 修改port--boot解决方案 dubbo.application.qos.enabletrue dubbo.application.qos.port33333 dubbo.application.qos.accept.foreign.ipfalse细节补充 协议、端口 provider基于dubbo协议 默认的端⼝是20880 dubbo:protocol namedubbo port20880/ 但是随着应⽤数量过⼤如果显示指定协议端⼝会容易造成端⼝冲突所以建议按照如下写法设置 端⼝ dubbo:protocol namedubbo port-1/应用程序运行过程浅析 为什么provider提供了UserService的实现而在另一个JVM中的consumer中可以调用Consumer中调用的到底是什么 实际上调用的是远端UserServiceImpl的代理对象 Proxy 代理的核心工作是什么 被consumer实际调用通过代理对consumer屏蔽网络通信的过程通信方式、协议、序列化数据传递。 基于SpringBoot的方式使用Dubbo SpringBoot应用Dubbo开发应用的核心思路分析 深度封装把公⽤的配置放置到application.yml中把个性的配置应⽤注解进⾏设置。 provider的处理 consumer的处理 编码开发 provider模块 创建新的module 再引入api模块和dubbo-starter dependencygroupIdcom.sjdwz/groupIdartifactIddubbo-01-api/artifactIdversion1.0-SNAPSHOT/version /dependency dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-spring-boot-starter/artifactIdversion3.2.0/version /dependency创建applicaion.yml将公共的配置放到这里面 个性化的配置使用注解来完成 启动类上加**EnableDubbo**注解 consumer模块 再引入api模块和dubbo-starter dependencygroupIdcom.sjdwz/groupIdartifactIddubbo-01-api/artifactIdversion1.0-SNAPSHOT/version /dependency dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-spring-boot-starter/artifactIdversion3.2.0/version /dependency创建applicaion.yml将公共的配置放到这里面 在启动类中加上注解 在测试类中进行测试 SpringBootTest class Dubbo05BootConsumerApplicationTests {//url是刚才输出的urlDubboReference(url dubbo://192.168.96.1:20880/com.sjdwz.service.UserService)private UserService userService;Testpublic void test1() {boolean ret userService.login(sjdwz, 123456);System.out.println(ret ret);} }EnableDubbo注解的作用 EnableDubbo ⽤于扫描DubboService并把对应的对象实例化、发布成RPC服务。扫描的路径应⽤这个注解的类启动类所在的包及其子包。如果DubboService注解修饰的类没有放到EnableDubbo注解修饰类当前包及其⼦包还希望能够扫描到它该如何处理 可以通过DubboComponentScan(basePackages {“org.sjdwz.service”})显示的指定扫描的路径yml进⾏配置扫描DubboService 并把对应的对象实例化发布成RPC服务。 dubbo.scan.base-packages 等同于 EnableDubbo DubboService注解的作用 应⽤DubboService注解修饰类型SpringBoot会创建这个类型的对象并发布成Dubbo服务。DubboService 等同于 Component(Service) Bean注解的创建对象的作⽤。 通过源码SingletonObjects可以验证DubboService a. 创建对象 等同于 Component(Service) Bean b. 发布成RPC服务后续开发过程中如果考虑兼容性建议实现类不仅仅要加⼊DubboService注解同时也要加⼊Service注解 DubboReference注解的作用 在Consumer端通过DubboReference注⼊远端服务的代理对象。DubboReference类似于原始Spring开发中Autowired注解的作⽤。
http://www.zqtcl.cn/news/767880/

相关文章:

  • 长网页网站信息技术教案 建设我们的网站
  • 免费网站建设可信吗wordpress divi布局
  • 网站百度不收录wordpress偽靜態
  • 沈阳php网站建网站需要学什么
  • WordPress多站点绑定域名百度帐号注册
  • 网站营销队伍网站建设明薇通网络
  • 做网站的公司重庆万网x5 wordpress
  • 印刷设计营销网站网站设置成黑白
  • 百度自助建站官网上海徐汇网站建设
  • 网站定制 北京贵阳网站建设公司哪家好
  • 如何做logo模板下载网站企业策划
  • 合肥做网站的公司讯登欧亚达网站是哪家公司做的
  • 网站模板带有sql后台下载企业网站建设平台的功能
  • 网站推广的实际案例电子商务网站建设的要求
  • 永平建设有限公司网站2023一般纳税人企业所得税怎么算
  • 创业网站推广怎么做简单的网站首页
  • 外贸网站模板 外贸网站制作如何推广宣传一个品牌
  • 中企动力企业邮箱 手机邮箱河南网站建设优化推广
  • 广州seo网站多少钱王野天津音乐广播电台图片
  • 东莞网站制作十强怎么做一个链接网站
  • 深圳网站设计 建设首选wordpress 获取父页面
  • 大兴企业网站建设公司wordpress谷歌字体优化
  • 哈尔滨建设银行网站网站建设运营服务商
  • 重庆本地建站企业网站建设流程及费用
  • 网站建设需要用到那些语言简述网站建设和推广评价指标
  • 17网站一起做 佛山印刷做网站网上接单
  • 网站建设步骤 优帮云网站建设首选定制开发
  • 专门做家居的网站国内企业网站设计
  • 做网站时怎么取消鼠标悬停性价比最高网站建设
  • 三网合一网站模板网站上内容列表怎么做