ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

springboot@dubbo融合

2022-05-04 11:01:43  阅读:183  来源: 互联网

标签:dubbo protocol springboot 提供者 融合 registry 注册 日志



springboot@dubbo融合
https://blog.csdn.net/myjess/article/details/114729793
http://localhost:9991//hello1


消费者
server.port=9991
dubbo.application.name=gmall-consumer
dubbo.registry.protocol=zookeeper
dubbo.registry.address=192.168.89.137:2181
dubbo.scan.base-package=cn.com
dubbo.protocol.name=dubbo
## 从注册中心自动去找
dubbo.monitor.protocol=registry

@EnableDubbo

客户端调用
@DubboReference
UserService userService;


提供者
dubbo.application.name=gmall-provider
dubbo.registry.protocol=zookeeper
dubbo.registry.address=192.168.89.137:2181
dubbo.scan.base-package=cn.com.service.dubboService
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
## 从注册中心自动去找
dubbo.monitor.protocol=registry

@EnableDubbo

发布服务
@DubboService
@Service
public class UserServiceImpl implements UserService {


<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.8</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.10.0</version>
</dependency>

 


提供者: 如果60s内没有接收到消息,则发送心跳消息,如果连续三次(180s)没有接收到消息,则关闭channel。
消费者: 如果在60s内没有接收到消息,则发送心跳消息,如果连着三次没有收到心跳消息,消费者就会重连。
https://dubbo.apache.org/zh/docs/v2.7/user/references/xml/dubbo-registry/

提供者
<bean id="demoServiceXmh" class="server.imp.DemoServiceImpl" ></bean>
<dubbo:application name="dubbo-xmh" />
<dubbo:registry protocol="zookeeper" address="192.168.1.105:2181" id="xmhDubboProvider" subscribe="false" check="true"/>
<dubbo:service timeout="8000" interface="server.DemoService" ref="demoServiceXmh" registry="xmhDubboProvider"/>
1,dubbo:registry 标签一些属性的说明:
1) register 是否向此注册中心注册服务,如果设为false,将只订阅,不注册。 默认true
2) check 注册中心不存在时,是否报错。
3) subscribe 是否向此注册中心订阅服务,如果设为false,将只注册,不订阅。 默认true
2,dubbo:service 标签的一些属性说明:服务端
register 默认true ,该协议的服务是否注册到注册中心


消费者
<dubbo:application name="dubbo-xmh"/>
<dubbo:registry protocol="zookeeper" address="192.168.1.105:2181" id="xmhDubboProvider" />
<dubbo:reference timeout="8000" id="demoServiceXmh" interface="server.DemoService" registry="xmhDubboProvider" retries="0" check="false"/>

 

连接数配置:
1,和dubbo其它许多配置类似,接口层面的配置优先级高于全局配置;同样层面的配置消费者端优先于提供者。
2,Dubbo Consumer的初始化连接过程本质就是对配置中的reference引入的服务进行连接建立,按照service+注册中心的维度,与某个注册中心下某个service的所有的provider建立连接的过程。
提供者端:
<!-- global set in provider -->
<dubbo:provider protocol="dubbo" accepts="10" />
or
<!-- global set in provider -->
<dubbo:protocol name="dubbo" accepts="10" />
or
<!-- private set in provider -->
<dubbo:service interface="com.frank.OrderService" connections="10" />

消费者端:
<!-- global set in consumer -->
<dubbo:consumer connections="10" /> dubbo协议长连接不支持此配置 默认缺省值100
or
<!-- private set in consumer -->
<dubbo:reference interface="com.frank.OrderService" connections="10" /> 对每个提供者的最大连接数 dubbo等长连接协表示建立的长连接个数

 

 

 

dubbo
Random LoadBalance 随机,按权重设置随机概率。
RoundRobin LoadBalance 权重轮询调度算法 LeastActive LoadBalance 最少活跃调用数 ConsistentHash LoadBalance 一致性Hash,相同参数的请求总是发到同一提供者
1,新的服务注册到注册中心以后,注册中心会将这些服务通过 @@notify到消费者
2,dubbo服务端和注册中心(zk)存在心跳,由dubbo服务端发起,这是基于zk集群和zk客户端之间的心跳机制。 服务端和zk之间的心跳是zkclient维护的
3,dubbo客户端和dubbo服务端之间存在心跳,由dubbo客户端主动发起

Zookeeper当master挂了,会在30-120s进行leader选举 服务不可用
而 Eureka 不会,即使Eureka有部分挂掉,还有其他节点可以使用的,他们保持平级的关系,只不过信息有可能不一致,这就是AP
service-url.defaultZone: http://eureka1.com:7001/eureka/,http://eureka2.com:7002/eureka/

 

iBase4J是Java语言的分布式系统架构。使用Spring整合的开源框架。
iBase4J特点:
使用Maven对项目进行模块化管理,提高项目的易开发性、扩展性。
系统包括4个子系统:系统管理Service、系统管理Web、业务Service、业务Web。
系统管理:包括用户管理、权限管理、数据字典、系统参数管理等等。
业务相关:您的业务开发。
可以无限的扩展子系统,子系统之间使用Dubbo或MQ进行通信。
iBase4J主要功能:
1、数据库:Druid数据库连接池,监控数据库访问性能,统计SQL的执行性能。数据库密码加密,加密方式请查看PropertiesUtil,decryptProperties属性配置需要解密的key。
2、持久层:mybatis持久化,使用MyBatis-Plus优化,减少sql开发量;aop切换数据库实现读写分离。Transaction注解事务。
3、MVC:基于spring mvc注解,Rest风格Controller。Exception统一管理。
4、调度:Spring+quartz, 可以查询、修改周期、暂停、删除、新增、立即执行,查询执行记录等。
5、基于session的国际化提示信息,职责链模式的本地语言拦截器,Shiro登录、URL权限管理。会话管理,强制结束会话。
6、缓存和Session:注解redis缓存数据;shiro实现redis分布式session同步,重启服务会话不丢失。
7、多系统交互:Dubbo,ActiveMQ多系统交互,ftp/sftp/fastdafs发送文件到独立服务器,使文件服务分离。
8、前后端分离:没有权限的文件只用nginx代理即可。
9、日志:log4j2打印日志,业务日志和调试日志分开打印。同时基于时间和文件大小分割日志文件。
10、QQ、微信、新浪微博第三方登录。
11、工具类:excel导入导出,汉字转拼音,身份证号码验证,数字转大写人民币,FTP/SFTP/fastDFS上传下载,发送邮件,redis缓存,加密等等。
技术选型:
核心框架:Sring boot + Spring Framework + Dubbo + ibase4j-common
安全框架:Apache Shiro
任务调度:Spring + Quartz
持久层框架:MyBatis + MyBatis-Plus
数据库连接池:Alibaba Druid
缓存框架:Redis
会话管理:Spring-Session
日志管理:SLF4J、Log4j2
前端框架:Angular JS + Bootstrap + Jquery
启动说明:
* 项目依赖activemq、Redis和ZooKeeper服务。
* 使用nginx代理UI:修改配置里的UI目录后重启nginx。
* 启动方法:
SysServiceApplication.java
SysWebApplication.java
* 测试环境打包命令:
clean package -P test
* 生产环境打包命令:
clean package -P product

 

标签:dubbo,protocol,springboot,提供者,融合,registry,注册,日志
来源: https://www.cnblogs.com/xingminghui111/p/16220566.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有