🐁微服务
文章平均质量分 87
葵花宝典之微服务
共饮一杯无
CSDN内容合伙人,杭州开发者社区主理人,Java领域优质创作者,2022年度博客之星TOP15,CSDN博客专家,51CTO 专家博主,华为云享专家,阿里云专家博主,InfoQ专家博主,持续输出干货,欢迎关注。
鲜衣怒马意气风发,愿你归来仍是少年。
展开
-
SpringCloud Alibaba 之Nacos集群部署-高可用保证
当第一个节点(ip1)启动后,节点角色会变为 Candidate(参选者),ip1 节点在每一个任期开始时便会尝试向其他节点发出投票请求,征求自己能否成为 Leader(领导者)节点。在当前案例,因为 ip1 发起选举投票,但 ip2/ip3 两个节点不在线,尽管 ip1 会投自己一票,但在总 3 票中未过半数,因此无法成为 Leader。因为第一次选举没有产生 Leader,过段时间在下一个任期开始时,ip1 任期自增加 1,同时会再次向其他节点发起投票请求争取其他节点同意,直到同意票过半。原创 2023-02-22 10:02:51 · 15798 阅读 · 30 评论 -
Redis 实现用户积分和积分排行榜微服务优化
不同的是Sorted Sets中的每个成员都分配了一个分数值(score),它用于在Sorted Sets中进行成员排序,从最小值到最大值。Sorted Sets中所有的成员都是唯一的,其分数(score)是可以重复的,即是说一个分数可能会对应多个值。,m是添加或查询的成员数量。访问Sorted Sets中间的元素也是非常快的,因此可以用sort sets作为一个不重复的小型有序列表。通过Sorted Sets可以快速操作任何你想做的事情:排序成员,判断成员是否在集合中,快速访问集合中间的成员。原创 2023-01-16 10:18:14 · 5021 阅读 · 90 评论 -
用户积分和积分排行榜功能微服务实现
在互联网应用中经常会有积分的概念,会员积分是一种成长手段,就像游戏中的等级一样,通过积分叠加,让用户深刻感受到自己的价值在提升。积分的诞生远早于互联网产品,积分从本质上讲是衡量用户消费或贡献行为的标尺,是维护忠诚度的一个重要手段。在积分运营中,积分一般作为商家向会员或顾客发行的虚拟货币而存在。用户通过特定行为获取积分,再通过积分兑换奖品、优惠券、特权等商品来消耗积分。在电商体系中,要获取更多积分往往需要产生更多消费额,而获得的积分又可以在消费时抵扣部分现金,这方面主要的代表是京东的京豆。原创 2023-01-11 09:29:55 · 5339 阅读 · 76 评论 -
CSDN是怎么实现用户签到,统计签到次数,连续签到天数等功能微服务的
它是由一组bit位组成的,每个bit位对应0和1两个状态,虽然内部还是采用String类型存储,但Redis提供了一些指令用于直接操作位图,可以把它看作是一个bit数组,数组的下标就是偏移量。位图的每一位代表一天的签到,1表示已签,0表示未签。如果这样存数据的话,对于用户量比较大的应用,数据库可能就扛不住,比如1000W用户,一天一条,那么一个月就是3亿数据,这是非常庞大的,因此使用。可以看到当前登陆用户在2,4,6,8,17,19,20,21,22号9天都进行了签到,当月总签到天数为9天,连续签到4天。原创 2022-12-22 11:16:03 · 13808 阅读 · 42 评论 -
Redis实现朋友圈,微博等Feed流功能,实现Feed流微服务(代码实现)
Redis实现朋友圈,微博等Feed流功能,实现Feed流微服务(代码实现)原创 2022-12-17 19:18:32 · 9714 阅读 · 50 评论 -
Redis实现朋友圈,微博等Feed流功能,实现Feed流微服务(业务场景、实现思路和环境搭建)
在互联网领域,尤其现在的移动互联网时代,Feed流产品是非常常见的,比如我们每天都会用到的朋友圈,微博,就是一种非常典型的Feed流产品,还有图片分享网站Pinterest,花瓣网等又是另一种形式的Feed流产品。除此之外,很多App的都会有一个模块,要么叫动态,要么叫消息广场,这些也是Feed流产品,可以说,Feed流产品是遍布天下所有的App中。解决Feed流最核心的两个问题:一个是存储,另一个是推送。原创 2022-12-15 10:19:58 · 5567 阅读 · 57 评论 -
Redis实现微博好友功能微服务(关注,取关,共同关注)
好友功能是目前社交场景的必备功能之一,一般好友相关的功能包含有:关注/取关、我(他)的关注、我(他)的粉丝、共同关注、我关注的人也关注他等这样一些功能。类似于这样的功能我们如果采用数据库做的话只是单纯得到用户的一些粉丝或者关注列表的话是很简单也很容易实现, 但是如果我想要查出两个甚至多个用户共同关注了哪些人或者想要查询两个或者多个用户的共同粉丝的话就会很麻烦, 效率也不会很高。但是如果你用redis去做的话就会相当的简单而且效率很高。原因是redis自己本身带有专门针对于这种集合的交集、并集、差集的一些原创 2022-12-06 18:38:04 · 8546 阅读 · 88 评论 -
Redis解决秒杀微服务抢购代金券超卖和同一个用户多次抢购
上图就是redission官方网站首页。首页可以看出来,Redisson可以实现很多东西,在Redis的基础上,Redisson做了超多的封装,我们看一下,例如说Spring Cache,TomcatSession,Spring Session,可排序的Set,还有呢Sortedsort,下面还有各种队列,包括这种双端。原创 2022-12-01 07:30:00 · 6382 阅读 · 87 评论 -
秒杀微服务实现抢购代金券功能
现在日常购物或者餐饮消费,商家经常会有推出代金券功能,有些时候代金券的数量不多是需要抢购的,那么怎么设计可以保证代金券的消耗量和秒杀到的用户保持一致呢?怎么设计可以保证一个用户只能秒杀到一张代金券呢?秒杀场景有以下几个特点:秒杀场景的应对,一般要从以下几个方面进行处理,如下:本文以抢购代金券为例,来进行数据库表的设计。抢购活动表订单表创建秒杀服务pom依赖引入相关依赖如下:配置文件关系型数据库实现代金券秒杀相关实体引入抢购代金券活动信息全局异常处理添加代金券秒杀活动代金券活原创 2022-11-27 11:31:51 · 8726 阅读 · 107 评论 -
用户微服务用户注册功能实现
用户注册之前需要先给注册的手机号发送一条验证码,我们把验证码存储在Redis中。发送的时候我们先把验证码存储到Redis,然后用户发起注册的时候取出验证。这个异常显然不够友好,接下来我们定义全局异常配置。发送验证码接口,需要配置网关放放行发送验证码接口。原创 2022-11-14 09:52:41 · 6772 阅读 · 116 评论 -
SpringCloud Gateway网关为认证中心和用户微服务构建统一的认证授权入口
本文主要内容是通过构建一个网关微服务,作为统一的认证授权和访问入口。原创 2022-10-28 16:26:15 · 7407 阅读 · 75 评论 -
spring Cloud微服务 security+oauth2认证授权中心自定义令牌增强,并实现登录和退出
访问oauth/token,oauth2默认返回的授权token信息如下:如果不自定义可以看到访问oauth/token,默认访问的是TokenEndpoint下的接口/*** Oauth2 控制器} /*** 自定义 Token 返回对象** @return= null) {} }原创 2022-10-24 23:09:32 · 6197 阅读 · 46 评论 -
【云原生】RPC调用-Dubbo
微服务在维基上对其定义为:一种软件开发技术- 面向服务的体系结构(SOA)架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。Dubbo(读音[ˈdʌbəʊ])是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。...原创 2022-08-11 10:00:31 · 2322 阅读 · 28 评论 -
【云原生】SpringCloud系列之服务调用OpenFeign(日志配置、异常解码器、更改负载均衡策略、替换默认通信组件等)
BasicAuth 在 Feign 中默认提供了拦截器,我们只需要配置一下就可以使用,如果我们需要自定义拦截器,可以参考 BasicAuth 的代码,只要实现 RequestInterceptor 接口,在 apply 方法中编写你自己的逻辑就可以了,通过 RequestTemplate 可以进行很多操作,比如添加指定的请求头信息,这个可以用在服务间传递某些信息的时候。Feign 中提供了异常的解码器,但我们也可以自定义异常解码器,自定义异常解码器可以用于内部服务之间调用的异常传递。本文内容到此结束了,..原创 2022-08-07 10:37:06 · 2944 阅读 · 47 评论 -
【云原生】SpringCloud系列之服务调用OpenFeign(基本概念和使用步骤)
我们开发的 API 都用的是 Spring MVC 的注解,比如 RequestMapping 等,Feign 的注解是单独的一套,所以我们编写调用 Client 接口时,需要根据已有的接口来编写,在 spring-cloud-openfeign 中,实现了 Spring MVC 的一套注解,调用方 Client 接口中的注解和 API 方可以一致,非常方便。这里有个重要细节,当我们引入 OpenFeign 的时候,在 Maven 依赖中会出现 netflix-ribbon 负载均衡器的身影。......原创 2022-08-06 21:43:41 · 2426 阅读 · 14 评论 -
【云原生】SpringCloud系列之客户端负载均衡Ribbon
在微服务架构中,负载均衡是必须使用的技术,通过它来实现系统的高可用、集群扩容等功能。负载均衡可以分为两种:服务端负载均衡和客户端负载均衡。通常所说的负载均衡指服务器负载均衡,可通过硬件设备或软件来实现,硬件比如:F5、Array等,软件比如:LVS、Nginx等。负载均衡按实现方式分类可区分为:服务端负载均衡(比如Nacos负载均衡)与客户端负载均衡。SpringCloud Ribbon是基于客户端的负载均衡工具,它可以将面向服务的 REST 模板请求自动转换成客户端负载均衡的服务调用。执行过程如下图:原创 2022-07-01 11:20:09 · 6972 阅读 · 19 评论 -
【云原生】SpringCloud系列之服务治理Eureka
Netflix Eureka 是一款由 Netflix 开源的基于 REST 服务的注册中心,用于提供服务发现功能。Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 进行了二次封装,主要负责完成微服务架构中的服务治理功能。Spring Cloud Eureka 是一个基于 REST 的服务,并提供了基于 Java 的客户端组件,能够非常方便的将服务注册到 Spring Cloud Eureka 中进行统一管理。...原创 2022-06-24 13:05:10 · 7400 阅读 · 23 评论 -
微服务中的Spring Cloud和Spring Cloud Alibaba分别有哪些组件和作用,众多组件中如何做技术选型?
随着互联网、物联网的广泛应用,高并发应用程序在数量与体量上都在以指数级提高,传统的单体应用、SOA 等架构已经不足以支撑新环境对应用性能与可靠性的要求。此时微服务架构开始闪亮登场了😎。...原创 2022-06-11 23:43:52 · 10393 阅读 · 10 评论 -
Windows环境RocketMQ broker启动失败闪退
启动闪退解决办法进入用户目录下面store文件,删除文件里面所有文件,在RocketMQ的bin目录下,执行如下命令后,MQ可以在正常启动。start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=truePS:autoCreateTopicEnable=true 表示可以动态创建topic启动报错RocketMQ启动broker提示 错误:找不到或无法加载主类。解决办法编辑 runbroker.cmd 文件,新增一行 set “原创 2021-12-31 10:03:59 · 11045 阅读 · 3 评论 -
linux下载安装zipkin
Docker直接基于最新镜像启动:docker run -d -p 9411:9411 openzipkin/zipkin docker-compose.yml参考官方配置,如下地址:https://github.com/openzipkin-attic/docker-zipkin/blob/master/docker-compose.ymlJava如果你安装了Java 8或更高,最快的方法获取最新版本作为一个独立的可执行jar:curl -sSL https://zipkin.io/qui原创 2021-12-01 10:37:02 · 8413 阅读 · 0 评论 -
Windows下载安装zipkin
Zipkin 是由推特开发的分布式链路追踪系统,用于对 Sleuth 产生的日志加以收集并采用可视化的数据对链路追踪进行分析与图表展示,Zipkin 是典型的 C/S(客户端与服务端)架构模式,需要独立部署 Zipkin 服务器,同时也需要在微服务内部持有Zipkin客户端才可以自动实现日志的推送与展示。下载Spring Cloud Edgware 版本之后,改为强制采用官方提供的 Jar 包的形式启动。下载地址:https://repo1.maven.org/maven2/io/zipkin/zip原创 2021-12-01 10:35:30 · 10899 阅读 · 0 评论 -
Nacos基本概念和单机部署
基本概念在 Spring Cloud Alibaba 生态中,由 Nacos 中间件同时承担注册中心和配置中心职责,需要独立部署。官方地址为:https://nacos.io/zh-cn/index.html 是阿里开源项目,官方定义为:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。功能动态配置服务动态配置服务让您能够以中心化、外部化和动态化的方式管理所有环境的配置。动态配置消除了配置变更时重新部署应用和服务的需要。配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易原创 2021-11-26 09:13:35 · 13592 阅读 · 0 评论 -
Nacos客户端注册报错
问题描述Nacos客户端注册报错:failed to req API__nacos_v1_ns_instance_list after all servers([xxx_8848]) tried_ ErrCode_503, ErrMsg_server is DOWN now, please try again later!我靠,突然发现服务全都注册不到nacos,但是访问nacos的UI地址又发现nacos是启动着的,并且相关config配置也可以正常显示![image.png](https://im原创 2021-11-10 16:31:43 · 18558 阅读 · 2 评论