架构设计
文章平均质量分 66
冯立彬
每天前进一步
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring Gateway集成 Nacos注册中心不能够发现服务的问题解决
一、问题描述我们现在是在用Nacos替换Eureka,原来Eureka和Spring gateway运行正常,可以通过Spring gateway调用注册到Eureka中的服务。当前Spring cloud的版本是Hoxton.SR8,Nacos discovery的版本为0.9.0.RELEASE,使用的Nacos版本为2.0.3。Nacos替换Eureka改动的地方如下:1、去掉POM中Eureka的引入;2、去掉主类中引入的@EnableEurekaClient注解;3、引入N原创 2021-10-09 17:31:37 · 15603 阅读 · 0 评论 -
Nacos使用域名做为服务地址遇到的问题及解决方案
一、发现问题应用启动时,增加Nacos服务端的配置信息。应用使用IP加端口连接Nacos服务器时,运行一切正常:#启动参数增加以下Nacos参数-Dspring.cloud.nacos.discovery.namespace=DEV -Dspring.cloud.nacos.discovery.server-addr=127.0.0.1:8848但是将server-addr换成解析好的域名就有问题:#Nacos默认的服务端端口为8848,因而Nacos服务端的端口必须配置,#否原创 2021-09-22 13:42:55 · 12382 阅读 · 0 评论 -
Eureka迁移到Nacos之服务名称大小问题解决
我们应用往Eureka中注册使用的名称以及应用内部通过Feign调用,使用的服务名称都是小写,如user-service,但是注册到Eureka中后,应用的名称全部都是以大写的形式存储及展现,由于Eureka客户端对大小写的支持都是一样的,因而通过Feign使用小写的名称调用就没有问题。现在是将Spring Cloud注册中心由Eureka迁移到Nacos,但是Nacos服务端及Nacos客户端对服务名称的支持是区分大小写的,即从Eureka同步到Nacos中的大写服务名称,通过Feign中使用小写的服原创 2021-09-17 14:11:39 · 2939 阅读 · 0 评论 -
HASentinel支持Nacos做为配置中心控制台改造完成
HASentinel(https://gitee.com/laofeng/hasentinel)支持Nacos做为配置中心控制台改造完成,先来张Nacos中配置的截图:后续会修改修改客户端,不过当前项目较忙,会先把Eureka切换为Nacos弄完后再接着弄了。本次同时把支持更多配置中心的架构给设计好了,后续会续还会支持Apollo,觉得好请观注项目的后续发展。...原创 2021-09-07 20:16:01 · 413 阅读 · 0 评论 -
Nacos的连接错误:ErrCode:-401, ErrMsg:Client not connected,current status:STARTING的解决办法
最近在将HASentinel(https://gitee.com/laofeng/hasentinel)接入Nacos配置中心,在连接的时候怎么都不能够连接成功,报错误:ErrCode:-401, ErrMsg:Client not connected,current status:STARTING使用的Nacos server及client的版本都是2.0.3。创建ConfigService使用的是方法ConfigFactory.createConfigService(Properties),原创 2021-09-07 18:34:17 · 25120 阅读 · 10 评论 -
NacosSync支持Eureka与Nacos的双向批量同步改造完成
默认情况下Nacos只支持单个应用的同步,针对数百个应用要配置同步,单页面配置就是一项不小的工作量,且每新增加一个应用就需要增加一个同步配置,如果是Eureka与Nacos的双向同步则需要增加两条配置,当然可以直接在数据库中插入数据,但是这毕竟也不是长久之计,使用上也会不便,更加不符合程序员的做事风格。改造完成后Eureka与Nacos双向配置,就只以下两条配置记录:且以后不论是Eureka或是Nacos有应用注册,都会同步给对彼此,不需要新增任何的配置:注册到Eureka的应用会自动同步到原创 2021-09-02 19:37:58 · 1693 阅读 · 2 评论 -
NacosSync从Eureka批量同步应用到Nacos改造完成
默认情况下Nacos只支持单个应用的同步,针对数百个应用要配置同步,单页面配置就是一项不小的工作量,当然可以直接在数据库中插入数据,但是这毕竟也不是长久之计,使用上也会不便,更加不符合程序员的做事风格。于是就直接针对源码开刀,改造源码支持应用名称配置为“*”时,表示从Eureka中同步全部的应用信息:现在已经改造完成了,一项配置完成了原来数百项配置才能够完成的工作,哦耶!后续接着改造从Nacos中到Eureka的批量化同步!...原创 2021-08-31 18:55:53 · 677 阅读 · 0 评论 -
Nacos作为Dubbo注册中心时Consumer更新Provider的机制
一、NacosRegistryConsumer端启动时,通过NacosRegistry中的doSubscribe(...)方法,往Nacos服务端发起注册及获取Provider信息:方法doSubscribe(URL, NotifyListener)中根据Consumer端的url生成对应的Provider服务名称,如此时consumer的url如下:consumer://192.168.22.198/cn.raysonblog.shopserviceprovider.service.Rp原创 2021-08-25 16:14:45 · 3502 阅读 · 0 评论 -
Nacos配置中心回调机制
一、Nacos的动态配置nacos 服务端保存了配置信息,客户端连接到服务端之后,根据 dataID、group及tanant(就是Namesapce)可以获取到具体的配置信息,当服务端的配置发生变更时,客户端会通过长轮询的HTTP长连接获取到变更通知,然后再由客户端主动去获取变更后的配置信息。二、Nacos回调机制1、Nacos 服务端创建了相关的配置项(创建 ConfigService并实例化 ConfigService);2、客户端添加 Listener进行监听:客户端通过在Cli原创 2021-08-24 17:56:55 · 3367 阅读 · 0 评论 -
Eureka节点信息同步延迟及单个注册中心节点load偏高问题的排查
问题现象1、网关会报访问后端正在发布的应用超时的错误:2、Eureka注册中心负载Load不均衡二、问题分析1、Eureka客户端同步节点信息的分析Eureka-Client中的com.netflix.discovery.DiscoveryClient类,为负责与Eureka注册中心进行沟通协调的实现类,包括应用节点往注册中心注册、应用节点状态向注册中心更新状态、从注册中心同步注册应用信息等功能。com.netflix.discovery.DiscoveryCl..原创 2021-03-29 14:06:09 · 2595 阅读 · 3 评论 -
IP限流平台的设计及实现--已经开源了
先放几张效果图上来,设计及实现文档后续会补充:原创 2020-07-24 17:46:16 · 2610 阅读 · 5 评论 -
Linux中Python应用CPU占用高问题排查
公司购买了一套由外部供应商提供的呼叫中心系统,在使用的过程中发现其LOAD和CPU占用偏高,由于没有源代码也不太清楚其内部的实现逻辑,只能够通过观察系统资源的消耗来排除其问题,以下记录的是问题排查的过程。1、通过top命令查看其CPU占用可以看到其load占用为“20.14, 16.42, 19.16”,三个数字分别表示cpu在1分钟、5分钟及15分钟的load,cpu的使用率也偏高,...原创 2019-11-20 16:21:03 · 23146 阅读 · 4 评论 -
分布式事务中使用RocketMQ的事务消息机制优化事务的处理逻辑
1、事务消费介绍我们经常支付宝转账余额宝,这是日常生活的一件普通小事,但是我们思考支付宝扣除转账的钱之后,如果系统挂掉怎么办,这时余额宝账户并没有增加相应的金额,数据就会出现不一致状况了。上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量必须减1吧,怎么保证?!在搜索广告系统中,当用户点击某广告后,除了在点击事...原创 2019-06-16 22:29:26 · 8509 阅读 · 6 评论 -
交易系统高并发下的幂等性设计原则
一、介绍幂等性就是针对同一个请求,不管该请求被提交了多少次,该请求都将被视为同一个请求,服务端不应该将同一个请求进行多次处理,以确认处理逻辑的正确性,针对交易性系统幂等性的设计尤为重要,否则由于网络或服务器处理超时等问题,就会造成交易混乱,最严重的后果就是乱扣用户的钱,造成投诉満天飞。二、客户端设计原则系统设计时,一定是要从最坏的角度上去考虑,如网络问题、服务器问题,甚至于包括人...原创 2019-06-15 00:20:52 · 2368 阅读 · 0 评论 -
集群环境中使用Zookeeper实现分布式幂等控制
一、什么是Zookeeper?Zookeeper(业界简称zk)是一种提供配置管理、分布式协同以及命名的中心化服务,这些提供的功能都是分布式系统中非常底层且必不可少的基本功能,但是如果自己实现这些功能而且要达到高吞吐、低延迟同时还要保持一致性和可用性,实际上非常困难。因此zookeeper提供了这些功能,开发者在zookeeper之上构建自己的各种分布式系统。虽然zookeeper的实现比...原创 2019-06-14 14:49:12 · 1465 阅读 · 0 评论 -
集群环境中使用Redis实现分布式锁两种方式
一、介绍互联网的应用场景中,为了支持高并发的请求,服务都是执行的分布式部署,相同的任务可以在集群中不同的服务器上执行,并且现在的服务容器都是支持多线程,相同的任务也可能会被同一个容器多次执行,都要求执行结果都满足幂等性的设计原则。分布式锁,就是为了确保在分布式的环境下,相同任务只会执行成功的执行一次,后续的执行不会对这些已经产生了变化的业务再次产生影响。分布式锁的实现有不少的方式,如:...原创 2019-06-13 23:35:51 · 9218 阅读 · 3 评论 -
Spring中使用atomikos+druid实现经典分布式事务
经典分布式事务,是相对互联网中的柔性分布式事务而言,其特性为ACID原则,包括原子性(Atomictiy)、一致性(Consistency)、隔离性(Isolation)、持久性(Durabilit):原子性:事务是一个包含一系列操作的原子操作。事务的原子性确保这些操作全部完成或者全部失败。 一致性:一旦事务的所有操作结束,事务就被提交。然后你的数据和资源将处于遵循业务规则的一直状态。 隔...原创 2019-06-18 21:13:08 · 3297 阅读 · 0 评论
分享