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

可以用来注册网站域名的入口是怎么找电商平台合作

可以用来注册网站域名的入口是,怎么找电商平台合作,深圳房地产最新消息,电子商务网站建设与管理课程评价说明#xff1a;Apache Dubbo 是一款 RPC 服务开发框架#xff0c;用于解决微服务架构下的服务治理与通信问题#xff0c;官方提供了 Java、Golang 等多语言 SDK 实现。 本文介绍Dubbo的简单使用及一些Dubbo功能特性#xff0c;注册中心使用的是ZooKeeper#xff0c;可在…说明Apache Dubbo 是一款 RPC 服务开发框架用于解决微服务架构下的服务治理与通信问题官方提供了 Java、Golang 等多语言 SDK 实现。 本文介绍Dubbo的简单使用及一些Dubbo功能特性注册中心使用的是ZooKeeper可在官网下载。 另外在阿里巴巴发出的《微服务治理技术白皮书》中各种注册中心的区别如下 环境搭建 首先搭建一个ZooKeeper Dubbo的项目 1下载ZooKeeper 在上面提供的官网上下载ZooKeeper解压到一个没有中文的路径下 因为默认提供的配置文件是一个模板解压后需要手动设置一下将zookeeper默认的配置文件zoo_sample.cfg复制一份并将文件名改为zoo.cfg 另外修改zoo.cfg配置文件中的这行配置默认的是Linux文件路径修改为当前目录的上级目录…/data 启动选择安装目录下bin文件夹下的zkServer.cmd文件可双击启动或者在该目录下打开CMD窗口执行 没有报错运行结果如下表示启动成功 如果启动失败提示此时不应有 jdk参考http://t.csdn.cn/52O2K 2创建项目 创建一个ZookperDubbo的项目有两个微服务一个用户服务UserService一个订单服务OrderService 订单服务消费者Consumer没有Service层直接使用用户服务查询用户信息、用户名 用户服务提供者Provider没有Controller层提供查询用户信息、用户名的接口 订单服务OrderService Controlle层两个接口一个用于查找用户名一个用于查找用户。实现暂时空着待会儿使用Dubbo调用用户服务对应的接口 RestController RequestMapping(order) public class OrderController {GetMapping(/name)public String getUserName(Integer id){return userService.getUserName(id);}GetMapping(/user)public User getUser(Integer id){return userService.getUser(id);} }用户服务UserService UserService实现类实现两个接口分别是查询用户名返回固定值查询用户返回固定用户对象 Service public class UserServiceImpl implements UserService {Overridepublic String getUserName(Integer id) {return getUserName;}Overridepublic User getUser(Integer id) {User user new User(30, 张三, 12456);return user;} }3配置 使用Dubbo前需先导入依赖我这里直接在父模块中添加如下 ?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/modelVersiongroupIdcom.hzy/groupIdartifactIduser-provider/artifactIdversion1.0-SNAPSHOT/versionpackagingjar/packagingparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.2.1.RELEASE/versionrelativePath//parentpropertiesjava.version8/java.versionspring-boot.version2.2.1.RELEASE/spring-boot.versiondubbo.version2.7.5/dubbo.versioncurator.version2.12.0/curator.versionmaven.compiler.source11/maven.compiler.sourcemaven.compiler.target11/maven.compiler.target/propertiesdependencies!--MVC框架--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!--dubbo--dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-spring-boot-starter/artifactIdversion${dubbo.version}/version/dependencydependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-dependencies-zookeeper/artifactIdversion${dubbo.version}/versiontypepom/typeexclusionsexclusiongroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactId/exclusion/exclusions/dependencydependencygroupIdorg.apache.curator/groupIdartifactIdcurator-framework/artifactIdversion${curator.version}/version/dependencydependencygroupIdorg.apache.curator/groupIdartifactIdcurator-recipes/artifactIdversion${curator.version}/version/dependency/dependencies /project设置各个服务的配置两方面一方面是zookeeper一方面是dubbo的如下 OrderService server:port: 8081 spring:application:name: dubbo-consumer dubbo:registry:address: zookeeper://localhost:2181 # 连接到注册中心protocol:name: dubbo # 指定的协议port: 28081 # 指定的端口scan:basePackages: com.hzy.controller # 接口列表和接口中的方法列表UserService server:port: 8082 spring:application:name: dubbo-provider dubbo:registry:address: zookeeper://localhost:2181 # 连接到注册中心protocol:name: dubbo # 指定的协议port: 28082 # 指定的端口scan:basePackages: com.hzy.controller # 接口列表和接口中的方法列表4启动 依次 启动用户服务、订单服务没有报错说明项目注册到zookeeper没有问题 打开zookeeper客户端输入 ls /可查看到dubbo项再输入ls /dubbo可查看到注册的服务 5使用 使用Dubbo非常简单只需如下操作 第一步修改提供者Service注解改为Dubbo依赖提供的 第二步将提供者的UserService接口复制一份到消费者这边来注意结构要平行相同 第三步在消费者Controller层注入引用UserService接口 第四步直接调用UserService中的接口 6测试 重启两个服务注意先启动提供者使用fastRequest测试 获取用户名 获取用户信息 可以看到两个接口都可以正常返回说明zookeeperdubbo的结合已完成 Dubbo特性 以下介绍Dubbo中的一些特性更多特性用法可在官网中查看 1启动检查 上面一直提到需要先启动提供者再启动消费者这是因为消费者服务依赖于提供者在启动时Dubbo会进行检查发现提供者找不到会报错程序启动失败。 可在消费者这边添加如下配置取消启动检查 # 取消消费者检查 dubbo:consumer:check: false再次启动就没有问题了 2地址缓存 地址缓存是指消费者与提供者联系建立起来了服务消费者会把提供者的接口地址缓存一份此时注册中心宕机该请求仍可以正常访问 发送请求没得问题 关闭注册中心zookeeper 两个服务一直在打印未知错误 此时访问刚刚的那个请求仍然可以成功 换个重启服务后没发过的请求也可以访问 3对象传输 使用Dubbo可以传输自定义对象但需要注意对象需要实现序列号接口不然会报错 根据经验凡是涉及到传输对象都需要实现序列化接口并且最好添加全参构造、无参构造因为有些工具底层可能是通过对象的全参构造来帮助我们实例化对象的。 4连接超时 Dubbo默认设置的连接超时是1秒即当消费者发送的请求1秒未得到返回即为超时这个超时是可以设置的。 在提供者这边方法内设置2秒睡眠 消费者发送请求返回超时错误 连接超时可以在消费者、提供者设置并且可以在接口、方法上设置优先级是消费者大于提供者方法大于接口如下我在消费者Reference、提供者Service双方设置超时时长 消费者设置1500ms 提供者设置3000ms 重启服务发送请求依旧报错说明提供者设置的超时没有起作用超时是以消费者的1500ms为准 互调设置消费者设置3000ms提供者1500ms重启服务可以正常访问 5重试次数 重试次数在之前连接超时错误的信息可以看到一个“Tried 3 times”表示尝试了3次默认重试2次 同样这个也可以在消费者、提供者双方设置 提供者 // 设置重试10次 Service(timeout 3000, retries 10)消费者 // 设置重试5次 Reference(timeout 1500, retries 5) private UserService userService;同样优先级是消费者大于提供者 注意 需要注意哦不是所有操作都可以设置重试次数的应该需要考虑当前请求所对应的操作是否为幂等性操作即执行一次或多次结果都相同不然会造成数据混乱。以数据库的增删改查操作为例 增每增加一条数据数据库表都是变化的所以为非幂等性 删与增同理是非幂等性 改视情况而定看SQL语句是怎么写的如果是number 1这样的是非幂等性如果是“set name #{name} where id #{id}”这样的就是幂等性的 查多次查询没有其他操作参与数据库表都是一样的所以是幂等性操作 6多版本 多版本是指如果存在多个提供者、消费者时可以指定版本信息让提供者指服务指定的消费者消费者指消费指定的服务者 消费者不指定版本信息 Reference(timeout 3000, retries 5) private UserService userService;提供者指定版本信息“V1.0” Service(timeout 3000, retries 10, version V1.0)请求失败提示没有可用的提供者 修改消费者版本号为“V1.0” Reference(timeout 3000, retries 5,version V1.0)请求访问成功 使用Dubbo的这种特性可以实现灰度发布即版本更新不是一下全部更新而是在系统中设置多个版本如新版本的接口设置10个旧版本的接口设置5个实现“缓更新慢发布”减少系统出现异常的风险比如一些金融、支付类的软件。 7负载均衡 可使用“loadbalance”属性设置接口的负载均衡策略支持以下四种策略 RandomLoadBalance加权随机默认算法默认权重相同 RoundRobinLoadBalance加权轮询默认权重相同 LeastActiveLoadBalance最少活跃优先加权随机能者多劳 ConsistentHashLoadBalance一致性Hash确定入参确定提供者适用于有状态的请求 注意使用并不是直接new它们类而是进入到它们对应的类里面查看它们的这行代码中写的名称 将该名称作为负载均衡属性的值 Reference(loadbalance random) private UserService userService;在代码中打印一行标识开启两个服务发送十几条请求可以看到两边服务均有访问数量不等 提供者消费者两边都可以设置都有效 8失败降级 失败降级是指访问失败时返回一个降级方案即“打了折扣”的响应结果使用mock属性设置如下 Reference(mock return 请求错误) private UserService userService;另外还可以有其他几种用法 # 调用失败返回请求错误 mock return 请求错误# 不发起远程调用直接返回null不管请求成功与否都返回null mock force:return null# 发起远程调用失败后返回null mock fail:return null# 发起远程调用失败后抛异常 mock throw# 调用失败后使用自己实现的降级方案 mock 自定义类的全限定类名其中最后一种方法最好用搞一下 降级降级方案实现接口就可以 public class UserServiceMock implements UserService {Overridepublic String getUserName(Integer id) {return 降级方案;}Overridepublic User getUser(Integer id) {return new User(-1,降级对象,降级密码);} }mock设置为降级方案的全限定类名 Reference(mock com.hzy.mock.UserServiceMock)private UserService userService;测试连接超时走了降级 9集群容错 使用场景官方多个服务器部署同一集群中运行同一应用程序如果一台服务器出现故障其他服务器将接管负载确保应用程序对用户仍然可用。 Failover Cluster默认设置失败自动切换当出现失败重试其它服务器。通常用于读操作但重试会带来更长延迟。可通过 retries“2” 来设置重试次数(不含第一次)。 其他配置如下 使用如下 Reference(cluster failover) private UserService userService;同样也是使用对应的策略就进入到对应的类中使用对应的名称作为属性值 NacosDubbo Nacos作为注册中心Dubbo使用与ZooKeeper基本相同在使用上不同的地方只有以下两点 导入的依赖配置不同 注解不同ZooKeeper使用Service、Reference注解Nacos使用DubboService、DubboReference注解 总结 总结成一句话Dubbo是替代Feign的 另外提一句Dubbo是使用自定义的协议所以如果需要考虑提高Dubbo效率可以从传输协议、对象序列化方式这些方面入手 文中代码的GitHub地址https://github.com/Heapfiy/dubbo-simple.git
http://www.huolong8.cn/news/183626/

相关文章:

  • 写作网站投稿平台163企业邮箱登录入口官网
  • 带地板翻转的网站怎么做asp资源下载网站
  • 网站怎么做百度推广做网站产品图片素材
  • 系部网站建设需求分析百度免费广告发布平台
  • 网站制造wordpress播放纯音乐
  • 太原网站建设随州网站建设平台用乐云践新
  • 做百度推广网站咱们做wordpress 子站点函数
  • 做网站如何放入图像龙岩网站设计 都找推商吧系统
  • 网站域名 过期宁波网站建
  • 网站备案 信息查询天津网站制作报价
  • 怎样查看网站开发语言衡阳关键词优化首选
  • 最新远程网站建设服务器电子商务网站建设调查分析
  • 网站策划与运营课程认知二维码制作生成器
  • 绍兴网站建设seo网络销售是做什么
  • 17做网站广州新塘江苏 网站 备案
  • 公司网站开发的流程wordpress配置ftp服务器配置
  • 如何注册个做电影的网站简单的网页开发
  • 特色专业建设验收网站wordpress图片延迟加载插件
  • 网站建设需要学习课程是网站推广的案例
  • 桂林网站制作培训学校免费刷推广链接的软件
  • 做纺织机械的网站域名新闻资讯网站怎么做
  • 宁波建设工程检测行业协会网站余姚网站建设开发
  • 网站建设优酷网站建设经费
  • 保定市城乡建设局官方网站外贸网站建设 泰州
  • 做年会的网站企业运营管理系统
  • 吴忠市建设局网站WordPress 站点图标链接
  • 返回json数据的网站豌豆荚app下载 官网
  • 中企动力和东莞朝阳做的网站对比wordpress封装易语言
  • 洛阳网站优化云闪付小程序开发平台
  • 修改网站域名网站主机空间