技术演变
- 程序最早运行在在JVM里面,处于单一系统架构。
- 服务做拆分,运行在多个JVM内
- 之间通信技术
- JMS规范
- ActiveMQ
- 远程RPC通信框架
- RMI
- WebService
- Hessian
- Kafka+Zookeeper
- JMS规范
- 集群
- F5负载均衡
- 软负载均衡
- Nginx
- 之间通信技术
- 对节点集群
- 硬负载均衡
- F5
- 软负载均衡
- Nginx+LVS
- Nginx+keepalived
- Apache
- 硬负载均衡
- 数据存储
- 关系型数据库
- SQL Server
- Oracle
- MySQL
- MariDB
- 非关系型数据库
- MongoDB
- Redis
- DB2
- 关系型数据库
- 扩容
- Master-Slave模型
- Master写
- Slave读
- Master-Slave模型
- 服务治理
- Dubbo+Zookeeper
- URL维护困难
- 监控服务依赖关系及响应时间
- Dubbo+Zookeeper
- 单进程优化性能
- 多线程
作用
- 各个节点中的URL管理维护很困难、依赖关系很模糊
- 注册中心
- 每个应用节点的性能、访问量、响应时间无法评估
- 监控中心
使用入门
示例代码网上都有
相关问题
dubbo如何加载Spring
com.alibaba.dubbo.container.Main
中ExtensionLoader<Container> loader
- dubbo中的扩展机制。实现机制类似于SPI。
container.start();
启动SpringMain.main(args)
中的args
会有一个参数叫spring
spring
来自于com.alibaba.dubbo.container
的配置文件里dubbo/internal
中的spring=com.alibaba.dubbo.container.spring.SpringContainer
com.alibaba.dubbo.container.spring.SpringContainer#start
中读取Spring配置:public static final String DEFAULT_SPRING_CONFIG = "classpath*:META-INF/spring/*.xml";
com.alibaba.dubbo.container.spring.SpringContainer
中加载Springcontext = new ClassPathXmlApplicationContext(configPath.split("[,\\s]+"));
然后context.start();
如何让进程不终止
com.alibaba.dubbo.container.Main
中利用await()
等待
日志如何集成
com.alibaba.dubbo.common.logger.LoggerFactory
- log4j
- slf4j
- jcl
- jdk
- 如不指定,优先级为log4j>slf4j>jcl>jdk
admin控制台的安装
- 源码中dubbo-admin模块打成war
- 修改
dubbo-admin-src-main-webapp-WEB-INF-dubbo.properties
中dubbo.registry.address
为zk的集群地址 - 浏览器访问地址
- Run/Debug Configration中的地址
- 输入用户名及密码
dubbo.properties
中的密码- 用户名:root 密码:root
- 可以进行服务治理
- 权重
- 路由
- …
- 没有监控功能,有另外的监控中心
simple监控中心
- provider项目的xml中添加配置
<duboo:monitor protocol="registry"/>
- 下载
dubbo-monitor-simple
- 修改配置
- conf/dubbo.propertties
- Dubbo.registry.address=zk集群地址
- dubbo.protocol.port
- monitor也是一个dubbo服务,也有端口和url
- 或修改服务提供者的xml(xxx-provider.xml)
- 建议使用xml
- conf/dubbo.propertties
- 运行
- 执行
bin
文件夹下的start
脚本
- 执行
- 浏览器访问地址
- localhost:port
- port为
dubbo.propertties
中dubbo.jetty.port
- port为
- localhost:port
- 带图表和监控
- 监控服务的监控
- 调用次数
- 调用关系
- 响应时间
- …
- 默认五分钟生成一次
telnet命令
- 2.0.5后提供
- telnet localhost 20880
- telnet调用接口是不受监控的
- 常用命令
- ls
- cd
- pwd
- clear
- invoke