dubbo
以下较为粗略的写出了dubbo的基本使用,其中dubbo基本配置完后,具体的增强措施,查看官方的文档配置便可实现。底层代码依旧可以采用原来框架,但配置环境需要在spring中。其作用概括说就是让两个不同的服务器能互相调用方法传递数据使用RPC技术让2个服务器互相可以调用方法
如何实现
- 基于tcp协议的RPC
1.序列化和反序列化
2.Socker
3.反射 - 基于http协议的RPC
- Xm
- Json
- http
整体架构
- Provide:提供服务的服务提供方(生存者)
- Consumer:调用远程服务的服务消费方(消费者)
- Registry:服务注册与发现的注册中心
- Monitor:统计服务调用次数和调用时间的监控中心
- Container:服务运行容器
如何使用dubbo
在povide服务器中1.需要在spring环境中进行xml中配置,需要jar包com.alibaba.dubbo
<dubbo:application name=”xxx(自定义)”/> <dubbo:registry address=”” <bean id=”xxx” class=”(实现类)”/> <dubbo:service interface=”xxxx(业务接口)” ref=”xxx(接口实现)” register=”(注册中心)”
在consumer服务器中
2.需要在spring环境中进行xml中配置
配置完成使用dubbo标签,需要jar包com.alibaba.dubbo<dubbo:application name=”xxx(自定义)”/> <bean id=”xxx” class=”(实现类)”/> <dubbo:reference id=”xxx” interface=”xxxx(业务接口)” url=”xxx” register=”(注册中心)”
其中注册中心有很多,可自行搜索
而zookeeper为官方推荐注册中心
详细搭建步骤自行搜索下载zookeeper
搭建完成后
Java中导入zkclient的jar包和zookeeper的jar包
再修改
<dubbo:registry address=””的address地址
其他注册中心类似操作其他
Dubbo还有些常用协议可以自行了解Dubbo可设置多个<dubbo:reference id=”xxx” interface=”xxxx(业务接口)” url=”xxx” register=”(注册中心) vesion=’’”版本不同,可以用来实现版本在上线的环境下更新
Dubbo还可以服务分组,统一接口不同的实现使用ground
<dubbo:service interface=”xxxx(业务接口)” ref=”xxx(接口实现)” register=”(注册中心) ground=“(实现方法)””分布式开发模式
诺干个接口提供者+诺干个接口实现提供者诺干个消费者
令牌验证
:防止消费者绕过注册中心访问提供者,提高安全性配置:
《随机token令牌,使用UUID生成》
<dubbo:service interface=”(接口)” token=”true”/>
<固定token令牌,相当于密码>
<dubbo:service interface=”接口” token=”密码”>Dubbo配置覆盖策略
每个配置都有的配置功能作用分类:
1.服务发现
2.服务治理
3.性能调优
覆盖配置,消费端优先服务端
覆盖策略:服务提供方配置,通过URL经由注册中心传递给消费端
建议由服务端设置 超时,因为一个方法需要执行多长时间,服务提供方更清楚,如果一个消费端同时引入多个服务,就不需要关心每个服务端的超时时间Dubbo常用标签:
1.dubbo:service:用于服务提供者暴露自己的服务
2.dubbo:reference:用于配置服务消费端引用服务
3.dubbo:protocol:用于配置服务提供者的访问协议
4.dubbo:registry:用于配置 注册中心
5.dubbo:application:用于配置应用信息
6.dubbo:provider:用于服务提供者的默认值,即设置service,protocol标签的默认值
7.dubbo:comsumer:用于配置消费端的默认值,即reference的默认值
注:标签里还有很多各种各样的配置属性,可参看文档进行选择Dubbo管控台的部署与使用:
dubbo有自己的后台网页来管理项目的各种配置,配置后可使用
部署环境:lunx
Jdk1.8
Tomcat8.5
Dubbo-admin-2.3.5.war具体配置方法自行搜索
Zookeeper集群
举例:
步骤:下载安装3个zookeeper
3个zookeeper中的conf目录下的zoo_simple.cfg复制一份,改为zoo.cfg并配置
dataDir=/opt/cluster/apache-activemq/zkdatal/
clientPort=2181
Server.1=localhost:2888:3888
Server.2=localhost:2889:3889
Server.3=localhost:2890:3890
其中2888端口是zookeeper服务之间通讯的端口,3888是与其他应用程序通讯的端口
创建三个dataDir目录
/opt/cluster/apache-activemq/zkdatal/
/opt/cluster/apache-activemq/zkdatal2/
/opt/cluster/apache-activemq/zkdatal3/
每个目录中都创建一个名为myid的文件,3个文件的内容分别写1,2,3
这个1,2,3是对应前面server1,2,3Dubbo配置:
Zookeeper://10.160.2.11:2181?Backup=10.160.2.11:2182.10.160.2.11:2183