Java微服务
文章平均质量分 59
Dubbo/Spring cloud
OK_boom
大龄搬砖工,酷爱计算机技术,java/C#/android/free pascal/C++。
展开
-
Dubbo provider和seata 指定ip
追踪代码:org.apache.dubbo.config.ServiceConfig#findConfigedHosts。在idea指定jvm参数: -DDUBBO_IP_TO_BIND=“192.168.10.67”所有java相关的参数要放在-jar前面,不然不生效, 这个-D指定环境变量的当然也要放前面了!2、启动seata-server时带上下面这两个参数即可指定port和ip。花了挺多时间才跟出来,备忘一下,多网卡环境下。1、指定dubbo实例上线的ip。原创 2022-09-05 17:41:10 · 1779 阅读 · 0 评论 -
Seata的分布式事务处理以及如何避免脏读数据
如何避免脏读数据,网上看到的文章多半没效,甚至官方资料也没提及到,只有自己各种Case去测试。目录让seata全局事务生效1、全局写事务2、全局读事务3、Seata的代码分析关键代码1 io.seata.rm.datasource.exec.ExecuteTemplate#execute(java.util.List让seata全局事务生效想要全局锁生效,必须让其seata代理datasource,以baomidou的动态数据源配置为例,seata全局开关要打开,默认是关闭的。全局开关打开就不需要每原创 2022-05-20 16:52:27 · 1480 阅读 · 3 评论 -
compose file for docker nacos cluster
version: "3"services: nacos1: container_name: nacos-server01 hostname: nacos-server01 image: nacos/nacos-server:v2.0.4-slim environment: - MODE=cluster - PREFER_HOST_MODE=hostname -原创 2022-04-26 11:04:57 · 1437 阅读 · 0 评论 -
Springboot/SpringCloud/Dubbo的性能对比
JDK: 11boot版本: 2.4.2SpringCloud版本:Hoxton.SR12SpringCloud alibaba版本:2021.1硬件:E5-2620 V3 , Windows10, 32G ram,千兆网卡,提供方服务单实例项目单线程qps100线程qpsSpringboot14509014SpringCloud9625142Dubbo213716666如果对并发要求高的,还是dubbo比较恰当。...原创 2022-04-20 17:58:06 · 795 阅读 · 0 评论 -
SpringCloud整合Nacos注册中心和配置中心
整合nacos配置中心的文章https://blog.csdn.net/rocklee/article/details/124299187以下是SpringCloud整合Nacos注册中心的步骤目录SpringCloud的架构API模块提供服务依赖配置文件api实现消费者依赖配置文件配置类拦截ribbon方式调用feign方式调用api实现调用SpringCloud的架构先说一下版本问题,本文引用框架的版本如下:boot: 2.4.2nacos: 2021.1spring-cloud: 202原创 2022-04-20 16:13:20 · 1284 阅读 · 0 评论 -
SpringCloud整合Nacos配置中心
代码读写、监听nacos配置中心的方案,请移步 https://blog.csdn.net/rocklee/article/details/124006422确定版本依赖在parent里面定义好boot/cloud/alibaba的版本:这里用的boot是2.4.2,springcloud的版本是2020.0.5,alibaba cloud的版本是2021.1算是不落伍吧。<spring-cloud.version>2020.0.5</spring-cloud.version>原创 2022-04-20 16:07:58 · 5555 阅读 · 0 评论 -
读写nacos的配置中心的参数及变动监听
nacos有配置中心的功能,那么spring应用如何下载nacos的配置参数?最简单的方法是借组sentinel的NacosDataSource完成这个操作,如下例子@Configuration@Slf4j@Getterpublic class AuthenConfig { @Value("${spring.cloud.nacos.discovery.server-addr}") private String nacosAddrs; private String groupId="m原创 2022-04-07 11:25:27 · 2527 阅读 · 0 评论 -
Sentinel的配置数据转存nacos
目录添加依赖添加配置文件往nacos配置中心增加sentinel配置应用模块的修改 Sentinel提供丰富的配置存取方案,甚至可以通过sentinel的控制台修改规则就能实时更新到sentinel应用,但是sentinel控制台只能在应用运行时期修改,没有持久性,一旦应用退出,就会消失。 比较理想的方法将配置方案放到微服治理中心,比如nacos,一处修改各sentinel应用同时能刷新规则。添加依赖首先于自己的项目的sentinel-common里面加入sentinel的Datasource依原创 2022-04-01 09:46:51 · 1105 阅读 · 0 评论 -
为Spring Cloud Alibaba Sentinel编写通用的限流处理blockHandler和fallbackHandler
Sentinel提供有效的限流和降级、异常处理功能,但是它的blockHandler和fallbackHandler要求非常严格,处理程序的形参数据类型及格式和返回数据类型必须一致才能生效,也就是说如果你的微服务提供10个api,并想每个api做限流,那么你必须要多写10个blockHandler! 不明白sentinel的作者为什么要如此处理,但是用起来绝对不方便,于是花了点时间写了个通用的处理模块。如果将严格的形参和返回类型变成通用的单一数据类型返回,那么这个通用的处理就能实现,比如,如果通用原创 2022-03-29 11:26:32 · 982 阅读 · 0 评论 -
Dubbo3.0.3的继承于MAP参数类型只能接受2目的解决方案
我有一个restful返回数据类型,在各项目中应用一直没问题,但用在Dubbo上就出事了:@Data@NoArgsConstructor@AllArgsConstructorpublic class ResponseEntity<T> extends LinkedHashMap<String,Object> implements Serializable { private long id; private int errCode; private String原创 2022-03-28 15:34:57 · 915 阅读 · 0 评论 -
Dubbo的远程引用实例建立过程
我们可以轻松用@DubboReference调用dubbo注册中心里面的服务,其实Dubbo为背地里为我们做了很多事情,下图为调用栈1、创建invokerorg.apache.dubbo.config.ReferenceConfig#createInvokerForRemote,根据protocolSPI通过注册服务url registry://128.30.14.249:8848/org.apache.dubbo.registry.RegistryService返回interfaceClass原创 2022-03-26 11:07:11 · 3042 阅读 · 0 评论 -
Dubbo的集群容错
1、容错机制类型类型负载均衡备注failover会失败后会尝试调用其他服务器实例,默认尝试2次, 可以通过设置retries来设置次数。这是dubbo默认的容错机制,由于常常可能因为超时待原因触发异常但远程服务已经完成操作,所以这个类型不应就在数据更新的操作failfast会有异常立即返回,不做尝试,我认为可以用在数据更新上,以保证数据的一致性fastsafe会有异常会直接忽略,为的是保证调用方接下来的正常运行,一般用于日志收集等与正常流程无关的操作fa原创 2022-03-26 11:37:30 · 852 阅读 · 0 评论