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

设置网站的黑名单怎么做深圳小程序建设公司

设置网站的黑名单怎么做,深圳小程序建设公司,做网站会员金字塔系统,个旧建设局信息公开门户网站Dubbo 简介Dubbo的快速入门Dubbo的基本架构安装DubboAdmin入门案例Dubbo的最佳实践 Dubbo的高级特性启动检查多版本超时与重试负载均衡SpringCloud整合Dubbo案例 简介 Dubbo是阿里巴巴公司开源的一个高性能、轻量级的Java RPC框架。 致力于提高性能和透明化的RPC远程服务调用方… Dubbo 简介Dubbo的快速入门Dubbo的基本架构安装DubboAdmin入门案例Dubbo的最佳实践 Dubbo的高级特性启动检查多版本超时与重试负载均衡SpringCloud整合Dubbo案例 简介 Dubbo是阿里巴巴公司开源的一个高性能、轻量级的Java RPC框架。 致力于提高性能和透明化的RPC远程服务调用方案以及SOA服务治理方案 官网 目前Dubbo在企业中有两种开发思路 基于SOA思想 将传统单一应用拆分为Web消费者模块和Service提供者模块基于Dubbo通信 辅助SpringCloud架构提升效率 Dubbo基于TCP传输层协议效率更高。可以替换Feign提升高并发压力 Dubbo的快速入门 Dubbo的基本架构 服务提供者在启动时向注册中心注册自己提供的服务消费者在启动时向注册中心订阅自己所需的服务注册中心返回服务提供者地址列表给消费者如果有变更注册中心将基于长连接推送变更数据给消费者服务消费者从提供者地址列表中基于负载均衡算法选择提供者进行调用。服务消费者和提供者在内存中累积调用次数和调用时间定时每分钟发送一次统计数据到监控中心 安装DubboAdmin DubboAdmin是阿里巴巴管理提供的管理控制台可以实现服务查询详细展示服务测试等功能。皆有DubboAdmin可以更好的帮助开发人员对服务进行管理和监控 DubboAdmin的源代码托管在GitHub上可以通过命令拉取修改配置并运行 # 下载代码git clone https://gitcode.net/mirrors/apache/dubbo-admin.git # 在dubbo-admin-server/src/main/resources/application.properties中指定注册中心 # 构建mvn clean package -D maven.test.skiptrue #启动mvn --projects dubbo-admin-server spring-boot:run 或者cd dubbo-admin-distribution/target; java -jar dubbo-admin-0.1.jar # 访问http://localhost:8080 # 默认用户名与密码为root入门案例 创建数据库 CREATE DATABASE dubbo-demo ;USE dubbo-demo;DROP TABLE IF EXISTS tb_order;CREATE TABLE tb_order (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 订单id,userId bigint(20) NOT NULL COMMENT 用户id,name varchar(100) DEFAULT NULL COMMENT 商品名称,price bigint(20) NOT NULL COMMENT 商品价格,num int(10) DEFAULT 0 COMMENT 商品数量,PRIMARY KEY (id) USING BTREE,UNIQUE KEY username (name) USING BTREE ) ENGINEInnoDB AUTO_INCREMENT109 DEFAULT CHARSETutf8 ROW_FORMATCOMPACT;insert into tb_order(id,userId,name,price,num) values (101,1,Apple 苹果 iPhone 12 ,699900,1),(102,2,雅迪 yadea 新国标电动车,209900,1),(103,3,骆驼CAMEL休闲运动鞋女,43900,1),(104,4,小米10 双模5G 骁龙865,359900,1),(105,5,OPPO Reno3 Pro 双模5G 视频双防抖,299900,1),(106,6,美的Midea) 新能效 冷静星II ,544900,1),(107,2,西昊/SIHOO 人体工学电脑椅子,79900,1),(108,3,梵班FAMDBANN休闲男鞋,31900,1);DROP TABLE IF EXISTS tb_user;CREATE TABLE tb_user (id bigint(20) NOT NULL AUTO_INCREMENT,username varchar(100) DEFAULT NULL COMMENT 收件人,address varchar(255) DEFAULT NULL COMMENT 地址,PRIMARY KEY (id) USING BTREE,UNIQUE KEY username (username) USING BTREE ) ENGINEInnoDB AUTO_INCREMENT7 DEFAULT CHARSETutf8 ROW_FORMATCOMPACT;insert into tb_user(id,username,address) values (1,柳岩,湖南省衡阳市),(2,文二狗,陕西省西安市),(3,华沉鱼,湖北省十堰市),(4,张必沉,天津市),(5,郑爽爽,辽宁省沈阳市大东区),(6,范兵兵,山东省青岛市); 导入工程 需求使用Dubbo构建分布构架完成根据用户id查询用户 搭建服务提供者user-provider 创建提供者模块并引入依赖 dependenciesdependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependency!--mybatis--dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactId/dependency!--dubbo的起步依赖--dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-spring-boot-starter/artifactIdversion2.7.8/version/dependencydependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-registry-nacos/artifactIdversion2.7.8/version/dependency /dependencies编写引导类 package com.xiaowu.user;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;MapperScan(com.xiaowu.user.mapper) SpringBootApplication public class UserProviderApplication {public static void main( String[] args ) {SpringApplication.run(UserProviderApplication.class,args);} }将serviceMapperdomain导入到提供者模块中 将UserService暴露为Dubbo服务 //暴露Dubbo服务 DubboService public class UserServiceImpl implements UserService {Autowiredprivate UserMapper userMapper;public User queryById(Long id) {return userMapper.findById(id);} }application.yml配置 server:port: 18081 spring:datasource:url: jdbc:mysql://localhost:3306/dubbo-demo?useSSLfalseusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driverapplication:name: user-provider logging:level:com.xiaowu: debugpattern:dateformat: HH:mm:ss:SSS# 配置Dubbo提供者 dubbo:protocol:name: dubbo # 协议port: 20881 # dubbo端口registry:address: nacos://127.0.0.1:8848 #注册中心地址scan:base-packages: com.xiaowu.user.service # dubbo注解的包扫描搭建服务消费者user-consumer 创建user-consumer模块导入依赖 dependenciesdependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!--dubbo的起步依赖--dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-spring-boot-starter/artifactIdversion2.7.8/version/dependencydependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-registry-nacos/artifactIdversion2.7.8/version/dependency /dependencies将Controllerservice接口导入到消费者模块中 配置引导类 package com.xiaowu.user;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication public class UserConsumerApplication {public static void main( String[] args ) {SpringApplication.run(UserConsumerApplication.class,args);} }在Controller中引入dubbo服务 Slf4j RestController RequestMapping(/user) public class UserController {DubboReference //引入dubbo服务private UserService userService;/*** 路径 /user/110* param id 用户id* return 用户*/GetMapping(/{id})public String queryById( PathVariable(id) Long id) {return userService.queryById(id);} }application.yml配置 server:port: 18080 spring:application:name: user-consumer# 配置dubbo服务消费者 dubbo:registry:address: nacos://127.0.0.1:8848Dubbo的最佳实践 将API接口抽取为独立模块并且把接口有关的domain都放到这个模块中 然后引入这个模块的依赖 Dubbo的高级特性 启动检查 为了保障服务的正常可用Dubbo缺省会启动时检查依赖的服务是否可用不可用时会抛出异常 在正式环境这是很有必要的一项配置可以保证整个调用链路的平稳运行在开发时往往会存在没有提供者的情况。由于启动检查的原因可能导致开发测试出现问题可以通过checkfalse关闭 多版本 在正式系统中为了保证系统可用性和更好的并发性往往通过集群部署 Dubbo提供了提供者多版本的支持平滑处理项目功能升级部署 具体实现 编写新的UserServer实现类作为新版本代码 //暴露Dubbo服务 DubboService(version 1.0) public class UserServiceImpl implements UserService {Autowiredprivate UserMapper userMapper;public User queryById( Long id) {return userMapper.findById(id);} }在暴露服务时指定服务版本 //暴露Dubbo服务 DubboService(version 1.0)消费者引用服务时指定引用的服务版本 public class UserController {DubboReference(version 1.0) //引入dubbo服务private UserService userService;}超时与重试 服务消费者在调用服务提供者的时候发生了阻塞、等待的情形这个时候服务消费者会一直等待下去。在某个峰值时刻大量的请求都在同时请求服务消费者会造成线程的大量堆积势必会造成雪崩。 Dubbo利用超时机制来解决这个问题使用timeout属性配置超时时间默认值1000单位毫秒若超时时间较短当网络波动时请求就会失败Dubbo通过重试机制避免此类问题的发生 设置重试机制的方法 在消费者引用Dubbo服务时加retries参数设置重试机制 Slf4j RestController RequestMapping(/user) public class UserController {DubboReference(version 1.0,retries 0) //引入dubbo服务private UserService userService;/*** 路径 /user/110* param id 用户id* return 用户*/GetMapping(/{id})public User queryById( PathVariable(id) Long id) {return userService.queryById(id);} }在application.yml配置重试机制 # 配置dubbo服务消费者 dubbo:registry:address: nacos://127.0.0.1:8848consumer:check: falseretries: 0 # 重试机制0次负载均衡 在集群部署时Dubbo提供了4中负载均衡策略帮助消费者找到最优提供者并调用 Random按权重随机默认。按权重设置随机概率RoundRobin按权重轮询LeastActive最少活跃调用数相同活跃数的随机ConsistentHash一致性Hash相同参数的请求总是发到同一提供者 更改负载均衡策略在消费者引用Dubbo时加入 loadbalance 参数 DubboReference(version 1.0,retries 0,loadbalance Random) //引入dubbo服务SpringCloud整合Dubbo Feign基于Http协议应用层在高并发场景下性能不够理想容易成为性能瓶颈Dubbo框架的通信协议采用TCP协议数据传输层Dubbo框架的通信协议采用RPC协议属于传输层协议Dubbo默认通过Netty构造TCP长连接的方式进行通信性能较高使用SpringCloud整合Dubbo即为强强联合 案例 根据订单id查询订单功能 需求根据订单id查询订单的同时把订单所属的用户信息一起返回 模块分析 使用Dubbo进行服务调用一般将公共接口独立抽取为模块消费者引入依赖引用Dubbo服务提供者引入依赖编写接口实现类暴露服务 抽取接口模块 创建dubbo-api模块引入依赖 dependenciesdependencygroupIdcom.xiaowu/groupIdartifactIddubbo-domain/artifactIdversion1.0-SNAPSHOT/version/dependency /dependencies抽取公共接口 改造提供者 引入依赖 !--nacos注册中心的依赖-- dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency !--springcloud alibaba dubbo依赖 -- dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-dubbo/artifactId /dependency !--dubbo-api-- dependencygroupIdcom.xiaowu/groupIdartifactIddubbo-api/artifactIdversion1.0-SNAPSHOT/version /dependency编写实现类暴露Dubbo服务 DubboService public class UserServiceImpl implements UserService {Autowiredprivate UserMapper userMapper;public User queryById(Long id) {return userMapper.findById(id);} }application.yml配置 server:port: 8081 spring:datasource:url: jdbc:mysql://localhost:3306/dubbo-demo?useSSLfalseusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driverapplication:name: user-servicecloud:nacos:discovery:server-addr: localhost:8848 #配置dubbo注册中心暴露的端口和协议dubbo注解的包扫描 dubbo:protocol:name: dubboport: 20881registry:address: spring-cloud://localhost #使用SpringCloud中的注册中心scan:base-packages: com.xiaowu.user.service #dubbo中包扫描 logging:level:com.xiaowu: debugpattern:dateformat: HH-mm ss:SSS改造服务消费者 引入依赖 !--nacos注册中心的依赖-- dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency !--springcloud alibaba dubbo依赖 -- dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-dubbo/artifactId /dependency !--dubbo-api-- dependencygroupIdcom.xiaowu/groupIdartifactIddubbo-api/artifactIdversion1.0-SNAPSHOT/version /dependency使用DubboReference引入Dubbo服务远程调用服务 DubboReference private UserService userService; Autowired private OrderMapper orderMapper; public Order queryOrderById(Long orderId) {// 1.根据id查询订单Order order orderMapper.findById(orderId);// 2.获取订单中的用户IDLong userId order.getUserId();// 3.根据用户id调用Dubbo服务查询用户User user userService.queryById(userId);order.setUser(user);// 4.返回return order; }application.yml进行配置 server:port: 8082 spring:datasource:url: jdbc:mysql://localhost:3306/dubbo-demo?useSSLfalseusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Drivercloud:nacos:discovery:server-addr: localhost:8848application:name: order-service# dubbo消费者 dubbo:registry:address: spring-cloud://localhostlogging:level:com.xiaowu: debugpattern:dateformat: HH:mm:ss:SSS启动测试 查询用户 查询订单
http://www.w-s-a.com/news/873594/

相关文章:

  • 公司怎么注册官方网站wordpress花园网站
  • 一般网站的建设步骤有哪些企业网站建设应该注意什么事项问题
  • 枣庄市建设局网站建设工程合同交底的内容包括
  • 全国十大跨境电商排名seo优化入门教程
  • 福安网站开发网站内容建设要求age06
  • 网站开发制作公司罗湖在线
  • 做网站银川潍坊网络科技有限公司
  • 南宁企业网站建站模板盐田高端网站建设
  • 深圳市建设局网站张局北京档案馆网站建设
  • 运动健身型网站开发网站备案掉了什么原因
  • 网站开发的前后端是什么注册网站多少钱一年
  • 彩票网站建设需要什么网站未备案被阻断怎么做
  • wordpress 版权声明网站优化排名哪家性价比高
  • dedecms网站关键词外包做网站平台 一分钟
  • 酒网站建设游戏分类网站怎么做
  • 仿牌网站安全北京大良网站建设
  • ps中怎样做网站轮播图片吉林省网站建设公司
  • 广西网站建设-好发信息网温江做网站哪家好
  • 网站建设属于什么职位类别南京哪个网站建设比较好
  • wdcp 网站备份东莞网站建设五金建材
  • 天津制作网站的公司电话wordpress架设进出销
  • tomcat做静态网站prestashop和wordpress
  • 上海响应式建站wap网站微信分享代码
  • 四川建筑人才招聘网南昌网站优化
  • 南充网站建设制作重庆有的设计网站大全
  • 深圳沙井做网站公司网站搭建谷歌seo
  • 学校资源网站的建设方案山西省住房城乡建设厅网站
  • 医疗行业网站建设深圳网络科技公司排名
  • 企业形象型网站建设wordpress chess
  • 网站的域名起什么好处罗湖网站建设公司乐云seo