![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
微服务
文章平均质量分 70
SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
白小筠
这个作者很懒,什么都没留下…
展开
-
缓存同步
Canal就是把自己伪装成MySQL的一个slave节点,从而监听master的binary log变化。再把得到的变化信息通知给Canal的客户端,进而完成对其它数据库的同步。当收到变化的消息时,完成对缓存的更新。Canal提供了各种语言的客户端,当Canal监听到binlog变化时,会通知Canal的客户端。接下来添加一个仅用于数据同步的账户,出于安全考虑,这里仅提供对heima这个库的操作权限。Canal是基于MySQL的主从同步功能,因此必须先开启MySQL的主从功能才可以。原创 2022-10-09 21:45:52 · 762 阅读 · 0 评论 -
多级缓存2
修改配置文件/usr/local/openresty/nginx/conf下的nginx.conf。http://localhost:8081/item/stock/10001 能查询到商品库存。修改/usr/local/openresty/nginx/conf下的nginx.conf。通过访问http://localhost:8081/item/10001能查询商品信息。2、在nginx.conf的server下面,添加对/api/item这个路径的监听。原创 2022-10-06 22:02:21 · 1554 阅读 · 1 评论 -
安装OpenResty
首先你的Linux虚拟机必须联网你可以在你的 CentOS 系统中添加openresty仓库,这样就可以便于未来安装或更新我们的软件包(通过命令)。然后再重复上面的命令然后就可以像下面这样安装软件包,比如openrestyopm是OpenResty的一个管理工具,可以帮助我们安装一个第三方的Lua模块。如果你想安装命令行工具opm,那么可以像下面这样安装默认情况下,OpenResty安装的目录是:/usr/local/openresty。原创 2022-10-04 21:27:05 · 480 阅读 · 0 评论 -
lua基本语法
1、在Linux虚拟机的任意目录下,新建一个hello.lua2、添加下面内容3、运行。原创 2022-09-12 15:24:14 · 655 阅读 · 0 评论 -
多级缓存1
为了演示多级缓存,我们先导入一个商品管理的案例,其中包含商品的CRUD功能。我们将来会给查询商品添加多级缓存。原创 2022-09-12 13:57:04 · 804 阅读 · 0 评论 -
Seata的四种模式
在未执行try操作时先执行了cancel操作,这时cancel不能做回滚,就是空回滚):cancel业务中,根据xid查询account_freeze,如果为null则说明try还没做,需要空回滚。拒绝业务悬挂(对于已经空回滚的业务,如果以后继续执行try,就永远不可能confirm或cancel,这就是业务悬挂。应当阻止执行空回滚后的try操作,避免悬挂):try业务中,根据xid查询account_freeze ,如果已经存在则证明Cancel已经执行,拒绝执行try业务。二阶段:成功则什么都不做;原创 2022-09-01 21:48:39 · 1556 阅读 · 0 评论 -
分布式事务理论基础之初识Seata
分布式无法同时满足这三个指标BASE理论:是对CAP的一种解决思路,包含三个思想:Basically Available(基本可用):分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。Soft State(软状态):在一定时间内,允许出现中间状态,比如临时的不一致状态Eventually Cionsistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。......原创 2022-08-30 21:26:40 · 325 阅读 · 0 评论 -
授权规则及规则持久化
授权规则是对调用方的来源来做控制,有白名单和黑名单两种方式白名单:来源 在白名单的调用者允许访问黑名单:来源在黑名单的调用者不允许访问利用网关的过滤器添加名为gateway的请求头添加判断条件给/order/{orderId}添加授权规则自定义异常结果默认情况下,发生限流、拦截、授权拦截时,都会抛出异常到调用方。如果要自定义异常返回结果,需要实现BlockExceptionHandler接口。...原创 2022-08-30 11:57:30 · 296 阅读 · 0 评论 -
微服务保护
雪崩问题:微服务调用中的某个服务故障,引起整个链路中的所有微服务都不可用,这就是雪崩解决雪崩问题的常见方式有四种:超时处理:设定超时事件,请求超过一定时间没有响应就返回错误消息,不会无休止等待(但是当释放的速度没有请求的速度快则还是会引发雪崩)舱壁模式:限定每个业务能使用的线程数,避免耗尽整个tomcat的资源,因此也叫线程隔离熔断降级:由断路器统计业务执行的异常比例:如果超出阈值则会熔断该业务,拦截访问该业务的一切请求流量控制:限制业务访问的QPS,避免服务因流量过高而故障(预防雪崩)...原创 2022-08-29 09:59:48 · 295 阅读 · 0 评论 -
Jmeter快速入门
Jmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量。原创 2022-08-28 21:42:57 · 83 阅读 · 0 评论 -
es集群、
这里推荐使用cerebro来监控es集群状态,官方网址:https://github.com/lmenezes/cerebro。部署es集群可以直接使用docker-compose来完成,不过要求你的Linux虚拟机至少有。kibana可以监控es集群,不过新版本需要依赖es的x-pack 功能,配置比较复杂。单机的elasticsearch做数据存储,面临两个问题:海量数据问题,单点故障问题。双击其中的cerebro.bat文件即可启动服务。绿色的条,代表集群处于绿色(健康状态)。进入对应的bin目录。.原创 2022-08-28 10:54:18 · 338 阅读 · 0 评论 -
数据同步、
利用MQ实现mysql与elasticsearch数据数据同步,当酒店数据发生增,删,改,要求对elasticseartch中的数据也要完成相关操作。这里采用bean注入的方式声明交换机,队列,绑定关系(也可以使用注解的方式)创建insertById(id)和deleteById(id)方法。在hotel-admin中也创建一个类保存交换机,队列,绑定关系。当数据库内的数据发送修改,删除,新增的时候。创建一个类保存交换机,队列,绑定关系。hotel-demo中也要配置。导入amqp的依赖坐标。...原创 2022-08-28 10:53:41 · 301 阅读 · 0 评论 -
自动补全、
我们在创建索引库时,通过setting来配置自定义的analyzer(分词器)2.上传到虚拟机中,elasticsearch的plugin目录。创建getSuggestions方法,将搜索框内的值传入进去。在创建索引时使用拼音分词器,但是在搜索时使用普通分词器。参与补全查询的类型必须是completion类型。实现hotel索引库的自动补全、拼音搜索功能。字段内容一般是用来补全多个词条形成的数组。3.重启elserticsearch。RestAPI实现自动补全。重新批量查询酒店数据。3、测试自动补全功能。.原创 2022-08-28 10:52:50 · 385 阅读 · 0 评论 -
数据聚合、
默认情况下,Bucker聚合会统计Bucket内文档的数量,记为_count,并按照__count降序排序。 Status:同时求max、min、avg、sum等。聚合(Aggregations):可以实现对文档数据的统计、分析、运算。案例:在IUserService中定义方法,实现对品牌、城市、星级的聚合。管道(pipeline)聚合:其他聚合的结果为基础做聚合。取每个品牌的用户评分的min,max,avg。只要添加query条件即可。...原创 2022-08-28 10:51:50 · 2779 阅读 · 0 评论 -
黑马旅游案例
当我们点击搜索时[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vsHFiRnf-1661223080297)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220818162905445.png)]1、注入RestHighLevelClient2、创建实体类RequesParams类PageResult类3、自定义一个搜索方法4、创建HotelController类。原创 2022-08-23 10:53:00 · 465 阅读 · 0 评论 -
DSL查询语法
将原始算分(query score)和函数算分(function score)基于运算模式做运算,得到最终结果,作为相关性算分。:符合filter条件的文档要根据这个函数做运算,得到的函数算分(function score),有四种函数。:query部分,基于这个条件搜索文档,并且基于BM25算法给文档打分,原始算分(query score)根据原始条件查询搜索文档,并且计算相关性算分,称为原始算分(query score)符合过滤条件的文档,基于算分函数运算,得到函数算分(function score)原创 2022-08-22 09:52:49 · 1637 阅读 · 0 评论 -
RestClient查询文档
通过match_all来演示下面基本的APIsource()包含了查询、排序、分页、高亮等QueryBuilders是一个工具类,有各种查询。原创 2022-08-22 09:21:31 · 99 阅读 · 0 评论 -
搜索结果处理
elasticsearch支持对搜索结果排序(sort),默认是根据相关度算分来排序,可以排序字段类型有:keyword类型、数值类型、地理坐标类型、日期类型等。举例:对酒店评分降序排序,价格升序排序实现对酒店数据按照你的位置坐标的距离升序排序。...原创 2022-08-28 21:16:00 · 373 阅读 · 0 评论 -
RestClient操作索引库
利用JavaRestClient实现创建、删除索引库,判断索引库是否存在。原创 2022-08-21 10:25:08 · 392 阅读 · 0 评论 -
对文档的基本操作
DELETE /索引名/_doc/文档id。GET /索引名/_doc/文档id。全量修改,会删除旧文档,添加新文档。如果id不存在,就会变成新增操作。原创 2022-08-20 09:40:25 · 164 阅读 · 0 评论 -
索引库操作
mapping是对索引库文档的约束,常见的mapping属性包括type:字段数据类型,常见的简单类型有: 字符串:text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址) 数值:long、integer、short、byte、double、float 布尔:boolean 日期:date 对象:objectindex:是否创建索引,默认为true。原创 2022-08-20 09:26:28 · 160 阅读 · 0 评论 -
elasticsearch
elasticsearch采用倒排索引文档:每条数据就是一个文档词条:文档按照语义分成的词语索引:相同类型的文档的集合,类似与数据库的表文档:就是一条条数据类似于数据库中的行,文档都是JSON格式映射:索引中文档的约束,类如字段类型约束,类似数据库的表结构字段:就是JSON文档中的字段,类似与数据库中的列DSL:用来操作elasticsearch,类似于SQL。原创 2022-08-20 08:49:06 · 3137 阅读 · 1 评论 -
自定义镜像
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xXaqwPBd-1660868710785)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220814165631860.png)]镜像结构:镜像是将应用程序及所需要的系统函数库,环境,配置,依赖打包而成。基于Ubuntu镜像构建一个新的镜像,运行一个java项目。基于java:8-alpine镜像。修改Dockfile。...原创 2022-08-19 08:26:08 · 527 阅读 · 0 评论 -
Docker镜像仓库
搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。官网地址:https://hub.docker.com/_/registry。原创 2022-08-18 10:51:57 · 482 阅读 · 0 评论 -
使用DockerCompose部署之前写的cloud-demo
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MSnDDjJV-1660790824856)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220818094008528.png)]修改自己的项目,将数据库、nacos的地址都命名为docker-compose中的服务名。docker-compose.yml文件内容。将cloud-demo文件上传到/tmp目录。......原创 2022-08-18 10:47:32 · 280 阅读 · 0 评论 -
DockerCompose
DockerCompose可以基于Compose文件帮助我们快速的部署分布式应用,无需手动一个个创建和运行容器compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行可参考。原创 2022-08-18 09:32:34 · 111 阅读 · 0 评论 -
Docker的安装与基本操作
Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装Docker。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。-v html:/root/html:将html数据卷挂载到容器内的/root/html这个目录。Docker应用需要用到各种端口,逐一去修改防火墙设置。数据卷的作用:将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全。...原创 2022-08-18 09:11:22 · 526 阅读 · 0 评论 -
统一网关Gateway
官方文档:https://docs.spring.io/spring-cloud-gateway/docs/2.2.9.RELEASE/reference/html/#global-filters。当过滤器的order值一样时,会按照defaultFilter>路由过滤器>GlobalFilter的顺序。请求进入网关后会碰到三类过滤器:当前路由的过滤器,DefaultFilter, GloblFilter。2.路由目标(uri):路由的目标地址:http代表固定地址,lb代表负载均衡。...原创 2022-08-17 10:34:40 · 321 阅读 · 0 评论 -
http客户端Feign
RestTemplate方式调用存在问题:Feign是一个声明式的客户端,作用就是帮我们优雅的实现http请求的发送1.导入依赖坐标2.开启注解3.使用Feign客户端主要是基于SpringMVC注解来声明远程调用的信息自定义Feign的配置类型feign.Logger.Level修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULLfeign.codec.Decoder响应结果的解析器http远程调用的结果做解析,例如解析json字符串原创 2022-08-17 09:27:25 · 298 阅读 · 0 评论 -
Nacos集群搭建
去conf文件夹下面将cluster.config.example复制一份,去掉后面的.example。这里做集群可能不在同一个电脑IP下面,所以各位可以改成不同IP,我这里没有多的电脑,所以这样处理。其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。Nacos默认数据存储在内嵌数据库Derby中,不属于生产可用的数据库。然后分别修改三个文件夹中的application.properties,这里因为我只有一台电脑,所以是同一个电脑IP,给它设置了3个不同端口。载均衡器可以使用nginx。.原创 2022-08-16 10:50:27 · 155 阅读 · 0 评论 -
Nacos配置管理
在@Value注入的变量所在类上添加注解@RefreshScope。方式二:使用@ConfigurationProperties注解。服务名-profiole.yaml>服务名称.yaml>本地配置。2.在userservice中的resource目录添加一个。无论环境如何变化,userservice.yaml一定会加载。在Nacos中添加配置文件*(名称-环境.文件格式)*Nacos中的配置文件变更后,微服务无需重启就能感知。1.引入Nacos的配置管理客户端依赖。3.测试,获取配置文件中的日期格式。..原创 2022-08-16 10:43:33 · 397 阅读 · 0 评论 -
Nacos注册中心
1.导入依赖父工程:原创 2022-08-16 10:01:19 · 115 阅读 · 0 评论 -
Nacos安装指南
开发阶段采用单机安装即可。在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码:GitHub主页:https://github.com/alibaba/nacosGitHub的Release下载页:https://github.com/alibaba/nacos/releaseswindows版本使用包即可。将这个包解压到任意非中文目录下目录说明:Nacos的默认端口是8848,如果你电脑上的其它进程占用了8848端口,请先尝试关闭该进程。如果无法关闭占用8848端口的原创 2022-08-13 09:05:26 · 214 阅读 · 0 评论 -
Eureka
而饥饿加载则会在项目启动时创建,降低第一次访问的耗时,通过下面的配置开启饥饿加载。2.在order-service项目中的启动类OrderApplication中的RestTemplate添加。1.创建项目,引入spring-cloud-starter-netflix-eureka-server的依赖。1.修改OrderService的代码,修改访问的url路径,用服务名代替ip、端口。服务提供者:一次业务中,被其他微服务调用的服务。服务消费者:一次业务中,调用其他微服务的服务。...原创 2022-08-15 10:42:19 · 165 阅读 · 0 评论