dubbo与互联网项目
2020-07-30 13:02
1016 查看
互联网项目的一些概念
- 性能指标 响应时间(RT):请求到拿到响应结果的时间
- 并发查询次数(QPS):每秒处理的请求次数
- 吞吐量(TPS): 每秒处理的事务请求次数
-
高性能
集群和分布式
- 定义 集群:一个业务模块,部署在多个服务器上,那么次业务就被称为集群
- 分布式:一个完整的业务,拆分成多个模块,分布不是到多个集群上去
-
高可用
架构的演进
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-whUQmyla-1596085298721)(%E7%AC%94%E8%AE%B0.assets/image-20200729113001512.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K0RzMzr4-1596085298724)(%E7%AC%94%E8%AE%B0.assets/image-20200729113016521.png)]
什么是Dubbo
-
定义:一个高性能、轻量级的Java RPC框架
-
场景:微服务项目的开发
-
原理:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PgIhdize-1596085298727)(%E7%AC%94%E8%AE%B0.assets/image-20200729114351064.png)]
Dubbo的入门【精通】
-
导包
zookeeper - nacos
<!--Dubbo的起步依赖,版本2.7之后统一为rg.apache.dubb --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>${dubbo.version}</version> </dependency> <!--ZooKeeper客户端实现 --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>${zookeeper.version}</version> </dependency> <!--ZooKeeper客户端实现 --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>${zookeeper.version}</version> </dependency>
配置
<!--1.配置项目的名称,唯一--> <dubbo:application name="dubbo-service"/> <!--2.配置注册中心的地址--> <dubbo:registry address="zookeeper://192.168.149.135:2181"/> <!--3.配置dubbo包扫描--> <dubbo:annotation package="com.itheima.service.impl" />
服务端代码
import org.apache.dubbo.config.annotation.Service; @Service//将这个类提供的方法(服务)对外发布。将访问的地址 ip,端口,路径注册到注册中心中 public class UserServiceImpl implements UserService { public String sayHello(User user) { return "hello dubbo hello!~"; } }
客户端代码
@Reference//远程注入 private UserService userService; @RequestMapping("/sayHello") public String sayHello(){ return userService.sayHello(); }
dubbo-admin的安装
-
1、安装nodejs
-
2、设置nodejs的国内镜像
# 安装nrm npm -g install nrm nrm ls nrm use taobao
-
3、修改zk地址或端口
# dubbo-admin-server\src\main\resources\*.properties # 修改服务启动的端口 server.port=8081 admin.registry.address=zookeeper://localhost:2181 admin.config-center=zookeeper://localhost:2181 admin.metadata-report.address=zookeeper://localhost:2181
-
4、打包maven项目
mvn clean package -D skipTest
-
5、运行项目(必须先运行ZK)
# dubbo-admin-server\target java -jar dubbo-admin-server-0.1.jar
Dubbo高级特性
-
序列化+协议:
作用:便于对象在网络中进行传输 - 常见的: JSON
- Serializable
缓存:把注册中心所有提供的服务地址,缓存在消费者本地
-
提供访问效率
超时:
目的:降低雪崩发生的概率
谁配置超时?消费端来配置实际的业务超时容忍度,提供端配置服务所能提供的最大延迟服务时间
用法:
@Service(timeout=1000,retries=2) @Reference(timeout=1000,retries=2)
重试:
目的:增加网络抖动情况下,服务被访问成功的概率
谁配置超时?消费端
用法:
@Service(timeout=1000,retries=2) @Reference(timeout=1000,retries=2)
etries=2)
```
-
重试:
目的:增加网络抖动情况下,服务被访问成功的概率
-
谁配置超时?消费端
-
用法:
@Service(timeout=1000,retries=2) @Reference(timeout=1000,retries=2)
相关文章推荐
- 分布式架构真正适用于大型互联网项目的架构! dubbo+zookeeper+springmvc+mybatis+shiro+redis
- 分布式架构真正适用于大型互联网项目的架构! dubbo+zookeeper+springmvc+mybatis+shiro+redis
- 分布式架构真正适用于大型互联网项目的架构 dubbo+zookeeper+springmvc+mybatis+shiro+redis
- 分布式架构真正适用于大型互联网项目的架构! dubbo+zookeeper+springmvc+mybatis+shiro+redis
- 分布式架构真正适用于大型互联网项目的架构! dubbo+zookeeper+springmvc+mybatis+shiro+redis
- 分布式架构真正适用于大型互联网项目的架构! dubbo+zookeeper+springmvc+mybatis+shiro+redis
- 分布式架构真正适用于大型互联网项目的架构! dubbo+zookeeper+springmvc+mybatis
- 【备忘】使用dubbo、spring-boot等技术实现互联网后台服务项目架构视频教程
- 分布式架构真正适用于大型互联网项目的架构! dubbo+zookeeper+springmvc+mybatis+shiro+redis
- 分布式架构真正适用于大型互联网项目的架构! dubbo+zookeeper+springmvc+mybatis+shiro+redis
- 分布式架构真正适用于大型互联网项目的架构! dubbo+zookeeper+springmvc+mybatis+shiro+redis
- JAVA架构师课程(大数据,分布式事物解决方案,大型互联网项目,大型金融项目,高并发集群解决方案)实战开发[技术 activeMQ,zookeeper,http,支付,团购,dubbox,stom]
- 架构实战项目心得(七):使用SpringBoot+Dubbo+Mybatisplus+Oracle搭建后台项目框架(一)
- java项目中使用dubbo实战
- Dubbo在项目中的两种使用方法
- 互联网项目开发效率与系统性能的一个取舍问题
- 基于dubbo的分布式项目框架搭建 开发工具idea (springboot+dubbo+zookeeper+redis+rabbitmq+基于Swagger2的restful api) --(五)
- 互联网加应用2:行业项目
- 悖论:早期互联网项目,是否需要技术含量?
- 2017java架构师视频教程高并发分布式微服务架构互联网电商dubbo