获得徽章 0
赞了这篇文章
Spring Cloud Gateway 如何实现动态路由?在使用 Spring Cloud Gateway 的时候,官方文档提供的方案总是基于配置文件或代码配置的方式。Spring Cloud Gateway 作为微服务的入口,需要尽量避免重启,而现在配置更改需要重启服务不能满足实际生产过程中的动态刷新、实时变更的业务需求,所以我们需要在 Spring Cloud Gateway 运行时动态配置网关。实现动态路由的方式有很多种,其中一种推荐的方式是基于 Nacos 配置中心来做。简单来说,我们将将路由配置放在 Nacos 中存储,然后写个监听器监听 Nacos 上配置的变化,将变化后的配置更新到 GateWay 应用的进程内。其实这些复杂的步骤并不需要我们手动实现,通过 Nacos Server 和 Spring Cloud Alibaba Nacos Config 即可实现配置的动态变更,官方文档地址:
github.com in new window 。
展开
评论
点赞
今天好累 帮外包解决了一个问题 外加帮忙解决一个现网问题
复习一个知识点
什么是 Spring Cloud Gateway?Spring Cloud Gateway 属于 Spring Cloud 生态系统中的网关,其诞生的目标是为了替代老牌网关 Zuul。准确点来说,应该是 Zuul 1.x。Spring Cloud Gateway 起步要比 Zuul 2.x 更早。为了提升网关的性能,Spring Cloud Gateway 基于 Spring WebFlux 。Spring WebFlux 使用 Reactor 库来实现响应式编程模型,底层基于 Netty 实现同步非阻塞的 I/O。
复习一个知识点
什么是 Spring Cloud Gateway?Spring Cloud Gateway 属于 Spring Cloud 生态系统中的网关,其诞生的目标是为了替代老牌网关 Zuul。准确点来说,应该是 Zuul 1.x。Spring Cloud Gateway 起步要比 Zuul 2.x 更早。为了提升网关的性能,Spring Cloud Gateway 基于 Spring WebFlux 。Spring WebFlux 使用 Reactor 库来实现响应式编程模型,底层基于 Netty 实现同步非阻塞的 I/O。
展开
评论
点赞
Kafka 是什么?主要应用场景有哪些?Kafka 是一个分布式流式处理平台。这到底是什么意思呢?流平台具有三个关键功能:消息队列:发布和订阅消息流,这个功能类似于消息队列,这也是 Kafka 也被归类为消息队列的原因。容错的持久方式存储记录消息流:Kafka 会把消息持久化到磁盘,有效避免了消息丢失的风险。流式处理平台: 在消息发布的时候进行处理,Kafka 提供了一个完整的流式处理类库。Kafka 主要有两大应用场景:消息队列:建立实时流数据管道,以可靠地在系统或应用程序之间获取数据。数据处理: 构建实时的流数据处理程序来转换或处理数据流。# 和其他消息队列相比,Kafka 的优势在哪里?我们现在经常提到 Kafka 的时候就已经默认它是一个非常优秀的消息队列了,我们也会经常拿它跟 RocketMQ、RabbitMQ 对比。我觉得 Kafka 相比其他消息队列主要的优势如下:极致的性能:基于 Scala 和 Java 语言开发,设计中大量使用了批量处理和异步的思想,最高可以每秒处理千万级别的消息。生态系统兼容性无可匹敌:Kafka 与周边生态系统的兼容性是最好的没有之一,尤其在大数据和流计算领域。
打卡学习啦
打卡学习啦
展开
评论
点赞
什么是悲观锁?
悲观锁总是假设最坏的情况,认为共享资源每次被访问的时候就会出现问题(比如共享数据被修改),所以每次在获取资源操作的时候都会上锁,这样其他线程想拿到这个资源就会阻塞直到锁被上一个持有者释放。也就是说,共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程。
打卡啦
悲观锁总是假设最坏的情况,认为共享资源每次被访问的时候就会出现问题(比如共享数据被修改),所以每次在获取资源操作的时候都会上锁,这样其他线程想拿到这个资源就会阻塞直到锁被上一个持有者释放。也就是说,共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程。
打卡啦
评论
点赞
在沸点看到同学分享的,共勉:
抱最大希望,尽最大努力,做最坏打算,持最好心态,记住该记住的,忘记该忘记的,改变能改变的,接受成事实的,太阳总是新的,每天都是美好的日子。
最后今天有很多的不甘,但对未来也有很多的期待,明天一定要把那三个厂投了,别犹豫了!
抱最大希望,尽最大努力,做最坏打算,持最好心态,记住该记住的,忘记该忘记的,改变能改变的,接受成事实的,太阳总是新的,每天都是美好的日子。
最后今天有很多的不甘,但对未来也有很多的期待,明天一定要把那三个厂投了,别犹豫了!
评论
点赞
● ElasticSearch是怎么使用的
● 本项目使用ElasticSearch开发搜索服务,步骤如下
a. 创建索引(相当于数据库表),将课程信息添加到索引库,对课程信息进行分词,存储到索引库
b. 开发一个搜索服务,编写课程搜索接口,调用ElasticSearch的rest接口根据关键字、课程分类等信息进行搜索
打卡复习啦
今天第一次见证部门联动排bug
● 本项目使用ElasticSearch开发搜索服务,步骤如下
a. 创建索引(相当于数据库表),将课程信息添加到索引库,对课程信息进行分词,存储到索引库
b. 开发一个搜索服务,编写课程搜索接口,调用ElasticSearch的rest接口根据关键字、课程分类等信息进行搜索
打卡复习啦
今天第一次见证部门联动排bug
展开
评论
点赞
关于搜索模块可能会被问到的面试题
1. Java项目里为什么要用Elasticsearch来做查询,为什么不直接用数据库查询?
最主要的原因是因为数据库这边的查询只能使用模糊查询,而且不支持分词查询的操作,同时数据库的查询速度相对较慢,而ES的特性就是专门作为搜索引擎来提供搜索的功能,能实现标签的高亮标识,以及通过插件实现自动补全等功能。
1. Java项目里为什么要用Elasticsearch来做查询,为什么不直接用数据库查询?
最主要的原因是因为数据库这边的查询只能使用模糊查询,而且不支持分词查询的操作,同时数据库的查询速度相对较慢,而ES的特性就是专门作为搜索引擎来提供搜索的功能,能实现标签的高亮标识,以及通过插件实现自动补全等功能。
展开
评论
点赞
今天稍微整理了一些项目的内容,但是没来得及学JUC的东西
如何扩展Spring Security的用户身份信息呢?
在认证阶段DaoAuthenticationProvider会调用UserDetailService查询用户的信息,这里是可以获取到齐全的用户信息的。由于JWT令牌中用户身份信息来源于UserDetails,UserDetails中仅定义了username为用户的身份信息,因此可以扩展username的内容 ,比如存入json数据内容作为username的内容。
密码使用BCryptPasswordEncoder格式。
如何扩展Spring Security的用户身份信息呢?
在认证阶段DaoAuthenticationProvider会调用UserDetailService查询用户的信息,这里是可以获取到齐全的用户信息的。由于JWT令牌中用户身份信息来源于UserDetails,UserDetails中仅定义了username为用户的身份信息,因此可以扩展username的内容 ,比如存入json数据内容作为username的内容。
密码使用BCryptPasswordEncoder格式。
展开
评论
点赞